วิธีเชื่อมต่อผู้ให้บริการชำระเงิน
Telegram มีระบบชำระเงินในตัว หากต้องการรับชำระเงินภายใน Telegram คุณต้อง:
- เชื่อมต่อผู้ให้บริการชำระเงินกับบอทของคุณผ่าน BotFather
- เปิดการตั้งค่าบอทของคุณใน BotFather และเลือก Payments


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



วิธีส่งใบแจ้งหนี้
หากต้องการส่งใบแจ้งหนี้ใน 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 | อาร์เรย์ที่อธิบายรายการในใบแจ้งหนี้ แต่ละรายการประกอบด้วยชื่อและจำนวนเงิน จำนวนเงินอาจเป็นจำนวนเต็มหรือทศนิยม ตัวอย่าง: [["Product", 2000], ["VAT", 20.75], ["Packaging", 100]]
|
| photo_url | URL ของรูปภาพผลิตภัณฑ์ |
| payload | ข้อมูล 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_nameneed_phone_numberneed_email
Telegram จะขอข้อมูลที่ร้องขอจากลูกค้าก่อนการชำระเงิน
หลังจากชำระเงินสำเร็จ ข้อมูลที่รวบรวมจะถูกบันทึกโดยอัตโนมัติในตัวแปรไคลเอนต์ที่เกี่ยวข้อง
ตัวอย่าง:

การเรียกกลับการชำระเงิน
หลังจากชำระเงินสำเร็จ Telegram จะส่งการเรียกกลับต่อไปนี้ไปยังบอท:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9
โดยที่:
-
tg_payment— ค่า payload ที่ระบุเมื่อสร้างใบแจ้งหนี้ -
1372995196— ID แชทที่ส่งใบแจ้งหนี้เดิม -
120.75— จำนวนเงินที่ชำระ -
USD— สกุลเงินที่ชำระ -
2ff747b9-000f-5000-b000-16d7e3517aa9— ID การชำระเงินที่ส่งคืนโดยผู้ให้บริการชำระเงิน

หากมีการร้องขอข้อมูลลูกค้า ตัวแปรไคลเอนต์ต่อไปนี้จะถูกเติมโดยอัตโนมัติ:
tg_payment_nametg_payment_phonetg_payment_email

การเรียกกลับการชำระเงินจะถูกส่งไปยัง แชทส่วนตัว ของผู้ใช้กับบอท
ผู้ใช้ต้องเริ่มการสนทนากับบอทก่อนทำการชำระเงิน มิฉะนั้น Telegram จะไม่สามารถส่งข้อความเรียกกลับได้
หลังจากได้รับ webhook การชำระเงิน MaviBot จะยืนยันการชำระเงินโดยอัตโนมัติโดยใช้เมธอด
answerPreCheckoutQuery
การปักหมุดข้อความใบแจ้งหนี้
หลังจากเชื่อมต่อผู้ให้บริการชำระเงินแล้ว คุณสามารถปักหมุดข้อความใบแจ้งหนี้ได้
ใช้ฟังก์ชัน:
tg_pin_chat_message(platform_id, message_id, disable_notification)
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| platform_id | ID แชท Telegram |
| message_id | ID ของข้อความที่จะปักหมุด |
| disable_notification | ควบคุมว่า Telegram จะส่งการแจ้งเตือนเกี่ยวกับข้อความที่ปักหมุดหรือไม่1 — ไม่มีการแจ้งเตือน0 — ส่งการแจ้งเตือนการแจ้งเตือนจะถูกปิดใช้งานเสมอในแชทส่วนตัวและแชนเนล |
ตัวอย่าง
ขั้นตอนที่ 1
prices = [["Course", 100], ["VAT", 20.75]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'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 จากผลลัพธ์:
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',
'Creating courses is super easy',
'USD',
prices
)

ตัวอย่าง: ใบแจ้งหนี้พร้อมแป้นพิมพ์อินไลน์
prices = [["Course", 100], ["VAT", 20.75]]
tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'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"}]]}'
)
