วิธีเชื่อมต่อผู้ให้บริการชำระเงิน

Telegram มีระบบชำระเงินในตัว หากต้องการรับชำระเงินภายใน Telegram คุณต้อง:

  1. เชื่อมต่อผู้ให้บริการชำระเงินกับบอทของคุณผ่าน BotFather
  2. เปิดการตั้งค่าบอทของคุณใน 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_name
  • need_phone_number
  • need_email

Telegram จะขอข้อมูลที่ร้องขอจากลูกค้าก่อนการชำระเงิน

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

ตัวอย่าง:

การเรียกกลับการชำระเงิน

หลังจากชำระเงินสำเร็จ Telegram จะส่งการเรียกกลับต่อไปนี้ไปยังบอท:

tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9

โดยที่:

  1. tg_payment — ค่า 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

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

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

หลังจากได้รับ webhook การชำระเงิน MaviBot จะยืนยันการชำระเงินโดยอัตโนมัติโดยใช้เมธอด 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 ควบคุมว่า 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"}]]}'
)