Cara menyambung
Untuk menyambung sistem pembayaran Stripe, anda memerlukan kunci API rahsia dan kunci webhook.
Kunci API rahsia boleh disalin dengan pergi ke Pembangun → Kunci API dan menyalin Kunci Rahsia.
Langkah 1. Pergi ke Pembangun → Kunci API:

Langkah 2. Cari dan salin Kunci Rahsia:

Seterusnya, anda perlu menetapkan URL panggil balik. Ini membolehkan bot menerima pemberitahuan pembayaran.
Pergi ke bahagian Webhooks dan tambah URL webhook.

Borang akan muncul.

Langkah 3. Klik "+add destination".
Langkah 4. Pilih peristiwa.

Langkah 3. Pilih jenis "Webhook endpoint".

Langkah 4. Semak jenis permintaan dan klik "Continue".

Langkah 5. Masukkan nama dan nyatakan URL titik akhir.

Tetapkan URL kepada: https://chatter.mavibot.ai/stripe\\_callback/result
Langkah 6. Dua titik akhir akan dibuat — anda boleh menyemak tetapan sebelum menambahnya.

Langkah 7. Klik butang "Add destinations". Webhook akan disimpan.
Langkah 8. Klik "Done".

Simpan dan anda akan dibawa ke halaman dengan webhook yang dikonfigurasikan.

Langkah 9. Klik pada webhook di mana anda memilih semua peristiwa.

Langkah 10. Cari Kunci Penandatanganan dan simpannya (anda akan memerlukannya kemudian untuk menyambung ke MaviBot).

Setelah anda mempunyai kunci, teruskan untuk menyambung di Mavibot.
Di Mavibot, buka bahagian "Acquiring" dan pilih Stripe.

Pada halaman sambungan, masukkan kunci yang anda perolehi.

Klik "Save settings".
Selesai! Anda telah menyambung Stripe.
Cara menyambung panggil balik status transaksi
Untuk menerima panggil balik tambahan, anda perlu menambah webhook kedua di samping yang sedia ada.
Tetapkan URL kepada: https://chatter.mavibot.ai/stripe\\_callback/\\<api_key>/charge_status
dan pilih peristiwa berikut:
charge.failedcharge.pendingcharge.succeeded

Butiran lanjut mengenai setiap jenis webhook:
charge.succeeded— mengandungi maklumat tentang transaksi yang berjaya diselesaikan (serupa dengan panggil balik pembayaran berjaya)charge.pending— "transaksi dalam proses", mungkin mengambil masa sehingga 7 hari untuk diselesaikan. Webhook akan mempunyai format {10 aksara pertama}{jenis webhook} Contohnya: sk_test_45LDPJLKT95d_charge.pendingcharge.failed— "transaksi gagal". Webhook akan mempunyai format {10 aksara pertama}{jenis webhook} Contohnya: sk_test_45LDPJLKT95d_charge.failed
Tambah kunci webhook yang diperolehi selepas menyimpan ke medan Mavibot — Webhook key2.

stripe_invoice_id — pengecam transaksi yang mana panggil balik pembayaran berjaya tidak diterima sejurus selepas pembayaran.
Cara menyediakan cukai
Untuk menggunakan cukai dalam pembayaran, anda perlu menciptanya terlebih dahulu dalam papan pemuka Stripe anda. Untuk melakukan ini, taip "tax rates" dalam bar carian:

Dan klik "+ Add tax rates".

Kemudian masukkan kadar cukai yang berkenaan.

Dalam menu yang terbuka, pilih jenis cukai, wilayah yang berkenaan, kadar peratusan, dan sama ada cukai akan dimasukkan dalam jumlah pembayaran (Inclusive) atau ditambah di atasnya (Exclusive).

Selepas mencipta kadar cukai, salin IDnya ke dalam pembolehubah stripe_tax_id sebelum mengisytiharkan jumlah pembayaran.

