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 | รหัสคำสั่งซื้อของร้านค้า |
| mode | PAYMENT สำหรับการแจ้งเตือนการชำระเงิน |
| 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 มีความทนทานและเชื่อถือได้