Cara Menambah Prodamus
Untuk menambah Prodamus, anda memerlukan URL borang pembayaran dan kunci rahsia.
URL borang pembayaran diberikan selepas pendaftaran, contohnya: demo.payform.ru.
Kunci rahsia boleh diperoleh dari akaun peribadi, di mana anda juga perlu menyatakan URL untuk menghantar pemberitahuan (notification).

Panduan lengkap tentang cara melakukannya
Alamat untuk pemberitahuan:
https://chatter.mavibot.ai/prodamus\_callback/result
Alamat ini perlu dinyatakan di dua tempat dalam tetapan.
Di halaman utama tetapan, anda boleh memilih mod operasi borang pembayaran: mod demo tanpa pembayaran atau mod penerimaan pembayaran.

Alamat untuk pemberitahuan perlu dinyatakan di dua tempat dalam tetapan sistem pembayaran: pada tab «Tetapan Borang» — untuk pembayaran sekali (biasa) dan pada tab «Langganan» — untuk pembayaran langganan.

Alamat untuk pemberitahuan:
https://chatter.mavibot.ai/prodamus\_callback/result
Untuk menyediakan kerja dengan pembayaran langganan, pergi ke tab «Langganan» dan nyatakan alamat untuk pemberitahuan:
https://chatter.mavibot.ai/prodamus\_callback/result

Perhatian! Selepas memasukkan URL, pastikan anda klik butang «Simpan».
Untuk menambah Prodamus, anda perlu pergi ke bahagian «Pemerolehan».

Kemudian, cukup masukkan data yang disebutkan di atas ke dalam borang:

Penting! Apabila menyatakan URL borang pembayaran, jangan sertakan https://.
Dengan ini, penambahan selesai. Sekarang mari kita lihat cara menggunakan fungsi ini.
Cara Membuat Pautan Pembayaran
Butang dengan Fungsi «Bayar»
Pautan pembayaran boleh dibuat pada butang dengan fungsi «Bayar».
Cara membuat butang sedemikian diterangkan dalam artikel ini.
Sekarang mari kita lihat semua parameter yang mungkin untuk butang ini.
Parameter Wajib Butang «Bayar» untuk Prodamus
Untuk membuat pautan pembayaran, anda perlu menyatakan parameter wajib dalam tetapan butang:
«Jumlah», «Nama Produk», serta parameter «Kandungan Berbayar» — jika anda tidak mempunyai daftar tunai dalam talian sendiri dan ingin menerima resit daripada Prodamus.
Apabila pergi ke halaman pesanan, maklumat tentang produk dan harganya akan dipaparkan terlebih dahulu, dan pelanggan hanya perlu memasukkan butiran hubungan mereka.
Jika E-mel dan/atau telefon pengguna dinyatakan dalam tetapan butang, butiran hubungan pembayar serta maklumat tentang produk dan harganya akan dipaparkan di halaman pesanan.

Medan «Teks» – teks ini akan dipaparkan pada butang dengan pautan pembayaran dalam mesej.
Medan «Fungsi» – untuk membuat butang yang memberikan pautan pembayaran, pilih fungsi «Bayar».
Medan «Sistem Pembayaran» – sistem pembayaran yang disambungkan dengan projek akan disenaraikan.
Jika tiada sistem pembayaran disambungkan ke projek, jenis butang ini tidak akan tersedia.
Medan «Nama Produk» (wajib) – anda perlu menyatakan nama produk yang tepat. Contohnya: bukan «Telefon», tetapi «Telefon pintar Xiaomi, model …».
Nota: jangan gunakan tanda petik berganda dalam nama produk; keluarkannya atau gantikan dengan tanda petik tunggal.
Medan «Jumlah» (wajib) – nyatakan harga produk.
Menu «Maklumat Tambahan» – membuka medan tambahan untuk membuat pautan apabila butang ini diklik:
- Penerangan Pesanan
- Diskaun dalam Rubel
- Pembolehubah E-mel Pembeli
- Pembolehubah Nombor Telefon Pembeli
- Tempoh Sah Pautan
- ID Produk untuk Langganan (untuk pembayaran automatik)
- Kandungan Berbayar
Kotak semak «Pemberitahuan Klik» – boleh ditandakan untuk memantau peralihan ke pautan pembayaran. Dalam kes ini, apabila butang diklik, mesej akan dihantar ke dialog pelanggan dalam Salebot, memberitahu bahawa pautan telah diklik.

Berdasarkan mesej ini, anda boleh menyediakan logik kerja bot selanjutnya.
Kebanyakan sistem pembayaran menyokong daftar tunai dalam talian awan, yang diperlukan mengikut keperluan 54-FZ.
Baca tentang ciri-ciri pemprosesan resit di laman web sistem pembayaran yang dipilih, untuk mengelakkan masalah dengan pihak berkuasa cukai.
Inilah rupa halaman pembayaran yang dibuka apabila mengikuti pautan pada butang «Bayar»:

Tetapan Tambahan untuk Membuat Pautan Pembayaran

