Callback การชำระเงิน

เมื่อผู้ใช้ทำการชำระเงินสำเร็จ ระบบจะแจ้งเตือนร้านค้าผ่าน Webhook (URL ที่ระบุตอนสร้างคำสั่งชำระเงิน) โดยส่ง POST request พร้อม Content-Type: application/json ไปยัง notify URL ของร้านค้าพร้อมข้อมูลด้านล่าง Signature จะถูกส่งใน header X-Signature ผู้ใช้ต้องตรวจสอบ Signature ก่อนดำเนินการต่อ

Method : POST

ข้อมูล Callback

{
    "merchant_id" : "[merchant id]",
    "platform_order_id" : "[platform order id]",
    "client_order_id" : "[merchant order id]",
    "mode" : "PAYMENT",
    "amount" : "[amount]",
    "status" : "PAID",
    "timestamp" : [timestamp]
}

คำอธิบาย

พารามิเตอร์คำอธิบาย
merchant_idรหัสร้านค้า
platform_order_idรหัสคำสั่งซื้อของแพลตฟอร์ม
client_order_idรหัสคำสั่งซื้อของร้านค้า
modePAYMENT สำหรับการแจ้งเตือนการชำระเงิน
amountจำนวนเงิน
statusสถานะ PAID FAIL CANCELLED

CANCELLED จะถูกส่งเมื่อลูกค้ากดยกเลิกคำสั่งซื้อบนหน้าชำระเงิน การยกเลิกอาจยังไม่ถือเป็นที่สิ้นสุด ในบางกรณีคำสั่งซื้ออาจถูกชำระเงินสำเร็จภายหลังได้ ซึ่งคุณจะได้รับ callback สถานะ PAID สำหรับ platform_order_id เดิมตามมา ให้ถือว่า PAID เป็นสถานะที่ถูกต้องเสมอ

ตัวอย่าง HTTP Request ทั้งหมด

POST /callback HTTP/1.1
Content-Type: application/json
Connection: Close
X-Signature: b6f9dd313cde39ae1b87e63b9b457029bcea6e9520b5db5de20d3284e4c0259e

{
    "merchant_id" : "AA12345678",
    "platform_order_id" : "THBP2024042821130xxxxxxxxx",
    "client_order_id" : "ORDER0123456789789445566",
    "mode" : "PAYMENT",
    "amount" : "1000.00",
    "status" : "PAID",
    "timestamp" : 112233445566
}

การจัดการ Callback

เพื่อให้การจัดการ Callback จากระบบถูกต้อง กรุณาพัฒนาระบบรับ Webhook โดยคำนึงถึงสิ่งต่อไปนี้:

การตอบกลับ HTTP Status 200: ระบบของคุณต้องตอบกลับด้วย HTTP status code 200 เมื่อได้รับและประมวลผล Callback สำเร็จ หากระบบไม่ได้รับการตอบกลับ 200 ระบบจะส่ง Callback ซ้ำหลังจากรอสักครู่จนกว่าจะได้รับการยืนยัน

การจัดการ Callback ซ้ำ (Idempotency): เป็นเรื่องปกติที่อาจเกิด Callback ซ้ำ ตรวจสอบให้ระบบของคุณยืนยันแต่ละ Callback โดยใช้ platform_order_id หรือ client_order_id ก่อนดำเนินการ พัฒนาระบบให้ Callback ซ้ำไม่ทำให้เกิดการดำเนินการหรือธุรกรรมทางการเงินซ้ำ

ขั้นตอนเหล่านี้เป็นไปตามมาตรฐานอุตสาหกรรมสำหรับการพัฒนา Webhook และช่วยให้การประมวลผล Callback มีความทนทานและเชื่อถือได้