วิธีเชื่อมต่อระบบการชำระเงิน
ระบบการชำระเงินถูกสร้างไว้ใน 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', โดยที่
- course_pay - payload - payload จากการร้องขอสร้างใบแจ้งหนี้เดิม;
- 1372995196 - ID ของแชทที่ส่งใบแจ้งหนี้เดิม;
- 120.75 - จำนวนเงินที่ชำระทั้งหมด;
- USD - สกุลเงิน;
- 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"}]]}')
