Қалай қосу керек
Stripe төлем жүйесін қосу үшін сізге құпия API кілті және вебхук кілті қажет болады.
Құпия API кілтін Developers → API keys бөліміне өтіп, Secret key көшіру арқылы алуға болады.
1-қадам. Developers → API keys бөліміне өтіңіз:

2-қадам. Secret key тауып, көшіріңіз:

Әрі қарай, кері шақыру URL мекенжайын орнату қажет. Бұл ботқа төлем туралы хабарландыруларды алуға мүмкіндік береді.
Webhooks бөліміне өтіп, вебхук URL мекенжайын қосыңыз.

Пішін пайда болады.

3-қадам. "+add destination" түймесін басыңыз.
4-қадам. Оқиғаларды таңдаңыз.

3-қадам. "Webhook endpoint" түрін таңдаңыз.

4-қадам. Сұраныс түрін қарап шығып, "Continue" түймесін басыңыз.

5-қадам. Атауын енгізіп, endpoint URL мекенжайын көрсетіңіз.

URL мекенжайын орнатыңыз: https://chatter.mavibot.ai/stripe_callback/result
6-қадам. Екі endpoint жасалады — оларды қоспас бұрын параметрлерді қарап шығуға болады.

7-қадам. "Add destinations" түймесін басыңыз. Вебхуктар сақталады.
8-қадам. "Done" түймесін басыңыз.

Сақтаңыз, сонда сіз вебхук конфигурацияланған бетке өтесіз.

9-қадам. Барлық оқиғаларды таңдаған вебхукты басыңыз.

10-қадам. Signing key тауып, оны сақтаңыз (ол кейінірек MaviBot-қа қосылу үшін қажет болады).

Кілттерді алғаннан кейін, Mavibot-та қосылуға кірісіңіз.
Mavibot-та "Acquiring" бөлімін ашып, Stripe таңдаңыз.

Қосылу бетінде алған кілттеріңізді енгізіңіз.

"Save settings" түймесін басыңыз.
Дайын! Сіз Stripe-ті қостыңыз.
Транзакция күйінің кері шақыруын қалай қосу керек
Қосымша кері шақыруды алу үшін, бар вебхукқа қосымша екінші вебхук қосу қажет.
URL мекенжайын орнатыңыз: https://chatter.mavibot.ai/stripe_callback/<api_key>/charge_status
және келесі оқиғаларды таңдаңыз:
charge.failedcharge.pendingcharge.succeeded

Әрбір вебхук түрі туралы толығырақ:
charge.succeeded— сәтті аяқталған транзакция туралы ақпаратты қамтиды (сәтті төлем кері шақыруына ұқсас)charge.pending— "транзакция жүріп жатыр", аяқталуы 7 күнге дейін созылуы мүмкін. Вебхук пішімі {алғашқы 10 таңба}{вебхук түрі} болады. Мысалы: sk_test_45LDPJLKT95d_charge.pendingcharge.failed— "транзакция сәтсіз аяқталды". Вебхук пішімі {алғашқы 10 таңба}{вебхук түрі} болады. Мысалы: sk_test_45LDPJLKT95d_charge.failed
Сақтағаннан кейін алынған вебхук кілтін Mavibot өрісіне — Webhook key2 қосыңыз.

stripe_invoice_id — төлемнен кейін бірден сәтті төлем кері шақыруы алынбаған транзакция идентификаторы.
Салықтарды қалай орнату керек
Төлемдерде салықтарды пайдалану үшін алдымен оларды Stripe басқару панелінде жасау қажет. Ол үшін іздеу жолағына "tax rates" теріңіз:

Және "+ Add tax rates" түймесін басыңыз.

Содан кейін қолданылатын салық мөлшерлемесін енгізіңіз.

Ашылған мәзірде салық түрін, ол қолданылатын аймақты, пайыздық мөлшерлемені және салықтың төлем сомасына қосылатынын (Inclusive) немесе оның үстіне қосылатынын (Exclusive) таңдаңыз.

Салық мөлшерлемесін жасағаннан кейін, төлем сомасын жарияламас бұрын оның идентификаторын stripe_tax_id айнымалысына көшіріңіз.

Қателерді болдырмау үшін, сілтемені алғаннан кейін stripe_tax_id айнымалысын бос жолға ("") орнату ұсынылады — осылайша салықты қажет болғанда ғана қолдануға болады.
Егер дұрыс орындалса, exclusive параметрі бар салық мөлшерлемесі жағдайында келесіні көресіз:

