Cara Menyediakan Robokassa
Mari lihat cara melaksanakan penerimaan pembayaran dalam bot melalui perkhidmatan Robokassa.
- Cipta kedai dalam talian di akaun peribadi perkhidmatan Robokassa dan nyatakan tetapan teknikal berikut:
- Algoritma pengiraan hash: MD5
- Result Url: https://chatter.mavibot.ai/robokassa\_callback/result\
- Kaedah penghantaran data melalui Result Url: GET
- Success Url: https://chatter.mavibot.ai/robokassa\_callback/success\
- Kaedah penghantaran data melalui Success Url: GET
- Fail Url: https://chatter.mavibot.ai/robokassa\_callback/fail\
- Kaedah penghantaran data melalui Fail Url: GET

Cipta kata laluan ujian dan lakukan persediaan awal dalam mod ujian.
Bagaimana untuk menyambungkan Robokassa ke MaviBot?
Pergi ke bahagian "Pemerolehan" dan klik "Sambung" pada kad Robokassa:

dan isi borang dalam tetingkap yang terbuka:
- Medan ID Kedai — Shop ID, yang boleh anda temui dalam tetapan kedai di akaun peribadi Robokassa.
- Kata Laluan #1, Kata Laluan #2 — urutan unik digit+huruf yang dijana.
- Medan Kadar VAT. Anda perlu nyatakan kod yang sesuai untuk menghantar nilai VAT. Medan ini menetapkan kadar cukai dalam KKT. Ditentukan untuk setiap jenis barangan secara berasingan, tetapi untuk semua unit barangan tertentu bersama-sama.
Digunakan dengan nilai:
- Tanpa VAT.
- VAT pada kadar 0%.
- VAT pada kadar 5%
- VAT resit pada kadar anggaran 12%.
- VAT resit pada kadar anggaran 16%.
Bagaimana untuk membentuk pautan pembayaran
Pautan pembayaran dalam blok boleh dibentuk menggunakan SALAH SATU daripada kaedah yang tersedia:
- Butang dengan fungsi Pembayaran atau
- Fungsi get_robokassa_payment_url dalam Kalkulator atau
- Mencipta pautan menggunakan pembolehubah payment_sum dan parameter tambahan (versi lama yang masih berfungsi)
Butang dengan fungsi Pembayaran
Pautan pembayaran boleh dibuat dalam butang dengan fungsi "Pembayaran".
Cara mencipta butang dengan fungsi "Pembayaran" telah diterangkan di sini
Mari lihat semua parameter yang mungkin untuk butang ini. Cara mencipta butang dengan fungsi Pembayaran diterangkan dalam artikel ini:
Parameter wajib butang Pembayaran
Untuk membentuk pautan pembayaran dalam tetapan butang, anda perlu nyatakan parameter wajib: Jumlah dan Nama barangan.

medan Jumlah. Dalam medan ini, nyatakan kos barangan dalam rubel
medan Nama barangan. Dalam medan ini, hanya aksara abjad Inggeris atau Rusia, digit dan tanda baca boleh digunakan. Panjang maksimum — 100 aksara. Maklumat ini dipaparkan dalam antara muka Robokassa dan dalam Resit Elektronik yang diterima oleh pelanggan selepas pembayaran berjaya.
TIDAK BOLEH menggunakan petikan berganda dalam nama barangan: padamkan atau gantikan dengan petikan tunggal.
kotak semak Pembayaran automatik. Untuk menyambungkan pembayaran automatik
kotak semak Dengan pemberitahuan klik. Untuk menjejaki peralihan melalui pautan pembayaran, anda boleh menandakan kotak. Dalam kes ini, apabila butang diklik dalam dialog dengan pelanggan di Salebot, pemberitahuan akan dihantar bahawa peralihan melalui pautan telah dibuat
Pemberitahuan ini boleh digunakan untuk mengkonfigurasi logik kerja bot selanjutnya.
Banyak sistem pembayaran menyokong daftar tunai dalam talian awan, ia diperlukan mengikut 54-FZ.
Baca ciri-ciri pemformatan resit di laman web sistem pembayaran yang dipilih untuk mengelakkan situasi yang janggal dengan inspektorat cukai.
Untuk membentuk resit
menu Data untuk membentuk resit. Apabila diklik, menu lungsur akan dibuka dengan parameter untuk membentuk resit:

medan Nama barangan. Wajib untuk membentuk resit.
TIDAK BOLEH menggunakan petikan berganda dalam Nama barangan: padamkan atau gantikan dengan petikan tunggal.
medan Jumlah penuh dalam rubel. Dalam medan ini, anda perlu nyatakan jumlah yang perlu dibayar dengan mengambil kira kuantiti barangan. Jika kuantiti adalah 1, maka Jumlah penuh dalam rubel adalah sama dengan nilai dalam medan Jumlah dalam medan wajib tetapan butang
medan Kuantiti. Kuantiti atau berat barangan. Boleh dihantar sebagai nombor bulat atau pecahan dengan titik. Contoh, 5 atau 10.3
Pembolehubah pelanggan yang akan dibuat secara automatik apabila menggunakan butang dengan fungsi Pembayaran
Sebaik sahaja pengguna menerima blok dengan butang "Pembayaran", pembolehubah pelanggan akan dibuat secara automatik:

Pembolehubah perkhidmatan pelanggan __payments , yang menyimpan jumlah, ID pautan yang dibuat, diperlukan untuk mengenal pasti hook daripada sistem pembayaran.
Pembolehubah perkhidmatan pelanggan __payments TIDAK BOLEH dipadam atau diubah!
Pembolehubah pelanggan error_payment_button dibuat jika ralat berlaku semasa membentuk butang.
Dalam nilai pembolehubah error_payment_button, sama ada teks ralat atau respons sistem pembayaran dengan ralat akan ditulis.
Nilai pembolehubah menjadi relevan apabila beralih ke blok seterusnya
Bagaimana untuk memproses hasil
Perhatian!
Robokassa menghantar pemberitahuan hanya untuk transaksi yang berjaya melalui parameter Result URL. Tiada panggilan balik untuk pembayaran yang tidak berjaya dalam perkhidmatan Robokassa.
Fail URL - hanyalah halaman pembayaran yang tidak berjaya, di mana pembayar akan diarahkan semula sekiranya berlaku ralat kod pada halaman pembayaran.
Pembayaran berjaya.
Selepas anda mengkonfigurasi pembayaran dengan betul dan membentuk pautan untuk menjalankan pembayaran, uji tetapan yang dibuat. Jika pembayaran berjaya, maka dalam dialog pelanggan (bahagian "Pelanggan") SECARA AUTOMATIK akan dihantar PANGGILAN BALIK, yang terdiri daripada 10 aksara kunci rahsia sistem pembayaran, perkataan _success dan jumlah pembayaran dengan ruang. Panggilan balik dijana secara automatik, ia tidak perlu disusun sendiri atau diminta daripada sokongan sistem pembayaran.


Contohnya: ovg58keefc_success 2999, di mana:
ovg58keefc : 10 aksara kunci rahsia sistem pembayaran
_success : hasil pemprosesan permintaan (pembayaran berjaya)
2999 : jumlah pembayaran
Pemprosesan blok:

Panggilan balik:

Panggilan balik (pemberitahuan) daripada sistem pembayaran TIDAK DILIHAT oleh pengguna. Ia hanya dipaparkan dalam tab "Pelanggan" dan boleh dilihat oleh pengendali/ pentadbir.
Contoh menyediakan reaksi terhadap panggilan balik
Dalam blok dengan syarat (ini boleh menjadi blok "Syarat Permulaan" atau blok "Bukan keadaan dengan syarat"), anda perlu nyatakan panggilan balik yang diterima semasa pembayaran.
Penting: pilih padanan Padanan Penuh atau Dengan kehadiran kata kunci

Seterusnya, semasa pembayaran, pelanggan akan menerima mesej daripada blok di mana reaksi terhadap panggilan balik dikonfigurasikan:

Pembayaran dengan ralat
Jika jumlah yang dinyatakan dalam tetapan butang berbeza daripada jumlah yang dibayar oleh pelanggan, dalam bot SECARA AUTOMATIK akan dihantar PANGGILAN BALIK, yang terdiri daripada 10 aksara kunci rahsia sistem pembayaran, perkataan _different_amounts dan ID unik pembayaran dengan ruang
Contohnya: ovg58keefc_different_amounts 123456 , di mana:
ovg58keefc : 10 aksara kunci rahsia sistem pembayaran
_different_amounts : hasil pemprosesan permintaan (jumlah pembayaran berbeza daripada jumlah dalam pautan)
123456 : ID unik pembayaran
Fungsi get_robokassa_payment_url dalam Kalkulator
Untuk membentuk pautan pembayaran, anda boleh menggunakan fungsi get_robokassa_payment_url dalam blok Kalkulator.
Dalam medan Kalkulator, tetapkan nilai fungsi get_robokassa_payment_url kepada pembolehubah
Nama pembolehubah ditetapkan sendiri. Dalam tangkapan skrin, contoh nama pembolehubah.
Pautan pembayaran akan ditulis ke dalam pembolehubah ini. Pembolehubah boleh dipaparkan pada skrin sebagai pautan dalam mesej atau diletakkan dalam butang dengan teks "Bayar".
CONTOH pautan pembayaran: https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
Banyak sistem pembayaran menyokong daftar tunai dalam talian awan, ia diperlukan mengikut 54-FZ.
Baca ciri-ciri pemformatan resit di laman web sistem pembayaran yang dipilih untuk mengelakkan situasi yang janggal dengan inspektorat cukai.
Kalkulator
Contoh 1:

Penerangan parameter
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Parameter fungsi:
| Parameter | Nilai parameter |
|---|---|
amount |
**Jumlah yang perlu dibayar.** Dalam medan ini, nyatakan kos barangan dalam rubel. (Parameter wajib) |
description |
**Nama barangan.** Dalam medan ini, hanya aksara abjad Inggeris atau Rusia, digit dan tanda baca boleh digunakan. Panjang maksimum — 100 aksara. Maklumat ini dipaparkan dalam antara muka Robokassa dan dalam Resit Elektronik yang diterima oleh pelanggan selepas pembayaran berjaya. (Parameter wajib) |
|
|
**Parameter untuk membentuk resit.** Baca lebih lanjut di sini. |
recurrent |
**Menyambung pembayaran automatik.** Jika pembayaran automatik dihidupkan, hantar nilai 1, jika dimatikan hantar nilai None |
currency |
**Kod mata wang tiga huruf.** Nilai mesti dihantar dengan ketat mengikut parameter yang diterima oleh perkhidmatan Robokassa. |
Contoh kod untuk disalin
Contoh 1: Pautan pembayaran tanpa resit
res = get_robokassa_payment_url(100, 'Beli saya')
Contoh 2: Pautan pembayaran dengan resit
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'Beli saya', receipt, '3', 1, 1)
Pembolehubah boleh dipaparkan pada skrin sebagai pautan dalam mesej atau diletakkan dalam butang dengan teks, contohnya, "Beli".
Jika dalam blok terdapat beberapa fungsi untuk mendapatkan pautan dan ralat berlaku, maka nilai ralat akan ditulis dalam pembolehubah
error_payment_func
Ralat akan ditulis berdasarkan fungsi terakhir dalam Kalkulator
Selepas anda mengkonfigurasi pembayaran dengan betul dan membentuk pautan untuk menjalankan pembayaran, uji tetapan yang dibuat.
Bagaimana untuk menambah penerangan pembayaran
Anda boleh menambah penerangan kepada pembayaran dengan menetapkan pembolehubah payment_description

Penerangan ini akan dipaparkan dalam borang pembayaran, serta pada resit.
Bagaimana untuk memproses hasil
Jika pembayaran berjaya, maka dalam dialog pelanggan (bahagian "Pelanggan") SECARA AUTOMATIK akan dihantar PANGGILAN BALIK, yang terdiri daripada 10 aksara kunci rahsia sistem pembayaran, perkataan _success dan jumlah pembayaran dengan ruang. Panggilan balik dijana secara automatik, ia tidak perlu disusun sendiri atau diminta daripada sokongan sistem pembayaran,
Contohnya: ovg58keefc_success 1500, di mana:
ovg58keefc : 10 aksara kunci rahsia sistem pembayaran
_success : hasil pemprosesan permintaan (pembayaran berjaya)
1500 : jumlah pembayaran
Sila ambil perhatian!
Panggil balik hanya kelihatan kepada anda dalam dialog dengan pelanggan.
Pelanggan tidak melihat panggil balik, tetapi anda boleh mengkonfigurasi reaksi terhadap pemprosesan pembayaran yang berjaya.
Contoh
Tetapan blok dengan fungsi get_robokassa_payment_url:
- Jika anda memberikan pautan dalam teks:

Penting!
Pautan pembayaran adalah unik: ia tidak boleh disalin dan kemudian dihantar kepada pelanggan lain!
Hantar pautan pembayaran melalui pembolehubah dalam bot (lihat rajah 17).
Panggil balik apabila pembayaran berjaya:

- Pautan dalam butang:

Pemprosesan blok:

Panggil balik apabila pembayaran berjaya:

Mencipta pautan menggunakan pembolehubah payment_sum dan parameter tambahan
Anda juga boleh menerima pembayaran dengan menjana pautan menggunakan pembolehubah payment_sum, di mana anda hanya perlu menyatakan jumlah pembayaran.
Sila ambil perhatian: pembolehubah payment_sum diberikan nilai terakhir, selepas pembolehubah pilihan payment_description, product_name dan lain-lain.
Untuk menjana pautan pembayaran, anda perlu menetapkan nilai pembolehubah payment_sum, serta-merta selepas itu pembolehubah robokassa_pay_url akan muncul. Pembolehubah ini boleh dipaparkan pada skrin sebagai pautan atau diletakkan pada butang dengan teks "Bayar".

CONTOH pemprosesan blok (pautan pembayaran):

Penting!
Pautan pembayaran adalah unik: ia tidak boleh disalin dan kemudian dihantar kepada pelanggan lain!
Hantar pautan pembayaran melalui pembolehubah dalam bot
Untuk menghantar pautan dalam butang, nyatakan pembolehubah dalam butang di medan url:

Hasil pembayaran semasa membentuk pautan pembayaran melalui payment_sum
Selepas pembayaran berjaya, panggil balik akan dihantar ke bot. Panggil balik ini dalam sistem anda lihat sebagai mesej daripada pengguna, untuk mengelakkan pengguna daripada menghantarnya, ia terdiri daripada kata laluan pertama daripada perkhidmatan Robokassa dan akhiran dengan status success, contohnya: qxgZ7zkNX4HHnG8UpZ61_success.

Juga selepas pembayaran berjaya, pembolehubah robokassa_payment_completed ditetapkan kepada True.
Panggil balik ini TIDAK DILIHAT oleh pengguna, ia hanya dipaparkan kepada pengendali
Jenis perbandingan mestilah "Padanan Penuh"
Untuk membuat pembayaran berulang, adalah wajib untuk menetapkan semula payment_sum, pautan yang telah dibentuk sebelum ini dan kemudian menetapkan semula pembolehubah payment_sum untuk mendapatkan pautan baharu
Contoh penetapan semula pembolehubah:
robokassa_pay_url=''
payment_sum=0
Selepas pembayaran selesai, pelanggan akan ditambahkan pembolehubah robokassa_callback_data, yang mengandungi data respons sistem pembayaran untuk transaksi yang dilakukan. Daripada kamus yang diperoleh, anda boleh mengekstrak data yang diperlukan menggunakan kaedah get.
Cara mencipta skema ujian
Contoh skema yang akan membolehkan anda menguji dan mula bekerja dengan perkhidmatan Robokassa dengan cepat:

Rajah menunjukkan contoh blok pertama, di mana pengguna ditanya berapa banyak yang mereka mahu bayarь.
Dalam rajah di bawah, tetapan anak panah, di dalamnya suis "Pengguna memasukkan data" mesti dihidupkan dan pembolehubah payment_sum ditulis dalam medan:

Seterusnya, dalam blok pembayaran seterusnya, tambahkan butang dan tetapkan pembolehubah robokassa_pay_url dalam baris url:


Skema akan berfungsi seperti berikut:

Apabila mengklik butang, jumlah yang dinyatakan oleh pelanggan akan tersedia untuk pembayaran.
Selepas pembayaran, panggil balik akan tiba, yang mana anda juga boleh mengkonfigurasi reaksi.

Penting!
Panggil balik tentang pembayaran yang tidak berjaya dalam Robokassa tidak wujud.
Untuk ini, tambahkan satu lagi blok dengan syarat, dan dalam baris dengan syarat, tulis panggil balik dalam bentuk "qxgZ7zkNX4HHnG8UpZ61_success":

Jenis semakan mesti ditetapkan kepada "Padanan Penuh"
Skema akan berfungsi seperti berikut:

Cara membentuk permintaan untuk fiskalisasi
Dalam butang dengan fungsi "Pembayaran"
Semasa mencipta butang dalam menu lungsur "Data untuk pembentukan resit", isikan medan "Nama produk", "Jumlah penuh dalam rubel", "Kuantiti", "Kadar VAT", "Sistem percukaian".