Untuk mengelakkan ralat, adalah disyorkan untuk menetapkan pembolehubah stripe_tax_id kepada rentetan kosong ("") selepas menerima pautan — dengan cara ini anda boleh menggunakan cukai hanya apabila diperlukan.
Jika dilakukan dengan betul, dalam kes kadar cukai dengan parameter eksklusif, anda akan melihat yang berikut:

Cara mendapatkan pautan pembayaran
Untuk menjana pautan pembayaran, tetapkan nilai pembolehubah payment_sum (cth. 150 atau 100.55 — gunakan titik, bukan koma!). Selepas itu, pembolehubah stripe_pay_url akan muncul. Anda boleh memaparkan pembolehubah ini sebagai pautan atau meletakkannya pada butang dengan teks "Pay".
Pautan kelihatan seperti ini:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Secara lalai, mata wang ditetapkan kepada USD. Untuk menggunakan mata wang yang berbeza, tetapkan nilai pembolehubah currency.
Anda juga boleh menetapkan pembolehubah pilihan berikut sebelum menetapkan nilai payment_sum untuk mengkonfigurasi pembayaran.
Penting! Jika anda menggunakan kedua-dua pembolehubah stripe_payment_method_type dan stripe_additional_payment_method_type, nilai di dalamnya MESTI berbeza!
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Untuk butiran lanjut mengenai setiap kaedah dan negara tempat ia tersedia, rujuk dokumentasi Stripe
Contoh penjanaan pautan pembayaran
Mari buat pautan pembayaran untuk 1000 AED (mata wang lalai ialah USD).

Nota:
— Pertama, nyatakan parameter pilihan seperti first_name, payment_description, dsb.
— Kemudian, tetapkan nilai kepada pembolehubah payment_sum terakhir.
Pembolehubah juga boleh ditetapkan lebih awal dalam rantai, tidak semestinya dalam blok yang sama — ini hanyalah contoh.
Kemudian paparkan pembolehubah stripe_pay_url, yang mengandungi pautan, pada titik yang dikehendaki — sama ada dalam blok mesej atau pada butang:
Contoh 1. Paparkan pautan pembayaran terus dalam mesej:


Contoh 2. Tambah pautan pembayaran pada butang.

Apabila butang diklik atau pautan diikuti, pembayar anda akan diarahkan ke halaman pembayaran.

Contoh menunjukkan bahawa parameter yang kami nyatakan dalam kalkulator dalam tetapan blok telah digunakan: penerangan pesanan, mata wang dan jumlah.
Jika anda menghantar parameter kadar cukai (stripe_tax_id) dalam blok.

Kadar cukai juga akan dipaparkan dalam borang pembayaran.

payment_description = "test payment"
currency = 'AED'
stripe_tax_id = 'enter_your_stripe_id_tax'
payment_sum = 1000
Di mana untuk mencari ID cukai.

Cara menyediakan pembayaran berulang
Untuk pembayaran berulang (langganan), isytiharkan pembolehubah stripe_subscription sebelum pembolehubah payment_sum dan tetapkan nama langganan.
Anda juga boleh menambah pembolehubah berikut: interval — tempoh selang langganan. Hantar 'day' untuk hari, 'week' untuk minggu, 'month' untuk bulan, atau 'year' untuk tahun. Jika pembolehubah tidak ditetapkan, 'month' akan digunakan secara lalai.
Penting!
Tempoh satu kitaran langganan tidak boleh melebihi 1 tahun (untuk parameter 'year'), 12 bulan (untuk parameter 'month'), atau 52 minggu (untuk parameter 'week').