Medan «Penerangan Pesanan» – maklumat yang dimasukkan dalam medan ini akan dipaparkan dalam medan Data Tambahan di halaman pembayaran.
Medan «Diskaun» – di sini anda boleh menyatakan jumlah diskaun dalam rubel atau rubel dan sen. Untuk menyatakan sen, gunakan titik sebagai pemisah: 50.99
Di halaman pembayaran, medan Jumlah yang Perlu Dibayar akan memaparkan diskaun, manakala harga asas produk akan dicoret.
Medan «Pembolehubah E-mel Pembeli» (pilihan, jika nombor telefon diberikan) – di sini, E-mel pengguna (pelanggan) dinyatakan. Anda juga boleh menggunakan pembolehubah yang menyimpan E-mel, contohnya: #{email}
Medan «Pembolehubah Nombor Telefon Pembeli» (pilihan, jika E-mel diberikan) – di sini, anda boleh menggunakan pembolehubah yang menyimpan nombor telefon pembeli, format: 79000000000, contohnya: #{phone}
E-mel dan/atau telefon mesti ada.
Medan «Tempoh Sah Pautan» – anda boleh menyatakan tarikh dalam format hh.mm.tttt jj:mm (contohnya, 25.01.2021 11:00) atau menetapkan tarikh tamat pautan melalui pembolehubah. Contohnya: #{link_expired}
Medan «ID Produk untuk Langganan» – berikan nilai ID produk untuk pembayaran automatik. Untuk membuat langganan, anda perlu mencipta produk langganan.
Panduan lengkap: Mencipta dan Menyediakan Langganan Prodamus
Jika ID produk untuk langganan diberikan, jumlah pembayaran tidak akan diambil kira. Maklumat produk diambil dari kad produk di panel Prodamus.
Nombor telefon yang dinyatakan dalam pembayaran akan diperlukan untuk mengurus langganan.
Jika ID produk untuk langganan diberikan, ID produk ini akan dihantar dalam panggilan balik (callback) apabila pembayaran berjaya.
Medan «Kandungan Berbayar» (bersyarat wajib) – data ini diperlukan untuk memfiskalkan pembayaran melalui Prodamus jika anda tidak mempunyai daftar tunai dalam talian sendiri. Medan ini menyatakan penerangan pembelian, harga dan pautan ke kandungan.
Contohnya: Kursus ‘Anyaman Tocang’, harga 3000 rubel, pautan ke halaman kursus: https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911
Butang dengan Fungsi «Bayar»
Jika anda menyatakan tempoh sah pautan, situasi berikut akan berlaku:
Jika pengguna meminta pautan pembayaran dalam tempoh sahnya (iaitu, masa pautan belum tamat) dan dia berada dalam dialog, pembayaran tidak dapat dilakukan, dan mesej berikut akan dipaparkan kepadanya:

Tempoh sah pautan mestilah selepas tarikh semasa, jika tidak, pelanggan tidak akan dapat membuat pembayaran menggunakan pautan ini.
2. Apabila pengguna meminta pautan, jika dia tidak aktif sekarang
Dalam kes ini, butang tidak akan dipaparkan. Pembolehubah "error_payment_button" akan muncul dalam pembolehubah pelanggan, dengan nilai berikut:
&#xNAN;"Ralat: Tempoh sah pautan mestilah selepas tarikh semasa".
Untuk memastikan pengguna dapat membuat pembayaran dengan betul, adalah disyorkan untuk mengendalikan situasi ini secara tambahan.
Bina blok bersyarat seperti berikut:
Jika mesej berikut diterima:
error_payment_button == "Ralat: Tempoh sah pautan mestilah selepas tarikh semasa"
Maka paparkan teks berikut:
&#xNAN;"Maaf, anda tidak dapat membuat pembayaran tepat pada masanya, pautan pembayaran telah tamat tempoh".


Pembolehubah Pelanggan yang Dihasilkan Secara Automatik Apabila Menggunakan Butang dengan Fungsi «Bayar»
Pada saat pengguna menerima blok dengan butang «Bayar», pembolehubah akan dihasilkan secara automatik untuk pelanggan:
Pembolehubah perkhidmatan pelanggan __payments – pembolehubah ini menyimpan jumlah dan ID pautan yang dibuat dan diperlukan untuk mengenal pasti hook yang datang dari sistem pembayaran.
Pembolehubah perkhidmatan pelanggan
__paymentstidak boleh dipadam atau diubah!
Pembolehubah pelanggan error_payment_button akan dibuat secara automatik jika ralat berlaku semasa penciptaan butang.
Pembolehubah ini akan diisi dengan teks ralat atau respons ralat daripada sistem pembayaran.
Nilai pembolehubah akan menjadi terkini apabila beralih ke blok seterusnya.
Cara Memproses Keputusan
Pembayaran Berjaya
Selepas pembayaran berjaya, PANGGILAN BALIK (CALLBACK) SECARA AUTOMATIK akan dihantar ke bot, yang terdiri daripada 10 aksara pertama kunci rahsia sistem pembayaran, perkataan _success dan jumlah pembayaran.
Untuk menggunakannya dalam penyediaan skema, cukup salin sahaja.
Contohnya: ovg58keefc_success 44, di mana:
-
ovg58keefc– 10 aksara pertama kunci rahsia sistem pembayaran -
_success– hasil pemprosesan permintaan (pembayaran berjaya) -
44– jumlah pembayaran
Pengguna TIDAK MELIHAT panggilan balik (mesej) daripada sistem pembayaran. Ia hanya dipaparkan pada tab «Pelanggan» dan kelihatan kepada operator.
Contoh penggunaan:
Langkah 1. Tambahkan butang dengan fungsi «Bayar» pada blok «Ada butang bayar».
Langkah 2. Nyatakan panggilan balik dalam medan Syarat Peralihan yang menuju ke blok «Pembayaran Berjaya» dari blok ini.
Begitu juga, jika panggilan balik pembayaran berjaya dinyatakan dalam syarat blok «Syarat Awal», kerja akan dijalankan secara analog.
Penting: Pilih «Padanan Tepat» atau «Berdasarkan Kehadiran Kata Kunci».
❗️Jika anda memutuskan untuk menyemak pembayaran pada anak panah yang dinyatakan dengan syarat tepat, fikirkan dengan teliti logik skema anda. Jika pelanggan meninggalkan blok yang dilalui oleh syarat dengan panggilan balik, peralihan ke blok tidak akan berlaku. Adalah lebih baik untuk menggunakan kaedah semakan ini hanya jika pelanggan tidak menukar kedudukannya dalam corong.
Dalam skema di mana pelanggan bergerak antara blok, adalah lebih berkesan untuk menggunakan pilihan menyatakan panggilan balik dalam blok «Syarat Awal».