Төлем сілтемесін қалай алуға болады
Төлем сілтемесін жасау үшін payment_sum айнымалысының мәнін орнатыңыз (мысалы, 150 немесе 100.55 — нүктені пайдаланыңыз, үтірді емес!). Осыдан кейін stripe_pay_url айнымалысы пайда болады. Бұл айнымалыны сілтеме ретінде көрсетуге немесе "Төлеу" мәтіні бар түймеге орналастыруға болады.
Сілтеме келесідей көрінеді:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Әдепкі бойынша валюта USD болып орнатылған. Басқа валютаны пайдалану үшін currency айнымалысының мәнін орнатыңыз.
Сондай-ақ, төлемді конфигурациялау үшін payment_sum мәнін орнатпас бұрын келесі қосымша айнымалыларды орнатуға болады.
| Функция параметрлері | Параметр сипаттамасы |
|---|---|
| currency | тапсырыс валютасы. Рұқсат етілген мәндер мына жерде —https://stripe.com/docs/currencies |
| payment_description | төлем сипаттамасы |
| stripe_tax_id | Stripe басқару панелінде конфигурацияланған салық мөлшерлемесінің идентификаторы. Орнату нұсқаулары "Салықтарды қалай орнату керек" бөлімінде берілген. |
| stripe_invoice_enable | шот-фактураларды (түбіртектерді) сақтауды қосу жалауы. Мұны қосу үшін кез келген мәнді орнатыңыз — барлық қажетті құжаттар Stripe басқару панелінде қолжетімді болады. |
| stripe_locale |
төлем бетінің тілін орнатыңыз: en, de, т.б. Барлық қолжетімді нұсқалар: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale Егер stripe_locale орнатылмаса, клиенттің браузер тілі пайдаланылады. |
| stripe_payment_method_type | төлем әдісі; әдепкі бойынша картамен төлем. Stripe-те қолжетімді басқа төлем әдістерімен ауыстыруға болады. Қолжетімді әдістер төменде көрсетілген. Мысалы, stripe_payment_method_type = "customer_balance"
|
| stripe_additional_payment_method_type | қосымша төлем әдісін қосу. Қолжетімді әдістер төменде көрсетілген. Мысалы, stripe_additional_payment_method_type = "sepa_debit"
|
| coupon_id | жеңілдік купонының идентификаторы |
| stripe_expired | төлем сілтемесінің мерзімінің аяқталу уақыты. Секундтармен көрсетіледі. Минимум 30 минут, максимум 24 сағат. Әдепкі бойынша 24 сағат. |
| stripe_automatic_tax | сатып алу кезінде салықты автоматты түрде есептеу және жинауды қосу. Қосу үшін "1" мәнін беріңіз. Толығырақ Stripe мақалаларынан қараңыз. |
Маңызды! Егер сіз stripe_payment_method_type және stripe_additional_payment_method_type айнымалыларын бірге пайдалансаңыз, олардағы мәндер әртүрлі болуы керек!
stripe_payment_method_type және stripe_additional_payment_method_type үшін мәндер тізімі
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
Әрбір әдіс және олар қолжетімді елдер туралы толығырақ Stripe құжаттамасынан қараңыз
Төлем сілтемесін жасау мысалы
1000 AED (әдепкі валюта USD) үшін төлем сілтемесін жасайық.

Ескерту:
— Алдымен first_name, payment_description және т.б. сияқты қосымша параметрлерді көрсетіңіз.
— Содан кейін, ең соңында payment_sum айнымалысына мән беріңіз.
Айнымалыларды бір блокта емес, тізбекте бұрын да орнатуға болады — бұл жай ғана мысал.
Содан кейін сілтемені қамтитын stripe_pay_url айнымалысын қажетті жерде — хабарлама блогында немесе түймеде көрсетіңіз:
1-мысал. Төлем сілтемесін тікелей хабарламада көрсету:


2-мысал. Төлем сілтемесін түймеге қосу.

Түйме басылғанда немесе сілтеме бойынша өткенде, төлеуші төлем бетіне бағытталады.

Мысал блок параметрлерінде калькуляторда көрсеткен параметрлердің қолданылғанын көрсетеді: тапсырыс сипаттамасы, валюта және сома.
Егер блокта салық мөлшерлемесі параметрін (stripe_tax_id) берсеңіз.

Салық мөлшерлемесі төлем нысанында да көрсетіледі.

Көшіруге арналған код мысалы
payment_description = "test payment"
currency = 'AED'
stripe_tax_id = 'enter_your_stripe_id_tax'
payment_sum = 1000
Салық идентификаторын қайдан табуға болады.