interval_count — bilangan selang yang ditentukan: berapa hari, minggu, atau bulan termasuk dalam langganan untuk jumlah yang diberikan. Lalai kepada 1.
stripe_payment_method_type — kaedah pembayaran; lalai kepada pembayaran kad. Boleh digantikan dengan kaedah pembayaran lain yang tersedia di Stripe. Kaedah yang tersedia disenaraikan di bawah.
Contohnya, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type — tambah kaedah pembayaran tambahan. Kaedah yang tersedia disenaraikan di bawah.
Contohnya, stripe_additional_payment_method_type = 'sepa_debit'
Penting! Jika anda menggunakan kedua-dua pembolehubah stripe_payment_method_type dan stripe_additional_payment_method_type, nilai di dalamnya MESTI BERBEZA!
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Untuk butiran lanjut mengenai setiap kaedah dan negara tempat ia tersedia, rujuk dokumentasi Stripe.
Penting!
Tempoh satu kitaran langganan tidak boleh melebihi 1 tahun (untuk parameter 'year'), 12 bulan (untuk parameter 'month'), atau 52 minggu (untuk parameter 'week').
Dalam contoh ini, langganan bernama 'My_subscription' akan dibuat dengan harga 1000 AED untuk 1 bulan, dan pembayaran berulang dengan jumlah yang sama akan dicaj selepas 1 bulan.

Salin contoh:
stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90
Untuk mengecas pembayaran langganan sekali setiap dua, tiga, atau empat bulan, hantar parameter interval_count:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Untuk menukar selang pembayaran langganan daripada bulanan kepada mingguan, hantar perkataan week dalam parameter interval:
stripe_subscription = 'My_subscription'
interval = 'week'
interval_count = 3
payment_sum = 90
Selepas pembayaran, pembolehubah transaksi pelanggan akan termasuk stripe_subscription_id, yang diperlukan untuk mengkonfigurasi pembatalan langganan, dan stripe_customer_id, yang kemudiannya boleh digunakan untuk menyemak status langganan.
Pemberitahuan (panggil balik) hanya dihantar untuk pembayaran berulang pertama!
Tidak akan ada panggil balik untuk pembayaran berikutnya. Penjejakan dilakukan melalui fungsi dan stripe_customer_id.

Tetapan untuk kembali ke pembayaran biasa
Untuk kembali ke pembayaran biasa, tetapkan rentetan kosong kepada pembolehubah langganan: stripe_subscription = ''. Dalam kes ini, pembolehubah interval dan interval_count tidak akan menjejaskan penjanaan pautan.

Tetapan untuk membatalkan langganan
Untuk membatalkan langganan dalam kalkulator, gunakan kaedah stripe_remove_subscription(stripe_subscription_id), di mana stripe_subscription_id ialah pengecam yang disimpan dalam pembolehubah transaksi selepas pembayaran.
Ini akan mengekalkan langganan berbayar aktif sehingga akhir tempoh pengebilan semasa, tetapi tiada caj selanjutnya akan berlaku, dan langganan akan dibatalkan sebaik sahaja tempoh itu tamat.

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription — apabila berjaya, mengembalikan respons dengan maklumat tentang tarikh sehingga langganan yang dibatalkan akan kekal aktif.
Dalam contoh ini, hasil fungsi akan disimpan dalam pembolehubah answer, membolehkan anda mengesahkan hasilnya.
Menyemak status langganan
stripe_check_subscription(subscription_id, customer_id), di mana
stripe_subscription_id — pengecam langganan stripe_customer_id — pengecam pelanggan dalam Stripe (parameter pilihan)


Cara membuat kupon dan mendapatkan ID diskaun
Untuk mendapatkan pengecam diskaun, buat kupon dalam papan pemuka anda di bawah bahagian "Coupons". ”coupons”.

Mengklik butang "New" akan membuka halaman di mana anda perlu nyatakan:
- Nama — nama diskaun;
- ID — pengecam, dijana secara automatik;
- Jenis — jenis diskaun: peratusan atau jumlah tetap;
- Tempoh — tempoh diskaun (sekali atau berterusan, cth. untuk langganan) dan parameter lain.

Kupon diskaun akan muncul dalam "Katalog produk" di bawah bahagian "Kupon", dan anda boleh melihat ID diskaun dengan membuka menu kupon.

Klik pada kupon untuk menyalin ID kupon.

