Қалай қосу керек
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) таңдаңыз.

Салық мөлшерлемесін жасағаннан кейін, төлем сомасын жарияламас бұрын оның ID мәнін 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 мәнін орнатпас бұрын келесі қосымша айнымалыларды да орнатуға болады.
Маңызды! Егер сіз 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
Салық ID мәнін қайдан табуға болады.

Қайталанатын төлемдерді қалай орнату керек
Қайталанатын төлемдер (жазылымдар) үшін 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 айнымалыларын бірге пайдалансаңыз, олардағы мәндер МІНДЕТТІ ТҮРДЕ ӘРТҮРЛІ БОЛУЫ КЕРЕК!
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 (кейінірек жазылым күйін тексеру үшін пайдаланылуы мүмкін) қосылады.
Хабарландыру (кері шақыру) тек бірінші қайталанатын төлем үшін жіберіледі!
Келесі төлемдер үшін кері шақыру БОЛМАЙДЫ. Бақылау функция және 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-тегі клиент идентификаторы (міндетті емес параметр)


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

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

Жеңілдік купоны "Product catalogue" бөліміндегі "Coupons" бөлімінде пайда болады және купон мәзірін ашу арқылы жеңілдік ID мәнін көруге болады.

Купон ID мәнін көшіру үшін оны басыңыз.

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

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

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

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

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

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

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