Қайталанатын төлемдерді қалай орнату керек
Қайталанатын төлемдер (жазылымдар) үшін payment_sum айнымалысының алдында stripe_subscription айнымалысын жариялап, оған жазылым атауын беріңіз.
Сондай-ақ келесі айнымалыларды қосуға болады: interval — жазылым аралығының ұзақтығы. Күндер үшін 'day', апталар үшін 'week', айлар үшін 'month' немесе жылдар үшін 'year' мәнін беріңіз. Егер айнымалы орнатылмаса, әдепкі бойынша 'month' пайдаланылады.
Маңызды!
Бір жазылым циклінің ұзақтығы 1 жылдан ('year' параметрі үшін), 12 айдан ('month' параметрі үшін) немесе 52 аптадан ('week' параметрі үшін) аспауы керек.

interval_count — көрсетілген аралықтардың саны: берілген сома үшін жазылымға қанша күн, апта немесе ай кіреді. Әдепкі бойынша 1.
stripe_payment_method_type — төлем әдісі; әдепкі бойынша картамен төлем. Stripe-те қолжетімді басқа төлем әдістерімен ауыстыруға болады. Қолжетімді әдістер төменде көрсетілген.
Мысалы, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type — қосымша төлем әдісін қосу. Қолжетімді әдістер төменде көрсетілген.
Мысалы, stripe_additional_payment_method_type = 'sepa_debit'
Маңызды! Егер сіз stripe_payment_method_type және stripe_additional_payment_method_type айнымалыларын бірге қолдансаңыз, олардың мәндері ӘР ТҮРЛІ болуы КЕРЕК!
stripe_payment_method_type және stripe_additional_payment_method_type үшін мәндер тізімі:
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
Әрбір әдіс және олар қолжетімді елдер туралы толығырақ ақпаратты Stripe құжаттамасынан қараңыз.
Маңызды!
Бір жазылым циклінің ұзақтығы 1 жылдан ('year' параметрі үшін), 12 айдан ('month' параметрі үшін) немесе 52 аптадан ('week' параметрі үшін) аспауы керек.
Бұл мысалда 'My_subscription' деп аталатын жазылым 1 айға 1000 AED бағасымен жасалады және сол сомадағы қайталанатын төлем 1 айдан кейін алынады.

Мысалды көшіру:
stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90
Жазылым төлемін екі, үш немесе төрт ай сайын алу үшін interval_count параметрін беріңіз:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Жазылым төлем аралығын айлықтан апталыққа өзгерту үшін interval параметріне week сөзін беріңіз:
stripe_subscription = 'My_subscription'
interval = 'week'
interval_count = 3
payment_sum = 90
Төлемнен кейін клиенттің транзакция айнымалыларына stripe_subscription_id (жазылымды болдырмауды конфигурациялау үшін қажет) және stripe_customer_id (кейін жазылым күйін тексеру үшін пайдалануға болады) енгізіледі.
Хабарландыру (callback) тек бірінші қайталанатын төлем үшін жіберіледі!
Келесі төлемдер үшін callback БОЛМАЙДЫ. Бақылау функция және stripe_customer_id арқылы жүзеге асырылады.

Кәдімгі төлемдерге оралу параметрлері
Кәдімгі төлемдерге оралу үшін жазылым айнымалысына бос жолды тағайындаңыз: stripe_subscription = ''. Бұл жағдайда interval және interval_count айнымалылары сілтеме генерациясына әсер етпейді.

Жазылымды болдырмау параметрлері
Калькуляторда жазылымды болдырмау үшін stripe_remove_subscription(stripe_subscription_id) әдісін пайдаланыңыз, мұнда stripe_subscription_id — төлемнен кейін транзакция айнымалыларында сақталған идентификатор.
Бұл төленген жазылымды ағымдағы есеп айырысу кезеңінің соңына дейін белсенді күйде сақтайды, бірақ одан әрі алымдар болмайды және кезең аяқталғаннан кейін жазылым жойылады.

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription — сәтті болған жағдайда, жойылған жазылымның қандай күнге дейін белсенді болатыны туралы ақпараты бар жауапты қайтарады.
Бұл мысалда функцияның нәтижесі answer айнымалысында сақталады, бұл нәтижені тексеруге мүмкіндік береді.
Жазылым күйін тексеру
stripe_check_subscription(subscription_id, customer_id), мұнда
stripe_subscription_id — жазылым идентификаторы stripe_customer_id — Stripe-тегі клиент идентификаторы (міндетті емес параметр)


Купонды қалай жасауға және жеңілдік идентификаторын алуға болады
Жеңілдік идентификаторын алу үшін басқару панеліндегі "Купондар" бөлімінде купон жасаңыз. ”coupons”.

