วิธีเชื่อมต่อระบบการชำระเงิน

ระบบการชำระเงินถูกสร้างไว้ใน Telegram แล้ว หากต้องการรับชำระเงินภายในแอปพลิเคชัน คุณต้อง:

  • เชื่อมต่อระบบการชำระเงินกับบอทของคุณโดยใช้ BotFather
  • ไปที่การตั้งค่าบอทที่ต้องการ และเลือก "การชำระเงิน" จากเมนู

ทำตามคำแนะนำเพื่อเชื่อมต่อระบบการชำระเงินที่มีอยู่ และคัดลอกโทเค็นที่ได้รับ

วิธีออกใบแจ้งหนี้ให้ลูกค้า

หากต้องการส่งใบแจ้งหนี้ใน Telegram ให้ใช้เมธอดและระบุพารามิเตอร์ที่จำเป็น

tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, need_phone_number, need_email, reply_to_message_id, reply_markup, message_thread_id, provider_data)

พารามิเตอร์ของฟังก์ชัน คำอธิบายพารามิเตอร์
**!** provider_token (พารามิเตอร์ที่จำเป็น) โทเค็นที่ได้รับจาก BotFather หลังจากเชื่อมต่อระบบการชำระเงิน
**!** platform_id (พารามิเตอร์ที่จำเป็น) ID ของผู้รับ - ตัวระบุผู้ใช้ กลุ่ม หรือแชนเนล
**!** title (พารามิเตอร์ที่จำเป็น) ชื่อสินค้า 1–32 ตัวอักษร
**!** description (พารามิเตอร์ที่จำเป็น) คำอธิบายสินค้า 1–255 ตัวอักษร
**!** currency (พารามิเตอร์ที่จำเป็น) สกุลเงินที่ใช้ชำระเงิน (**EUR**, USD, UAH ฯลฯ; สำหรับรายละเอียดเพิ่มเติม https://core.telegram.org/bots/payments#supported-currencies )
prices

อาร์เรย์ของอาร์เรย์ที่มีรายละเอียดราคาสำหรับสินค้าและบริการเพิ่มเติม (ค่าจัดส่ง ค่าบรรจุภัณฑ์ ฯลฯ) แสดงบนหน้าชำระเงิน จำนวนเงินสามารถระบุเป็นจำนวนเต็ม (เช่น 125) หรือเลขทศนิยมโดยใช้จุด (เช่น 120.25)

ตัวอย่าง: [["product", 2000], ["VAT", 20.75], ["packaging", 100]]

photo_url URL รูปภาพสินค้า
payload ส่วนแรกของการตอบกลับการชำระเงิน ค่าเริ่มต้นคือ tg_payment
protect_content 1 - ป้องกันการคัดลอกและแคปหน้าจอ, 0 - ไม่มีการป้องกัน
disable_notification 1 - ส่งพร้อมการแจ้งเตือน, 0 - ไม่มีการแจ้งเตือน
need_name 1 - ต้องระบุชื่อเต็มของผู้ใช้เพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องระบุชื่อ
need_phone_number 1 - ต้องระบุหมายเลขโทรศัพท์ของผู้ใช้เพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องระบุหมายเลขโทรศัพท์
need_email 1 - ต้องระบุอีเมลของผู้ใช้เพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องระบุอีเมล
reply_to_message_id ID ของข้อความที่ต้องการตอบกลับ; หากต้องการส่งใบแจ้งหนี้เป็นข้อความแยกต่างหาก ให้ใช้เครื่องหมายคำพูดเดี่ยวสองตัว ('')
reply_markup คีย์บอร์ดที่มีปุ่มแรกตั้งค่าเป็นประเภท pay
message_thread_id ID ของหัวข้อ (ใช้ได้สำหรับซูเปอร์กรุ๊ปที่เปิดใช้งานฟังก์ชันฟอรัม)
provider_data ข้อมูลใบแจ้งหนี้ในรูปแบบ JSON ที่จะส่งไปยังผู้ให้บริการระบบการชำระเงิน ระบบการชำระเงินควรให้คำอธิบายโดยละเอียดของฟิลด์ที่จำเป็น

สำคัญ! พารามิเตอร์ทั้งหมดต้องถูกส่งตามลำดับที่ระบุในฟังก์ชัน หากคุณต้องการระบุพารามิเตอร์บางตัวและละเว้นพารามิเตอร์อื่น ให้ปล่อยค่าไว้เป็นค่าว่างหรือค่าตามที่ระบุในเอกสารสำหรับพารามิเตอร์ที่คุณไม่ต้องการ

ตัวอย่าง:

หากเปิดใช้งานพารามิเตอร์ need_name, need_phone_number หรือ need_email ใดๆ ผู้ใช้จะถูกขอให้ระบุข้อมูลนั้นก่อนดำเนินการชำระเงิน เมื่อชำระเงินสำเร็จ ข้อมูลจะถูกบันทึกไปยังตัวแปรของลูกค้าที่เกี่ยวข้อง

ตัวอย่าง:

ผลลัพธ์: ข้อมูลจะถูกขอให้กรอกก่อนการชำระเงิน

การตอบกลับการชำระเงิน

หากการชำระเงินสำเร็จ การตอบกลับที่มีเนื้อหาต่อไปนี้จะถูกส่งไปยังแชทของผู้ใช้:

tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', โดยที่

  1. course_pay - payload - payload จากการร้องขอสร้างใบแจ้งหนี้เดิม;
  2. 1372995196 - ID ของแชทที่ส่งใบแจ้งหนี้เดิม;
  3. 120.75 - จำนวนเงินที่ชำระทั้งหมด;
  4. USD - สกุลเงิน;
  5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - ID การชำระเงินในระบบของผู้ค้า

นอกจากนี้ หากมีการขอชื่อผู้ใช้ หมายเลขโทรศัพท์ และ/หรืออีเมล ตัวแปรที่เกี่ยวข้องจะถูกกำหนดให้กับลูกค้า:

tg_payment_name, tg_payment_phone และ tg_payment_email

การตอบกลับการชำระเงินที่สำเร็จจะถูกส่งไปยัง ข้อความโดยตรง ของผู้ใช้กับบอท

ผู้ใช้ ต้องมีแชทที่มีอยู่แล้ว กับบอท (เช่น ต้องเริ่มต้นหรือสมัครรับข้อมูลบอท) ก่อน การชำระเงิน มิฉะนั้น บอทจะไม่สามารถส่งข้อความโดยตรงถึงพวกเขาได้

เมื่อได้รับเว็บฮุคการชำระเงินแล้ว การชำระเงินจะถูกยืนยันโดยอัตโนมัติผ่านเมธอด answerPreCheckoutQuery https://core.telegram.org/bots/api#answerprecheckoutquery

ข้อความปักหมุดพร้อมปุ่มชำระเงิน

คุณต้องใช้ฟีเจอร์ปักหมุดข้อความหลังจากเชื่อมต่อระบบการชำระเงิน

tg_pin_chat_message(platform_id, message_id, disable_notification)

พารามิเตอร์ของฟังก์ชัน คำอธิบาย
**!** platform_id ID แชท Telegram *
message_id ID ของข้อความที่จะปักหมุด
disable_notification พารามิเตอร์นี้กำหนดว่าจะส่งการแจ้งเตือนไปยังสมาชิกแชททั้งหมดเกี่ยวกับข้อความที่ปักหมุดใหม่หรือไม่ การแจ้งเตือนจะถูกปิดใช้งานเสมอในแชนเนลและแชทส่วนตัว
หากต้องการปิดการแจ้งเตือน ให้ตั้งค่าพารามิเตอร์ disable_notification เป็น 1; มิฉะนั้น ให้ใช้ 0

ตัวอย่าง:

ขั้นตอนที่ 1:
prices = [["course", 100], ["VAT", 20.75]]

result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}]]}')

ขั้นตอนที่ 2:
จากผลลัพธ์ของขั้นตอนแรก คุณจะได้รับการตอบกลับ ซึ่งคุณต้องแยกค่า message_id โดยใช้ฟังก์ชัน get()
res=get(result,'result')
m_id=get(res,'message_id')

จากนั้น ปักหมุดข้อความ: tg_pin_chat_message(#{platform_id}, #{m_id}, 1)

ตัวอย่าง: ชุดพารามิเตอร์ขั้นต่ำ

prices = [["super course", 100]]

result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is super easy', 'USD', prices)

ตัวอย่าง: คีย์บอร์ด

prices = [["course", 100], ["VAT", 20.75]]

tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is easy, 'USD', prices, 'https://mavibot.ai/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"Another button", "callback_data": "Another button"}]]}')