Butiran lanjut dalam bahagian "Untuk pembentukan resit".
Menggunakan pembolehubah payment_sum
Oleh kerana penjanaan pautan berlaku pada masa anda menetapkan nilai pembolehubah payment_sum, anda perlu menetapkan pembolehubah products_for_receipt dan robokassa_sno.
Penting:
- semasa membentuk pautan melalui pembolehubah payment_sum, sistem percukaian ditetapkan dalam pembolehubah robokassa_sno.
- payment_sum mestilah sama dengan jumlah kos semua produk (jumlah semua parameter sum).
Contoh:
session_timeout = 7200
product_name = Pembayaran Pertama
robokassa_sno = osn
products_for_receipt = [{"name": "Nama produk", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "Nama produk 2", "quantity": 1, "sum": 6, "tax": "none"}]
payment_sum = 10
Untuk fungsi get_robokassa_payment_url dan robokassa_recurrent_payment
Apabila memanggil fungsi get_robokassa_payment_url atau fungsi robokassa_recurrent_payment, hantar sebagai hujah pembolehubah taxation dan products_for_receipt mengikut penerangan di bawahе.
Fungsi akan menyediakan pautan dengan mengambil kira tatanama produk dan membentuk permintaan untuk fiskalisasi.
Penting:
Pembolehubah taxation dan products_for_receipt mesti ditetapkan untuk setiap pembayaran individu.
Perkhidmatan Robokassa tidak menyimpan parameter ini dan tidak akan dapat menjalankan fiskalisasi pembayaran yang mana tatanama tidak dihantar.
- products_for_receipt - tatasusunan yang mengandungi tatanama produk.
Setiap unit produk mesti diwakili sebagai kamus yang mengandungi parameter name, quantity, sum, tax, payment_method, payment_object dan nomenclature_code.
! products_for_receipt perlu dinyatakan dalam format berikut:
[
{"name": "Nama produk", "quantity": "Kuantiti produk", "sum": "Kos produk", "tax": "Kadar VAT"},
{"name": "Nama produk 2", "quantity": "Kuantiti produk 2", "sum": "Kos produk", "tax": "Kadar VAT"}
]
di mana,
1) name - nama produk. Jika dalam nama produk anda menggunakan aksara khas, contohnya tanda petik, maka ia mesti dilindungi.
2) quantity - kuantiti atau berat produk (nombor bulat atau pecahan dengan titik)
3) sum atau amount (wajib, dua varian nama) - jumlah penuh dalam rubel untuk semua kuantiti produk ini dengan mengambil kira semua kemungkinan diskaun, bonus dan harga khas.
4) tax atau vat_code - (wajib, dua varian nama, nilai bergantung pada nama) - kadar VAT. Parameter ini menetapkan kadar cukai dalam KKT.
**Nilai untuk tax: **
| Nilai | Penerangan |
|---|---|
| none | tanpa VAT |
| vat0 | VAT pada kadar 0% |
| vat5 | VAT pada kadar 5% |
| vat12 | VAT pada kadar 12% |
| vat16 | VAT pada kadar 16% |
Nilai untuk vat_code:
| Nilai | Penerangan |
|---|---|
| '1' | Tanpa VAT |
| '2' | VAT pada kadar 0% |
| '8' | VAT pada kadar 5% |
| '15' | VAT pada kadar 12% |
| '14' | VAT pada kadar 16% |
5) method atau payment_method - (dua varian nama, parameter pilihan) tanda kaedah pengiraan.
| Nilai parameter yang mungkin: | Apa yang dimaksudkan dengan nilai: |
|---|---|
| full_prepayment | prabayar 100%. Pembayaran awal penuh sebelum pemindahan item pengiraan |
| prepayment | prabayar. Pembayaran awal separa sebelum pemindahan item pengiraan |
| advance | pendahuluan |
| full_payment | pengiraan penuh. Pembayaran penuh, termasuk dengan mengambil kira pendahuluan (prabayar) pada masa pemindahan item pengiraan; |
| partial_payment | pengiraan separa dan kredit. Pembayaran separa item pengiraan pada masa pemindahannya dengan pembayaran berikutnya secara kredit; |
| credit | pemindahan secara kredit. Pemindahan item pengiraan tanpa pembayarannya pada masa pemindahan dengan pembayaran berikutnya secara kredit; |
| credit_payment | pembayaran kredit. Pembayaran item pengiraan selepas pemindahannya dengan pembayaran secara kredit (pembayaran kredit). |
6) object atau payment_object - (dua varian nama, parameter pilihan) item pengiraan (jika tidak dihantar, akan menjadi commodity (produk))
| Nilai parameter yang mungkin | Apa yang dimaksudkan dengan nilai |
|---|---|
| commodity | Produk. Mengenai produk yang dijual, kecuali produk boleh cukai (nama dan maklumat lain yang menerangkan produk) |
| excise | Produk boleh cukai. Mengenai produk boleh cukai yang dijual (nama dan maklumat lain yang menerangkan produk) |
| job | Kerja. Mengenai kerja yang dilakukan (nama dan maklumat lain yang menerangkan kerja) |
| service | Perkhidmatan. Mengenai perkhidmatan yang diberikan (nama dan maklumat lain yang menerangkan perkhidmatan) |
| gambling_bet | Taruhan permainan judi. Mengenai penerimaan taruhan semasa menjalankan aktiviti menjalankan permainan judi |
| gambling_prize | Kemenangan permainan judi. Mengenai pembayaran wang tunai dalam bentuk kemenangan semasa menjalankan aktiviti menjalankan permainan judi |
| lottery | Tiket loteri. Mengenai penerimaan wang tunai semasa penjualan tiket loteri, tiket loteri elektronik, penerimaan taruhan loteri semasa menjalankan aktiviti menjalankan loteri |
| lottery_prize | Kemenangan loteri. Mengenai pembayaran wang tunai dalam bentuk kemenangan semasa menjalankan aktiviti menjalankan loteri |
| intellectual_activity | Penyediaan hasil aktiviti intelektual. Mengenai pemberian hak untuk menggunakan hasil aktiviti intelektual atau cara pengindividuan |
| payment | Pembayaran. Mengenai pendahuluan, deposit, prabayar, kredit, sumbangan sebagai bayaran, penalti, denda, ganjaran, bonus dan item pengiraan lain yang serupa |
| agent_commission | Ganjaran ejen. Mengenai ganjaran pengguna yang merupakan ejen pembayaran (subejen), ejen pembayaran bank (subejen), komisioner, wakil atau ejen lain; |
| composite | Item pengiraan komposit. Mengenai item pengiraan yang terdiri daripada item, setiap satunya boleh diberikan nilai ciri yang disenaraikan di atas |
| another | Item pengiraan lain. Mengenai item pengiraan yang tidak berkaitan dengan item pengiraan yang disenaraikan di atas |
| property_right | Hak harta |
| non-operating_gain | Pendapatan bukan operasi |
| insurance_premium | Premium insurans |
| sales_tax | Cukai jualan |
| resort_fee | Yuran peranginan |
- nomenclature_code - (wajib bersyarat) penandaan produk: dihantar dalam bentuk yang dicetak pada pembungkusan produk.
Parameter ini hanya wajib untuk kedai yang menjual produk yang memerlukan penandaan wajib.
Kod penandaan terletak pada pembungkusan produk, di sebelah kod bar atau dalam bentuk kod QR.
Penting! Untuk fiskalisasi, adalah penting untuk menghantar parameter resit.
Format resit yang betul dihantar seperti berikut:
rec = [{"name": "Pek 1 bulan", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'Latihan di Sekolah Penerbangan Aviator', 'ru', rec, 'osn')
di mana anda perlu menggantikan data anda sendiri.
Pembentukan resit semasa menerima pembayaran dalam Kursus di halaman kursus
Anda perlu memilih sistem pembayaran Robokassa di bahagian "Pembayaran" dalam tetapan kursus:

Isi medan "Kadar VAT" di bahagian "Pemerolehan" dalam tetapan sistem pembayaran (jika belum dilakukan sebelumnya).

Apakah ralat yang mungkin berlaku
Kod ralat 40
"Pembayaran berulang untuk invois dengan nombor yang sama tidak boleh dilakukan".
Selepas pembayaran berjaya, adalah perlu untuk memindahkan dialog ke blok "Tamat Pengumpulan Data" untuk membentuk nombor pembayaran baharu.
Kod ralat 34
"Perkhidmatan pembayaran berulang tidak dibenarkan untuk kedai".
Kod ralat 31
"Jumlah pembayaran tidak sah".
Ralat ini mungkin berlaku semasa mengarahkan semula pelanggan ke halaman pembayaran untuk mengeluarkan invois. Ini bermakna anda tidak menghantar jumlah yang perlu dibayar, atau menghantar jumlah yang sama dengan sifar.
Kod ralat 29
"Parameter Signature tidak sah"
Terdapat beberapa punca yang mungkin, tetapi semuanya berkaitan dengan skrip yang memulakan pembayaran (lebih tepat lagi, bahagian yang membentuk parameter Signature berdasarkan formula yang terdiri daripada pembolehubah). Ralat ini agak biasa, dan berikut adalah 3 punca yang mungkin:
- Pertama: ID Kedai (MerchantLogin) yang tidak betul;
- Kedua: Kata Laluan 1 (MerchantPass1) yang salah;
- Ketiga: anda menggunakan parameter tambahan (shp_) yang telah ditambahkan dalam kod program mesin tunai, tetapi tidak dimasukkan dalam formula pengiraan - atau sebaliknya, ia dinyatakan dalam formula pengiraan tetapi tiada dalam kod. Jika ada, hantarkannya dalam susunan abjad – seperti dalam parameter pembayaran dan dalam formula pengiraan Signature.
Perkara penting! Jika anda bekerja dalam mod ujian, dengan menghantar parameter IsTest=1 atau menandakannya dalam tetapan modul/bot, gunakan hanya pasangan kata laluan teknikal ujian (tab "Tetapan Teknikal" kad kedai anda).
Kod ralat 23
"Pembayaran ujian tidak boleh dibuat. Kedai tidak mempunyai tetapan parameter ujian".
Ini bermakna sebelum melakukan pembayaran ujian, anda tidak mengisi semua data yang diperlukan dalam blok "Parameter untuk Menjalankan Pembayaran Ujian" pada tab "Tetapan Teknikal".
Kod ralat 25
"Kedai tidak diaktifkan".
Ralat ini agak biasa, dan terdapat 2 punca yang mungkin.
- Pertama: ini memang benar – dan anda perlu mengaktifkan kedai, kemudian barulah mengeluarkan invois.
- Kedua: anda salah memasukkan ID Kedai dalam tetapan teknikal di laman web. Anda boleh melihat ID yang betul di bahagian "Kedai Saya" dalam Akaun Peribadi. Pergi ke tab "Tetapan Teknikal" dan cari medan "ID Kedai". Salin ID dan masukkannya dalam tetapan laman web.
Cara melakukan pembayaran automatik perkhidmatan Robokassa
Panduan langkah demi langkah untuk menyambungkan pembayaran automatik untuk perkhidmatan Robokassa
Langkah 1. Aktifkan pembayaran automatik dalam butang pembayaran
Pergi ke tetapan blok di mana anda memberikan pautan pembayaran dan pergi ke tetapan butang:

Seterusnya, dalam tetapan butang, cari kotak semak "Pembayaran Automatik" dan aktifkannya:

Jika anda ingin menerima pembayaran automatik dalam semua butang pembayaran, anda boleh mengaktifkan pembayaran automatik dalam tetapan sambungan sistem pembayaran:

Langkah 2. Lakukan pembayaran biasa.
Seterusnya, anda perlu melakukan pembayaran biasa (dapatkan pautan pembayaran dan minta pelanggan membayarnya), seperti yang diterangkan di atas. Selepas pembayaran berjaya, pelanggan akan mempunyai pembolehubah robokassa_previous_invoice_id dengan ID pembayaran.
Pembolehubah robokassa_previous_invoice_id adalah wajib untuk pembayaran seterusnya.
Jika ia dipadamkan, pembayaran automatik seterusnya TIDAK boleh dilakukan.
Perhatian!
Nyahaktifkan kotak semak "Pembayaran dalam mod ujian" (jika ia aktif), jika tidak, pembolehubah robokassa_previous_invoice_id dengan ID pembayaran tidak akan dihasilkan!

Langkah 3. Jadualkan potongan automatik
Dari blok Pembayaran Berjaya, jadualkan anak panah dengan pemasa ke blok dengan pembayaran automatik. Sebagai contoh, jadualkan pembayaran seterusnya selepas 30 hari.

Untuk membolehkan pembayaran automatik berlaku dalam blok yang dikehendaki dalam medan Kalkulator, anda perlu menambah panggilan fungsi robokassa_recurrent_payment, dengan menghantar parameter dalam susunan yang ditentukan:
- payment_amount - jumlah yang perlu dibayar (harga produk dalam rubel)
- description - nama produk. Dalam medan ini, hanya aksara abjad Inggeris atau Rusia, nombor dan tanda baca boleh digunakan. Panjang maksimum — 100 aksara. Maklumat ini dipaparkan dalam antara muka Robokassa dan dalam Resit Elektronik yang diterima oleh pelanggan selepas pembayaran berjaya.
- country - zon domain ('ru' atau 'kz')
- products_for_receipt - parameter untuk membentuk resit.
Butiran lanjut dalam bahagian "Cara membentuk permintaan untuk fiskalisasi -> Untuk fungsi get_robokassa_payment_url dan robokassa_recurrent_payment
- taxation - sistem percukaian.
Butiran lanjut dalam bahagian "Cara membentuk permintaan untuk fiskalisasi -> Untuk fungsi get_robokassa_payment_url dan robokassa_recurrent_payment
Contoh permintaan untuk pembayaran automatik:

Semasa melaksanakan pembayaran automatik, tidak sepatutnya ada pautan pembayaran Robokassa dan pembolehubah payment_sum!
Langkah 4. Jadualkan potongan tetap dan sediakan kemungkinan untuk menarik diri daripada pembayaran automatik.
Untuk pengulangan pembayaran secara tetap, jadualkan gelung - anak panah dengan kelewatan, contohnya, 30 hari.

Jika anda mempunyai kemungkinan untuk membatalkan pembayaran automatik, maka untuk mengelakkan pembayaran seterusnya daripada dilaksanakan, anda perlu memadamkan pembolehubah robokassa_previous_invoice_id daripada pelanggan.
Untuk melakukan ini, dalam medan Kalkulator, padamkan pembolehubah:
robokassa_previous_invoice_id = ""

Pembayaran biasa dengan pembayaran automatik diaktifkan
Jika pembayaran automatik diaktifkan, tetapi pautan tanpa langganan (tanpa pembayaran automatik) diperlukan, maka sebelum membentuk pautan, anda perlu menetapkan pembolehubah robokassa_manual_recurrent_disable dengan nilai 1.
Dalam medan Kalkulator, isytiharkan pembolehubah:
robokassa_manual_recurrent_disable = 1

Perhatian!
Panggil balik semasa pembayaran automatik adalah sama dengan panggil balik yang diterima semasa pembayaran berjaya.
Cara menyediakan reaksi terhadap panggil balik diterangkan dalam bahagian "Cara memproses keputusan"
Apakah keperluan perkhidmatan Robokassa untuk chatbot
Jawapan rasmi daripada perkhidmatan Robokassa:
Anda boleh meletakkan produk di pasaran dengan penerangan dan tanda harga serta menerima pembayaran dalam bot, anda boleh membuat halaman satu muka dengan penerangan, tanda harga, butiran hubungan dan menyatakan bahawa penghantaran produk/penyediaan perkhidmatan adalah elektronik. Kami mesti mempunyai pautan ke produk di pasaran atau ke laman web, kerana apa yang anda jual dalam bot anda dan dalam bot apa - kami tidak boleh tahu.
Kami tidak memasukkan pautan ke saluran Telegram sebagai URL. Juga keperluan untuk kandungan laman web: "Laman web mestilah berfungsi, dengan kandungan yang diisi, pautan dalaman yang berfungsi.
Produk dan perkhidmatan di laman web anda mesti diterangkan secara terperinci: Penerangan mesti merangkumi ciri-ciri produk dan perkhidmatan yang ditawarkan, sifat pengguna dan harga semasa.
Di laman web anda, maklumat terkini mesti diletakkan: telefon, e-mel, peraturan untuk membuat dan tempoh pelaksanaan pesanan, syarat pembayaran, penghantaran dan pemulangannya.
Setiap laman web dipertimbangkan secara individu.
Robokassa dalam Telegram
Menyambung bot ujian RobokassaPaymentTestBot.
- Apabila memilih Connect Robokassa Test, pengguna pergi ke bot RobokassaPaymentTestBot.
- Pengguna menekan butang /mula.
- Pengguna menerima jawapan daripada bot "Masukkan ID Kedai".
- Anda perlu memasukkan id dari kedai dalam perkhidmatan Robokassa.
- Bot akan meminta pengesahan, mengesahkan pemilikan kedai dengan menghantar sms ke nombor yang dinyatakan dalam kedai: "SMS telah dihantar ke nombor *%%%%" di mana %%%% - 4 digit terakhir nombor telefon
- Pengguna memasukkan kod 6 digit.
- Jika semuanya berjaya, pengguna akan melihat mesej: "Anda berjaya menyambungkan bot @BotName ke Robokassa. @BotFather akan memberitahu anda token baharu."
- Selepas itu, token pembayaran muncul di BotFather, yang mana pembayaran disambungkan.
Menyambung bot langsung RobokassaPaymentBot.
- Apabila memilih Connect Robokassa Live, pengguna pergi ke bot RobokassaPaymentBot,
- Pengguna menekan butang /mula.
- Pengguna menerima jawapan daripada bot "Masukkan ID Kedai".
- Anda perlu memasukkan id dari kedai dalam perkhidmatan Robokassa.
- Bot akan meminta pengesahan, mengesahkan pemilikan kedai dengan menghantar sms ke nombor yang dinyatakan dalam kedai: "SMS telah dihantar ke nombor *%%%%", di mana %%%% - 4 digit terakhir nombor telefon
- Pengguna memasukkan kod 6 digit.
- Jika semuanya berjaya, pengguna akan melihat mesej: "Anda berjaya menyambungkan bot @BotName ke Robokassa. @BotFather akan memberitahu anda token baharu."
- Selepas itu, token pembayaran muncul di BotFather, yang mana pembayaran disambungkan.
Pemprosesan hasil pembayaran adalah serupa dengan yang diterangkan di sini