Cara menggunakan diskaun pada pesanan
- Semasa menjana pautan pembayaran (berfungsi untuk kedua-dua langganan dan pembayaran sekali).
Dalam kalkulator blok, sebelum mengisytiharkan pembolehubah payment_sum, tetapkan pembolehubah coupon_id dan hantar pengecam diskaun dari papan pemuka Stripe anda.

- Kepada langganan sedia ada menggunakan fungsi stripe_add_subscription_discount.
Tetapkan syarat pencetus untuk blok dan panggil fungsi yang ditentukan dalam kalkulator, menghantar parameter stripe_subscription_id (ID langganan) dan coupon_id (ID diskaun kupon). Diskaun akan digunakan pada pembayaran langganan seterusnya.

stripe_subscription = 'test subscription'
interval = 'month'
payment_description = 'test payment'
currency = 'AED'
coupon_id = 'BD8VIwi8' stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'Qfkiwiki29jcs'
payment_sum = 90
Jika diskaun berjaya digunakan, fungsi akan mengembalikan mesej dengan ID langganan, jenis diskaun, jumlah atau peratusan, dan tarikh tamat tempoh.

Cara mengalih keluar atau menukar diskaun untuk langganan
Diskaun yang dilampirkan pada langganan boleh dialih keluar atau digantikan dengan diskaun lain.
Untuk menghentikan diskaun, tetapkan syarat pencetus untuk blok dan panggil fungsi stripe_remove_subscription_discount dalam kalkulator, menghantar parameter stripe_subscription_id (ID langganan).

Jika operasi berjaya, fungsi akan mengembalikan mesej yang mengandungi ID langganan dan tarikh pembatalan diskaun.
Menggantikan diskaun, seperti menambah yang baharu, dilakukan menggunakan fungsi stripe_add_subscription_discount. Pastikan anda menghantar parameter stripe_subscription_id dan coupon_id. Permintaan yang berjaya akan mengemas kini kupon yang dilampirkan pada langganan dan mengembalikan mesej dengan butiran yang dikemas kini.
Cara mengendalikan hasil
Selepas pembayaran berjaya, bot akan menerima panggil balik yang menunjukkan transaksi berjaya. Dalam sistem, panggil balik ini muncul sebagai mesej daripada pengguna. Untuk mengelakkan pengguna daripada menghantarnya secara manual, ia terdiri daripada 20 aksara pertama kunci rahsia diikuti dengan _success, contohnya: sk_live_d35gky6d8ers_success

Panggil balik ini TIDAK kelihatan kepada pengguna — ia hanya kelihatan kepada pengendali.
Jenis perbandingan mesti ditetapkan kepada "Exact match".
Selepas pembayaran berjaya, pembolehubah stripe_payment_completed juga ditetapkan kepada True.
Sebagai contoh, anda boleh mengendalikan pembayaran berjaya menggunakan blok bersyarat dan memaparkan mesej yang sesuai kepada pengguna.

Selepas pembayaran selesai, pembolehubah stripe_callback_data akan ditambahkan pada data pelanggan, yang mengandungi respons sistem pembayaran untuk transaksi yang telah selesai. Data yang diperlukan boleh diekstrak daripada kamus yang terhasil menggunakan kaedah get.
Untuk memproses pembayaran ulangan, anda mesti menetapkan semula payment_sum dan pautan yang dijana sebelum ini, dan hanya kemudian tetapkan semula pembolehubah payment_sum untuk mendapatkan pautan baharu. Anda boleh menggunakan nilai sebelumnya.
Cara menguji pembayaran
Untuk menguji integrasi, anda boleh menggunakan kunci rahsia dari persekitaran ujian. Untuk melakukan ini, tukar ke persekitaran ujian dalam papan pemuka Stripe menggunakan menu di sebelah kanan.

Kemudian ikuti langkah persediaan yang diterangkan pada permulaan panduan ini. Masukkan kunci rahsia ujian dan tambah URL webhook dalam persekitaran ujian.
Untuk ujian, gunakan nombor kad pembayaran ujian (anda boleh mencari nombor kad untuk negara anda di laman web rasmi Stripe).