Pembayaran Berjaya untuk Produk dengan Langganan Automatik
Selepas pembayaran berjaya, PANGGILAN BALIK (CALLBACK) SECARA AUTOMATIK akan dihantar ke bot, yang terdiri daripada 10 aksara pertama kunci rahsia sistem pembayaran, perkataan _success dan ID produk langganan.
Contohnya: 214009eefc_success 618117, di mana:
-
009eefc– 10 aksara pertama kunci rahsia sistem pembayaran -
_success– hasil pemprosesan permintaan (pembayaran berjaya) -
618117– ID produk langganan

Pembayaran Gagal
Sekiranya berlaku ralat semasa membuat pembayaran, PANGGILAN BALIK (CALLBACK) SECARA AUTOMATIK akan dihantar ke bot, yang terdiri daripada 10 aksara pertama kunci rahsia sistem pembayaran, perkataan _fail dan jumlah pembayaran.
Contohnya: ovg58keefc_fail 44, di mana:
-
ovg58keefc– 10 aksara pertama kunci rahsia sistem pembayaran -
_fail– hasil pemprosesan permintaan (pembayaran tidak dilaksanakan atau ralat) -
44– jumlah pembayaran
Ini bergantung pada sistem pembayaran. Tidak semua sistem pembayaran menghantar panggilan balik tentang ralat pembayaran.
Jika jumlah yang dinyatakan dalam tetapan butang berbeza daripada jumlah yang dibayar oleh pelanggan, PANGGILAN BALIK (CALLBACK) SECARA AUTOMATIK akan dihantar ke bot. Ia terdiri daripada 10 aksara pertama kunci rahsia sistem pembayaran, perkataan _different_amounts dan ID unik pembayaran.
Мысалы: ovg58keefc_different_amounts 123456, мұндағы:
-
ovg58keefc– төлем жүйесінің құпия кілтінің алғашқы 10 символы -
_different_amounts– сұраныстың өңделу нәтижесі (төлем сомасы сілтемедегі сомадан өзгеше) -
123456– төлемнің бірегей ID-сі
Калькулятордағы get_prodamus_payment_url функциясы
Төлемге сілтеме жасау үшін Калькулятор блокындағы get_prodamus_payment_url функциясын пайдалануға болады.
Калькулятор өрісінде айнымалыға осы функцияның мәнін тағайындаймыз: get_prodamus_payment_url.
Айнымалының атын өзіңіз таңдайсыз. Скриншоттарда айнымалылардың атын беру мысалдары көрсетілген.
Осы айнымалыға төлемге арналған сілтеме жазылады. Айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
Төлемге сілтеме мысалы: https://payform.kz/7p3JR8/
Калькулятор
Мысал 1:

Параметрлердің сипаттамасы
your_variable =`` get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Функция параметрлері:
| Параметр | Параметр мәні |
|---|---|
amount |
Төлем сомасы – бүтін сан немесе нүктемен бөлінген сан ретінде берілуі мүмкін. Мысалы: 25 немесе 52.5. (міндетті параметр) |
product_name |
Тауар атауы (міндетті параметр) |
expired |
Төлем сілтемесінің жарамдылық уақыты – Нақты уақытты көрсету де мүмкін: Стандартты айнымалыларды да қолдануға болады, мысалы, сілтеменің жарамдылығын 30 минутқа орнату:
Егер бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша, қос тырнақша немесе |
customer_phone |
Сатып алушының телефон нөмірі – міндетті емес, егер customer_email параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
customer_email |
Сатып алушының Email мекенжайы – міндетті емес, егер customer_phone параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе нүктесі бар сан ретінде беруге болады: 25 немесе 63.5.Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады).Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
extra_params |
Қосымша параметрлер, осы функцияда жоқ параметрлер. Мысалы:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша/қос тырнақша немесе |
products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл параметр міндетті, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
Мысал
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Лещ аулау’, бағасы 4999 теңге, курс бетіне сілтеме: <https://www.lovilescha.ru/courses/poimai\_kilogram/"
link_prodamus_url = get_prodamus_payment_url( 4999, 'Курс ‘Лещ аулау’', '27.03.2023 17:00', '79167777771', '[email protected]', 20, 'Нарықтағы ең үздік курс', extra_params, products_for_receipt
Бұл мысалда:
-
extra_params– қосымша параметрлер (мысалы, төлем шегі). -
products_for_receipt– чекте көрсетілетін тауар туралы ақпарат. -
get_prodamus_payment_urlфункциясы арқылы төлемге сілтеме жасалады.
Егер блокта бірнеше сілтеме алу функциялары болса және қате жіберілсе, қате мәні
error_payment_funcайнымалысына жазылады.Қате соңғы функция бойынша Калькуляторда жазылады.
payment_sum айнымалысы және қосымша параметрлер арқылы сілтемені жасау
Назар аударыңыз:
payment_sumайнымалысына мән соңғы айнымалыдан беріледі, яғни міндетті емес айнымалылардан кейін:payment_description,product_nameжәне т.б.
Төлемге сілтеме жасау үшін Калькулятор өрісінде payment_sum айнымалысының мәнін орнату жеткілікті.
Осыдан кейін автоматты түрде prodamus_pay_url айнымалысы пайда болады.
Төлемге сілтеме мысалы: https://payform.ru/7p3JR8/
Осы айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
payment_sum айнымалысын жарияламас бұрын мына міндетті емес айнымалыларды көрсетуге болады:
| Параметры функции | Описание параметра |
|---|---|
| product_name | Тауардың атауы (егер көрсетілмесе, автоматты түрде "Шотты төлеу order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| payment_description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| discount_value |
Жеңілдік мөлшері (мысалы, discount_value = 25 немесе discount_value = 50.25) |
| customer_phone | Сатып алушының телефон нөмірі – міндетті емес, егер басқа параметр берілсе. |
| customer_email | Сатып алушының Email мекенжайы |
| link_expired | Төлем сілтемесінің жарамдылық уақыты – |
| link_expired | Сонымен қатар, нақты уақытты көрсетуге болады, формат: |
| currency |
Төлем валютасы, әдепкі бойынша
Бұл параметр кіші әріптермен берілуі керек. |
| payment_title | Төлем тақырыбы (127 символға дейін). Егер көрсетілмесе, автоматты түрде келесі мәтінмен толтырылады: |
| payment_description | Төлемнің қысқаша сипаттамасы (127 символға дейін) |
| locale | Төлем бетінің тілі – |
| products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл міндетті параметр, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
| payment_sum | (міндетті) төлем сомасы |
Pembolehubah
discount_value,customer_phone,customer_emaildanlink_expiredjuga relevan untuk langganan.

Contoh pelaksanaan.
Dalam blok pertama, kami menetapkan jumlah pembayaran:

Pada langkah seterusnya, kami memaparkan pautan prodamus_pay_url di tempat yang diperlukan:

Pembolehubah prodamus_available_payment_methods ditakrifkan sebelum mengisytiharkan payment_sum.
Nilai yang mungkin:
| AC | Pembayaran melalui kad yang dikeluarkan di Persekutuan Rusia |
| ACkz | Pembayaran melalui kad Kazakhstan |
| ACf | Pembayaran melalui kad negara CIS, tidak termasuk Persekutuan Rusia |
| ACEURNMBX | Pembayaran melalui kad EUR dari semua negara, tidak termasuk Rusia dan Belarus |
| SBP | Pembayaran segera, tanpa memasukkan data kad. Untuk kad Rusia |
| QW | Qiwi wallet |
| PC | Yoomoney |
| GP | Terminal pembayaran |
| sbol | Sberbank Online |
| invoice | Pembayaran melalui invois |
| installment | Pembayaran ansuran melalui Prodamus |
| installment_5_21 | Pembayaran ansuran 3 bulan melalui Prodamus |
| installment_6_28 | Pembayaran ansuran 6 bulan melalui Prodamus |
| installment_10_28 | Pembayaran ansuran 10 bulan melalui Prodamus |
| installment_12_28 | Pembayaran ansuran 12 bulan melalui Prodamus |
| installment_0_0_3 | Pembayaran ansuran 3 bulan melalui Tinkoff |
| installment_0_0_4 | Pembayaran ansuran 4 bulan melalui Tinkoff |
| installment_0_0_6 | Pembayaran ansuran 6 bulan melalui Tinkoff |
| installment_0_0_10 | Pembayaran ansuran 10 bulan melalui Tinkoff |
| installment_0_0_12 | Pembayaran ansuran 12 bulan melalui Tinkoff |
| installment_0_0_24 | Pembayaran ansuran 24 bulan melalui Tinkoff |
| installment_0_0_36 | Pembayaran ansuran 36 bulan melalui Tinkoff |
| credit | Kredit melalui Tinkoff |
| vsegdada_installment_0_0_4 | Pembayaran ansuran 4 bulan melalui “VsegdaDa” (tidak berfungsi dengan available_payment_methods) |
| vsegdada_installment_0_0_6 | Pembayaran ansuran 6 bulan melalui “VsegdaDa” |
| vsegdada_installment_0_0_10 | Pembayaran ansuran 10 bulan melalui “VsegdaDa” |
| vsegdada_installment_0_0_12 | Pembayaran ansuran 12 bulan melalui “VsegdaDa” |
| vsegdada_installment_0_0_24 | Pembayaran ansuran 24 bulan melalui “VsegdaDa” |
| vsegdada_installment_0_0_36 | Pembayaran ansuran 36 bulan melalui “VsegdaDa” |
| sbrf_installment_0_0_6 | Pembayaran ansuran 6 bulan melalui Sberbank |
| sbrf_installment_0_0_10 | Pembayaran ansuran 10 bulan melalui Sberbank |
| sbrf_installment_0_0_12 | Pembayaran ansuran 12 bulan melalui Sberbank |
| sbrf_installment_0_0_24 | Pembayaran ansuran 24 bulan melalui Sberbank |
| sbrf_installment_0_0_36 | Pembayaran ansuran 36 bulan melalui Sberbank |
| otp_installment_0_0_6 | Pembayaran ansuran 6 bulan melalui “OTP Bank” |
| otp_installment_0_0_10 | Pembayaran ansuran 10 bulan melalui “OTP Bank” |
| otp_installment_0_0_12 | Pembayaran ansuran 12 bulan melalui “OTP Bank” |
| otp_installment_0_0_24 | Pembayaran ansuran 24 bulan melalui “OTP Bank” |
| otp_installment_0_0_36 | Pembayaran ansuran 36 bulan melalui “OTP Bank” |
| mts_installment_0_0_6 | Pembayaran ansuran 6 bulan melalui “MTS Bank” |
| mts_installment_0_0_10 | Pembayaran ansuran 10 bulan melalui “MTS Bank” |
| mts_installment_0_0_12 | Pembayaran ansuran 12 bulan melalui “MTS Bank” |
| mts_installment_0_0_24 | Pembayaran ansuran 24 bulan melalui “MTS Bank” |
| mts_installment_0_0_36 | Pembayaran ansuran 36 bulan melalui “MTS Bank” |
| monetaworld | Kad bank dunia, tidak termasuk Rusia |
| sbrf_bnpl | Pembayaran ansuran melalui Sber |
Beberapa nilai dibenarkan untuk dihantar dipisahkan dengan garis menegak.
Contohnya:
prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency – ini adalah satu lagi parameter pilihan yang membolehkan anda memaparkan jumlah dalam mata wang tertentu.
Mata wang yang mungkin:
-
kzt– untuk tenge -
eur– untuk euro -
usd– untuk dolar
Dengan cara ini, jumlah yang ditunjukkan dalam pautan akan berada dalam mata wang yang dipilih.
Apabila menerima panggil balik payment_callback adalah perlu untuk memberi perhatian kepada parameter currency dan currency_sum, yang menunjukkan mata wang dan jumlah.
Jika tidak dinyatakan, ia akan pergi ke halaman tanpa kaedah pembayaran.
Kaedah pembayaran boleh ditambah melalui sokongan. Kaedah yang ditambah boleh diuji dalam tetapan halaman atau dengan membuat pautan pembayaran.


Cara memproses keputusan
Pembayaran berjaya
Penting: selepas pembayaran berjaya atau tidak berjaya, panggil balik (callback) akan tiba di bot, yang dengannya anda boleh menentukan sama ada pembayaran berjaya.
Panggil balik kelihatan seperti mesej daripada pengguna dalam sistem, tetapi pengguna tidak boleh menghantarnya. Ia dalam bentuk gabungan kunci rahsia dan status. Contohnya:
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
atau
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Selepas pembayaran berjaya, pembolehubah prodamus_payment_completed secara automatik akan mengambil nilai True.
Nota: Panggil balik tiba dengan sedikit kelewatan, jadi adalah lebih baik untuk menghantar mesej kepada pengguna selepas menghantar pautan:
“Selepas membuat pembayaran, tunggu pengesahan bahawa pembayaran telah berjaya diselesaikan.”
Struktur panggil balik
Untuk pautan yang dibuat melalui butang Pembayaran atau fungsi dalam Kalkulator, panggil balik akan tiba secara automatik di bot selepas pembayaran. Ia mengandungi:
<kunci_rahsia>_success <jumlah_pembayaran>
Contohnya:
ovg58keefc_success
-
ovg58keefc– kunci rahsia penuh sistem pembayaran -
_success– hasil pemprosesan permintaan (pembayaran berjaya)
Penggunaan praktikal
Pembayaran berjaya boleh diproses melalui blok bersyarat dan memaparkan mesej yang sesuai kepada pengguna.

Jenis perbandingan hendaklah "Full match" / "Padanan Penuh"
Untuk membuat pembayaran semula, anda mesti menetapkan semula pembolehubah payment_sum kepada sifar dan padamkan pautan yang dibuat sebelum ini. Selepas itu, tetapkan nilai baharu kepada pembolehubah payment_sum dan dapatkan pautan yang dikemas kini.
Menyahaktifkan/mengaktifkan semula langganan
Selain itu, dalam sistem Prodamus terdapat pemberitahuan tentang pengaktifan atau penamatan langganan:

“Langganan dinyahaktifkan oleh pengguna” – jika langganan dihentikan secara manual (contohnya, sekiranya berhenti melanggan).
Pemberitahuan ini mungkin tiba sebelum tempoh berbayar semasa tamat. Tindakan bergantung pada keputusan anda: abaikan, pantau, atau cuba dapatkan semula pengguna.
“Langganan diaktifkan semula oleh pengguna” – langganan telah dipulihkan.
Pemberitahuan ini mungkin tiba jika pengguna memulihkan langganan sebelum tempoh berbayar semasa tamat. Tindakan bergantung pada keputusan anda: abaikan atau alih keluar daripada senarai pemantauan.
“Nyahaktifkan langganan” – sekiranya langganan dihentikan selepas beberapa pembayaran gagal.
Menyimpan nilai daripada panggil balik
Selepas menerima pemberitahuan tentang pembayaran berjaya, panggil balik daripada Prodamus akan ditulis ke pembolehubah payment_callback, yang mengandungi semua data pembayaran. Anda boleh menyimpan data ini dan menggunakannya mengikut keperluan anda.
Contoh panggil balik:
{
"date": "2021-03-30T11:44:43+03:00",
"order_id": "757679",
"order_num": "",
"domain": "demo.payform.ru",
"sum": "14.50",
"customer_phone": "+77777777777",
"customer_extra": "Товар",
"payment_type": "Пластиковая карта Visa, MasterCard, МИР",
"commission": "3.5",
"commission_sum": "0.51",
"attempt": "1",
"discount_value": "10.5",
"products[0][name]": "Доступ к обучающим материалам",
"products[0][price]": "14.50",
"products[0][quantity]": "1",
"products[0][sum]": "14.50",
"payment_status": "success",
"payment_status_description": "Успешная оплата",
"payment_init": "manual"
}
Apabila membuat pautan, anda boleh menentukan pembolehubah product_name dan payment_description. Kemudian, apabila panggil balik tiba, anda boleh mendapatkannya seperti berikut:
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Sila ambil perhatian: pembolehubah payment_sum diberikan nilai terakhir, yang terletak selepas pembolehubah pilihan: payment_description, product_name.
Jumlah boleh diperoleh seperti berikut:
summa = get(payment_callback, 'sum')
Panggil balik yang tersedia
Selain panggil balik pembayaran berjaya utama, mesej yang tidak kelihatan oleh pengguna akan tiba dalam sembang seperti berikut:
panggil balik
- Pelanggan menyahaktifkan langganan (butiran lanjut di sini)
- Pelanggan mengaktifkan semula langganan (butiran lanjut di sini)
- Langganan tamat
- Pembayaran tidak berjaya - lampiran dengan penjelasan (pada tangkapan skrin di atas)
- Pemberitahuan tentang debit akan datang - tarikh dan masa debit akan datang
- Permohonan ansuran dengan status
Contoh panggil balik dalam dialog dengan pelanggan
- Pelanggan menyahaktifkan langganan
- Pelanggan mengaktifkan semula langganan
- Langganan tamat
- Pembayaran tidak berjaya - Dana tidak mencukupi.
- Pembayaran tidak berjaya - Kad tamat tempoh.
- Pembayaran tidak berjaya - Had kad melebihi.
- Pembayaran tidak berjaya - Kad hilang
- Pembayaran tidak berjaya - Ralat sistem
- Pembayaran tidak berjaya - Transaksi ditolak. Hubungi bank pengeluar kad.
- Pembayaran tidak berjaya - Penolakan transaksi oleh bank pengeluar.
- Pembayaran tidak berjaya - Penolakan transaksi oleh bank.
- Pemberitahuan tentang debit akan datang - hh.mm.tttt jj:mm
- Permohonan ansuran diluluskan
- Permohonan ansuran dibatalkan
- Permohonan ansuran ditolak
Mengikut kehendak anda, anda boleh mengkonfigurasi penghantaran sebarang mesej kepada pengguna. Contohnya, menghantar mesej sekiranya pembayaran automatik gagal.
Blok respons untuk mesej mengenai sebab khusus pembayaran gagal boleh dikonfigurasikan seperti berikut:

Барлық сәтсіз төлемдерге, себебіне қарамастан, хабарлама жіберу үшін келесідей баптауға болады:

Барлық коллбэктерде, егер мәтінде «Төлем сәтсіз» деген сөз болса, пайдаланушыға сіз белгілеген мәтінмен хабарлама жіберіледі.
Жазылым бойынша төлем қалай жасауға болады
Жазылым қалай құруға болады
Жазылым жасау үшін, алдымен жазылымдық тауар құру қажет.
Толық нұсқаулық: Қалай жазылым құру және баптау
Содан кейін жазылымдық тауардың ID-сін көшіріп аламыз. Мысалы, төменде қайдан алу керектігі көрсетілген:
Жазылым төлемінің сілтемесін жасау үшін, prodamus_subscription айнымалысына жазылымдық тауардың ID-сін орнату қажет. Осыдан кейін автоматты түрде prodamus_pay_url айнымалысы пайда болады.
prodamus_pay_url айнымалысын экранға сілтеме ретінде шығарып көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады. Сілтеме мысалы: https://payform.kz/7p3JR8/
Нәтижені өңдеу біржолғы төлемдегідей жүзеге асады (жоғарыда оқығандай).
Сәтті жазылымнан кейін пайдаланушыға төлем кезінде енгізілген customer_phone айнымалысы қосылады. Телефон нөмірі жазылымды басқару үшін қажет.
Егер customer_email берілмесе, жазылымды басқару үшін customer_phone міндетті.
get_prodamus_subscription_url функциясымен жазылымға сілтеме қалай жасауға болады
Тауарға жазылым төлемінің сілтемесін құрудың басқа әдісін қарастырайық.
- Продамус кабинетінен жазылымдық тауар құрылады.
Толық нұсқаулықты мына сілтемеден қарауға болады:
Қалай жазылым құру және баптау - Содан кейін жазылымдық тауардың ID-сін көшіріп аламыз. Мысалы, төменде қайдан алу керектігі көрсетілген:
Для получения ссылки для оплаты товара по подписке в Калькуляторе указываем функцию
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Калькулятор
Мысал 1: Жазылым бойынша тауарға төлем сілтемесі

Параметр сипаттамасы
link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Функцияның параметрлері:
| Параметр | Параметр мәні |
|---|---|
subscription_id |
Жазылым өнімінің ID-сі – Продамus кабинетінен көшіріп алуға болады (міндетті параметр). |
product_name |
Өнімнің атауы (міндетті параметр). |
expired |
Төлем сілтемесінің жарамдылық уақыты – дд.мм.гггг форматында (мысалы, 25.01.2021). Сондай-ақ, «Калькулятор» өрісінде көрсетуге болады:
Стандартты айнымалыларды қолдануға да болады, мысалы, сілтеменің жарамдылық уақытын 30 минутқа орнату:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша, немесе |
customer_phone |
Төлем жасаушының телефон нөмірі – міндетті емес, егер Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
customer_email |
Төлем жасаушының email-і – міндетті емес, егер Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе ондық сан ретінде беруге болады: 25 немесе 63.5. Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
description |
Өнімнің сипаттамасы – көрсетілмесе, әдепкі бойынша Осы параметрді өткізіп жібергіңіз келсе, орнына бір немесе қос тырнақша беріңіз. |
extra_params |
Қосымша параметрлер, бұл функцияда жоқ параметрлер. Мысал:
Осы параметрді өткізіп жібергіңіз келсе, орнына бір/қос тырнақша немесе |
products_for_receipt |
50–4000 символдан тұратын жол, форматы: Мысал: Бұл параметр міндетті, егер өзіңіздің онлайн кассаңыз жоқ болса, төлемдерді Prodamus арқылы фискализациялау үшін қажет. |
Көшіруге арналған код мысалы
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Лещ аулау курсы’, ай сайынғы жазылым бағасы 2000 тенге, курс бетіне сілтеме: <https://www.lovilescha.ru/courses/poimai\_kilogram/"
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Курс ‘Лещ аулау курсы’', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'Нарықтағы ең үздік курс', extra_params, products_for_receipt)
Егер блокта бірнеше функция арқылы сілтеме алу кезінде қате болса, қате мәні
error_payment_funcайнымалысына жазылады.Қате соңғы функция бойынша Калькуляторда жазылады.
Жазылым статусын қалай басқаруға болады
Бұл әдіс тек нақты жазылымдарға арналған, демо режимінде карта байланысы жоқ.
Жазылымды басқару үшін міндетті түрде customer_phone немесе customer_email параметрінің бірі берілуі тиіс.
Пайдаланушыны жазылымнан шығару үшін блок жасау және келесі функцияны шақыру қажет:
delete_subscription_prodamus
Параметрлер мысалы:
{
"customer_phone": "#{customer_phone}",
"id_subscription":"#{prodamus_subscription}",
"url":"https://demo.payform.ru/",
"secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
"switcher":"0",
"profile_id":"12345"
}
-
url– төлем формасының URL, конструктордағы баптаулардан алынған -
secret_key– баптаулардан алынған құпия кілт -
id_subscription– жазылым өнімінің ID-сі -
customer_phone– жазылым иесінің телефоны -
switcher– жазылымды басқару:0– жазылымды тоқтату,1– жазылымды қайта белсендіру -
profile_id– Продамус жүйесіндегі профиль ID-сі
Ескерту:
Егер профиль ID келсе, ол profile_id айнымалысына сақталады.
profile_id функцияға customer_phone немесе customer_email орнына беріліп, жазылымды тоқтатуға болады.
Мысал: жазылым блоктарын баптау

Ескеріңіз, функция status қайтарады, оны сақтап, өз қалауыңыз бойынша өңдеуге болады. Жазылымды сәтті тоқтату немесе қайта белсендіру кезінде status = ok болады.
Функция для управления подпиской
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Параметрлері:
subscription_id – жазылымдық өнімнің ID-сі
switcher – жазылымды басқару: 0 – жазылымды тоқтату, 1 – жазылымды қайта белсендіру
customer_phone – жазылым иесінің телефоны; міндетті емес, егер customer_email көрсетілсе
customer_email – жазылым иесінің email мекенжайы; міндетті емес, егер customer_phone көрсетілсе
profile_id – Продамус жүйесіндегі профиль ID-сі

Мысал 1: customer_phone параметрі берілген, customer_email өткізіліп кеткен:
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Мысал 2: customer_email параметрі берілген, customer_phone өткізіліп кеткен:
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
Функция барлық операция сәтті аяқталса
okқайтарады немесе қате болған жағдайда оның сипаттамасын қайтарады.
Жазылымдағы жеңілдіктерді басқару
Бұл функция жазылым бойынша келесі төлемдерге жеңілдік мөлшерін орнатады. Жеңілдік шектеулі немесе шектеусіз төлемдер санына берілуі мүмкін.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
Параметрлері:
-
subscription_id– жазылымның ID-сі -
discount– нүктеден кейін екі таңбалы дәлдікпен ондық сан; мәні нөлден үлкен және жазылымның базалық құнынан аспауы керек -
customer_phone– клиенттің телефон нөмірі, формат:+79999999999(міндетті емес, егерcustomer_emailайнымалысы бар болса; ол алғашқы төлемнен кейін пайда болады) -
num– жеңілдік қолданылатын төлемдер саны (міндетті емес; көрсетілмесе, жеңілдік барлық төлемдерге қолданылады) -
profile_id– Продамус жүйесіндегі профиль ID-сі
Сұрау сәтті орындалса, функция 'ok' қайтарады; қате орын алса, функция қате сипаттамасын қайтарады.
Жеңілдік мөлшері мен интервал тек функцияны жаңа мәндермен қайта шақырған жағдайда ғана қайта жазылады!
Мысалдар:
1. Барлық келесі автотөлемдерге 1₽ жеңілдік беру (телефон нөмірі көрсетілмейді, себебі ол автоматты түрде customer_phone айнымалысынан алынады; жеңілдік сомасы әдепкі бойынша жазылымның барлық мерзіміне қолданылады):
r = prodamus_subscription_discount('624034', '1')
2. Келесі 3 төлемге 2₽ жеңілдік беру мысалы (телефон нөмірі бос тырнақшамен берілген, себебі ол автоматты түрде customer_phone айнымалысынан алынады):
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Жеңілдікті ондық бөлшекпен көрсету мысалы (бөлгіш – нүкте, мәндер дәйексөзсіз көрсетіледі), телефон нөмірін айнымалы арқылы беруге болады.

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Cara Menetapkan Tarikh Pembayaran Seterusnya untuk Langganan
Kaedah ini membolehkan anda mengalihkan tarikh pembayaran seterusnya untuk langganan. Tarikh hanya boleh dialihkan ke "masa hadapan" dari tarikh pembayaran seterusnya yang telah ditetapkan, dengan itu memanjangkan tempoh keahlian dalam kelab.
Contohnya, ini boleh digunakan sebagai bonus untuk pelanggan.
Untuk melakukannya, gunakan fungsi berikut:
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
Parameter:
-
subscription_id– pengecam langganan -
date– tarikh dalam format dd.mm.yyyy hh:mm atau dd.mm.yyyy; jika hanya dd.mm.yyyy diberikan, masa adalah 00:00 -
customer_phone– tidak wajib; jika tidak dinyatakan, ia diambil daripada pembolehubahcustomer_phone; jika tidak ditemui, fungsi tidak akan berfungsi -
profile_id– ID profil dalam sistem Prodamus
Cara Menghantar Parameter ke Prodamus
Untuk menghantar parameter yang diperlukan (contohnya, tarikh mula langganan, mematikan pembayaran ansuran, dsb.) ke sistem Prodamus, tambahkan awalan prodamus_ pada nama pembolehubah.
Kemudian, apabila membuat pautan pembayaran, parameter dalam pembolehubah ini akan dihantar secara automatik ke sistem pembayaran.
Cara Menguji Pembayaran
Kami hanya menguji pembayaran!
Semasa menyediakan integrasi dan corong pembayaran, anda boleh menggunakan kad ujian untuk mengelakkan wang didebitkan daripada akaun anda.
Mula-mula, tukar halaman pembayaran anda ke mod DEMO ⤵
Jangan lupa tekan butang "Simpan".

Anda boleh menggunakan akaun ujian untuk membuat pembayaran ujian.
Kad ujian Sberbank:
MIR
Nombor kad: 2202 2050 0001 2424
Tarikh luput: 05/35
Kod pengesahan belakang (CVV): 669
MasterCard
Nombor kad: 5469 9801 0004 8525
Tarikh luput: 05/26
Kod pengesahan belakang (CVV): 041
Kod pengesahan 3‑D Secure: 111111
Visa
Nombor kad: 4006 8009 0096 2514
Tarikh luput: 05/26
Kod pengesahan belakang (CVV): 941
Kod pengesahan 3‑D Secure: 111111
❗️Apabila membuat pembayaran menggunakan akaun ujian, semua corong dan integrasi yang telah dikonfigurasi berfungsi seperti pembayaran biasa❗️
Borang telah disahkan
Untuk menerima pembayaran sebenar, borang mesti ditukar ke mod kerja. Iaitu, suis mod demo mesti ditetapkan ke kedudukan merah terbuka.