"Жаңа" түймесін басу келесі бетті ашады, онда көрсету керек:
- Атауы — жеңілдік атауы;
- ID — идентификатор, автоматты түрде жасалады;
- Түрі — жеңілдік түрі: пайыздық немесе белгіленген сома;
- Ұзақтығы — жеңілдік ұзақтығы (бір реттік немесе тұрақты, мысалы, жазылымдар үшін) және басқа параметрлер.

Жеңілдік купоны "Өнім каталогындағы" "Купондар" бөлімінде пайда болады және купон мәзірін ашу арқылы жеңілдік идентификаторын көруге болады.

Купон идентификаторын көшіру үшін купонды басыңыз.

Тапсырысқа жеңілдікті қалай қолдануға болады
- Төлем сілтемесін жасау кезінде (жазылымдар үшін де, бір реттік төлемдер үшін де жұмыс істейді).
Блок калькуляторында payment_sum айнымалысын жарияламас бұрын, coupon_id айнымалысын орнатыңыз және Stripe басқару панеліндегі жеңілдік идентификаторын беріңіз.

- Бар жазылымға stripe_add_subscription_discount функциясын пайдалану.
Блоктың іске қосу шарттарын орнатыңыз және калькуляторда көрсетілген функцияны шақырыңыз, stripe_subscription_id (жазылым идентификаторы) және coupon_id (купон жеңілдік идентификаторы) параметрлерін беріңіз. Жеңілдік келесі жазылым төлемдеріне қолданылады.

Көшіруге арналған код мысалы
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
Егер жеңілдік сәтті қолданылса, функция жазылым идентификаторы, жеңілдік түрі, сомасы немесе пайызы және мерзімінің аяқталу күні туралы хабарламаны қайтарады.

Жазылым үшін жеңілдікті қалай жоюға немесе өзгертуге болады
Жазылымға бекітілген жеңілдікті жоюға немесе басқа жеңілдікпен ауыстыруға болады.
Жеңілдікті тоқтату үшін блоктың іске қосу шарттарын орнатыңыз және калькуляторда stripe_remove_subscription_discount функциясын шақырыңыз, stripe_subscription_id (жазылым идентификаторы) параметрін беріңіз.

Егер операция сәтті болса, функция жазылым идентификаторы және жеңілдікті болдырмау күні туралы хабарламаны қайтарады.
Жеңілдікті ауыстыру, жаңасын қосу сияқты, stripe_add_subscription_discount функциясын пайдалану арқылы жүзеге асырылады. stripe_subscription_id және coupon_id параметрлерін беруді ұмытпаңыз. Сәтті сұраныс жазылымға бекітілген купонды жаңартады және жаңартылған мәліметтері бар хабарламаны қайтарады.
Нәтижені қалай өңдеу керек
Сәтті төлемнен кейін бот сәтті транзакцияны көрсететін callback-терді алады. Жүйеде бұл callback-тер пайдаланушыдан келген хабарламалар ретінде көрінеді. Пайдаланушылардың оларды қолмен жіберуіне жол бермеу үшін олар құпия кілттің алғашқы 20 таңбасынан және _success сөзінен тұрады, мысалы: sk_live_d35gky6d8ers_success

Бұл callback-тер пайдаланушыға КӨРІНБЕЙДІ — олар тек операторға көрінеді.
Салыстыру түрі "Нақты сәйкестік" болып орнатылуы керек.
Сәтті төлемнен кейін stripe_payment_completed айнымалысы да True мәніне орнатылады.
Мысалы, сәтті төлемді шартты блокты пайдаланып өңдеуге және пайдаланушыға тиісті хабарламаны көрсетуге болады.

Төлем аяқталғаннан кейін клиенттің деректеріне stripe_callback_data айнымалысы қосылады, оның құрамында аяқталған транзакция үшін төлем жүйесінің жауабы болады. Алынған сөздіктен қажетті деректерді get әдісін пайдаланып шығаруға болады.
Қайталанатын төлемді өңдеу үшін алдымен payment_sum және бұрын жасалған сілтемені қалпына келтіру керек, содан кейін ғана жаңа сілтеме алу үшін payment_sum айнымалысын қайта тағайындау керек. Алдыңғы мәнді пайдалануға болады.
Төлемдерді қалай тексеруге болады
Интеграцияны тексеру үшін сынақ ортасының құпия кілтін пайдалануға болады. Ол үшін Stripe басқару панелінде оң жақтағы мәзірді пайдаланып, сынақ ортасына ауысыңыз.

Содан кейін осы нұсқаулықтың басында сипатталған орнату қадамдарын орындаңыз. Сынақ құпия кілтін енгізіңіз және сынақ ортасында веб-хабар URL мекенжайын қосыңыз.
Тестілеу үшін сынақ төлем картасының нөмірін пайдаланыңыз (ел үшін карта нөмірін Stripe ресми сайтынан таба аласыз).