วิธีเชื่อมต่อ

ในการเชื่อมต่อระบบชำระเงิน 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.failed
  • charge.pending
  • charge.succeeded

รายละเอียดเพิ่มเติมเกี่ยวกับเว็บฮุคแต่ละประเภท:

  1. charge.succeeded — มีข้อมูลเกี่ยวกับธุรกรรมที่สำเร็จ (คล้ายกับการเรียกกลับการชำระเงินที่สำเร็จ)
  2. charge.pending — "ธุรกรรมกำลังดำเนินการ" อาจใช้เวลาสูงสุด 7 วันจึงจะเสร็จสมบูรณ์ เว็บฮุคจะมีรูปแบบ {10 ตัวอักษรแรก}{ประเภทเว็บฮุค} ตัวอย่าง: sk_test_45LDPJLKT95d_charge.pending
  3. charge.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" จะเปิดหน้าที่คุณต้องระบุ:

  1. Name — ชื่อส่วนลด;
  2. ID — ตัวระบุ สร้างขึ้นโดยอัตโนมัติ;
  3. Type — ประเภทส่วนลด: เปอร์เซ็นต์หรือจำนวนเงินคงที่;
  4. Duration — ระยะเวลาส่วนลด (ครั้งเดียวหรือต่อเนื่อง เช่น สำหรับการสมัครสมาชิก) และพารามิเตอร์อื่นๆ

คูปองส่วนลดจะปรากฏใน "Product catalogue" ภายใต้ส่วน "Coupons" และคุณสามารถดู ID ส่วนลดได้โดยเปิดเมนูคูปอง

คลิกที่คูปองเพื่อคัดลอก ID คูปอง

วิธีใช้ส่วนลดกับคำสั่งซื้อ

  1. เมื่อสร้างลิงก์การชำระเงิน (ใช้ได้ทั้งการสมัครสมาชิกและการชำระเงินครั้งเดียว)

ในเครื่องคิดเลขของบล็อก ก่อนประกาศตัวแปร payment_sum ให้ตั้งค่าตัวแปร coupon_id และส่งตัวระบุส่วนลดจากแดชบอร์ด Stripe ของคุณ

  1. สำหรับการสมัครสมาชิกที่มีอยู่โดยใช้ฟังก์ชัน 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)