วิธีเชื่อมต่อ
ในการเชื่อมต่อระบบชำระเงิน Stripe คุณจะต้องมีคีย์ API ลับและคีย์เว็บฮุค
คีย์ API ลับสามารถคัดลอกได้โดยไปที่ Developers → API keys และคัดลอก Secret key
ขั้นตอนที่ 1 ไปที่ Developers → API keys:

ขั้นตอนที่ 2 ค้นหาและคัดลอก Secret key:

ถัดไป คุณต้องตั้งค่า URL การเรียกกลับ (callback URL) เพื่อให้บอทสามารถรับการแจ้งเตือนการชำระเงิน
ไปที่ส่วน Webhooks และเพิ่ม URL เว็บฮุค

แบบฟอร์มจะปรากฏขึ้น

ขั้นตอนที่ 3 คลิก "+add destination"
ขั้นตอนที่ 4 เลือกเหตุการณ์

ขั้นตอนที่ 3 เลือกประเภท "Webhook endpoint"

ขั้นตอนที่ 4 ตรวจสอบประเภทคำขอแล้วคลิก "Continue"

ขั้นตอนที่ 5 ระบุชื่อและระบุ URL ปลายทาง

ตั้งค่า URL เป็น: https://chatter.mavibot.ai/stripe\\_callback/result
ขั้นตอนที่ 6 ปลายทางสองแห่งจะถูกสร้างขึ้น — คุณสามารถตรวจสอบการตั้งค่าก่อนเพิ่มได้

ขั้นตอนที่ 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 จะปรากฏขึ้น คุณสามารถแสดงตัวแปรนี้เป็นลิงก์หรือวางบนปุ่มที่มีข้อความ "Pay"
ลิงก์มีลักษณะดังนี้:
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 ภาษีได้ที่ไหน

วิธีตั้งค่าการชำระเงินแบบประจำ
สำหรับการชำระเงินแบบประจำ (การสมัครสมาชิก) ให้ประกาศตัวแปร stripe_subscription ก่อนตัวแปร payment_sum และกำหนดชื่อการสมัครสมาชิกให้กับตัวแปร
คุณยังสามารถเพิ่มตัวแปรต่อไปนี้: 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' จะถูกสร้างขึ้นด้วยราคา 1000 AED ต่อ 1 เดือน และจะมีการเรียกเก็บเงินประจำในจำนวนเดียวกันหลังจาก 1 เดือน

ตัวอย่างการคัดลอก:
stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90
หากต้องการเรียกเก็บเงินค่าสมัครสมาชิกทุกสอง สาม หรือสี่เดือน ให้ส่งพารามิเตอร์ interval_count:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
หากต้องการเปลี่ยนช่วงเวลาการชำระเงินค่าสมัครสมาชิกจากรายเดือนเป็นรายสัปดาห์ ให้ส่งคำว่า week ในพารามิเตอร์ interval:
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)


