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

ระบบการชำระเงินถูกสร้างไว้ใน Telegram

ในการชำระเงินภายในแอปพลิเคชัน คุณต้อง:

  • เชื่อมต่อระบบการชำระเงินกับบอทใน BotFather

  • ไปที่การตั้งค่าของบอทที่ต้องการ และเลือกเมนู Payments

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

                                         ![](https://docs.mavibot.ai/files/1PhZiQDP4PjOrrnX1v6g)<br>
    

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

ในการส่งใบแจ้งหนี้ไปยัง Telegram ให้ใช้เมธอด

tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, phone_number, need_email, reply_to_message_id, reply_markup, reply_id) - พารามิเตอร์ที่จำเป็นจะถูกเน้นเป็นตัวหนา

provider_token - โทเค็นที่ได้รับจาก BotFather หลังจากเชื่อมต่อระบบการชำระเงิน

platform_id - ผู้รับ - ตัวระบุของผู้ใช้ กลุ่ม หรือแชนเนล

title - ชื่อสินค้า 1-32 ตัวอักษร

description - คำอธิบายสินค้า 1-255 ตัวอักษร

currency - สกุลเงินที่ใช้ชำระ (RUB, USD, UAH และอื่นๆ https://core.telegram.org/bots/payments#supported-currencies)

payload - ส่วนแรกของข้อมูลเกี่ยวกับการชำระเงิน โดยค่าเริ่มต้นคือ tg_payment

prices - รายละเอียดราคา (คำอธิบายด้านล่าง)

photo_url - ลิงก์ไปยังรูปภาพสินค้า

disable_notification - 1 - ส่งพร้อมการแจ้งเตือน, 0 - ไม่มีการแจ้งเตือน

protect_content - 1 ป้องกันการคัดลอกและสกรีนช็อต, 0 - ไม่มีการป้องกัน

need_name - 1 หากต้องการชื่อผู้ใช้เต็มเพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องขอชื่อ

need_phone_number - 1 หากต้องการหมายเลขโทรศัพท์ของผู้ใช้เพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องขอหมายเลข

need_email - 1 หากต้องการที่อยู่อีเมลของผู้ใช้เพื่อดำเนินการสั่งซื้อ, 0 - ไม่ต้องขออีเมล

reply_to_message_id - ID ของข้อความที่เราตอบกลับ, '' หมายถึงไม่ตอบกลับ

reply_markup - คีย์บอร์ด ปุ่มแรกควรเป็นปุ่มประเภทชำระเงิน

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

prices - อาร์เรย์ของอาร์เรย์ที่มีข้อมูลเกี่ยวกับต้นทุนสินค้าและบริการเพิ่มเติม (การจัดส่ง บรรจุภัณฑ์ ฯลฯ) แสดงบนหน้าชำระเงิน จำนวนเงินจะต้องระบุเป็นจำนวนเต็ม 125 หรือเศษส่วนผ่านจุด 120.25 ตัวอย่าง: [["สินค้า", 2000], ["VAT", 20.75], ["บรรจุภัณฑ์", 100]

Callback เมื่อชำระเงิน

หลังจากชำระเงินสำเร็จ ในแชทกับผู้ใช้จะได้รับ callback ดังนี้:

phone_best 4737685 2120.75 UAH 1955518436

โดยที่ phone_best - payload - จากคำขอสร้างใบแจ้งหนี้ 473737685 - chat id ที่ส่งใบแจ้งหนี้ไป 2120.75 - จำนวนเงินเต็ม UAH - สกุลเงิน 1955518436 - payment id ในระบบของผู้ค้า

นอกจากนี้ หากคุณขอชื่อ โทรศัพท์ และ/หรืออีเมล ลูกค้าจะบันทึกตัวแปร:

tg_payment_name, tg_payment_phone และ tg_payment_email

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

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

ตัวอย่าง

prices = [["product", 2000], ["NDS", 20.75], ["package", 100]]
result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'Best Model on the Market', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)

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

prices = [["an amazing product", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'The best bot ever!',`` 'An amazing course! Be the best!', 'UAH', prices)

ตัวอย่างพร้อมคีย์บอร์ด

prices = [["product", 2000], ["NDS", 20.75], ["package", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'BEst Model on the Market', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Pay", "pay":"True"}], [{"text":"One more button", "callback_data": "One more button"}]]}')