เว็บฮุค (Webhook)
webhook คือการแจ้งสถานะการชำระเงินของคำสั่งซื้อ เมื่อสถานะการชำระเงินเกิดการเปลี่ยนแปลง ผ่านทาง API
ร้านค้าสามารถตั้งค่า Webhook URL บนอินเทอร์เฟซของ portal เมื่อสถานะการชำระเงินมีการเปลี่ยนแปลง portal จะทำการส่งข้อมูลดังกล่าวไปยัง Webhook URL.
เมื่อใดก็ตามที่สถานะการสั่งซื้อเปลี่ยนแปลง request GET จะถูกส่งไปยัง webhook URL โดยมีพารามิเตอร์ดังต่อไปนี้
ชื่อ Parameter | ชนิดตัวแปร | คำอธิบาย |
---|---|---|
type | string | ชนิด Event กำหนดไว้เป็นค่า "order" |
instance | string | หมายเลขคำสั่งซื้อจากฝั่งร้านค้า หรือค่า Merchant_order_id |
code | string | Event code กำหนดไว้เป็นค่า "statuschange" |
message | string | สถานะคำสั่งซื้อ |
signature | string | Request signature |
response ของ webhook สามารถทำ signature และตรวจสอบ signature ได้ โดยใช้รูปแบบเดียวกัน และ apiUrl ใน signature จะใช้ที่อยู่แบบเต็มของเว็บฮุค
การส่งข้อมูลผ่าน webhook จะถือว่าสำเร็จหาก http response ที่ได้รับเท่ากับ 200 มิฉะนั้น webhook จะทำการส่งซ้ำทุกๆ 5 วินาที สูงสุด 6 ครั้ง
เมื่อได้รับการแจ้งเตือนผ่าน webhook พารามิเตอร์จะต้องได้รับการตรวจสอบ สำหรับกระบวนการตรวจสอบ สามารถตรวจสอบได้โดยวิธีการสร้าง signature ที่ด้านล่าง
หมายเหตุ การตรวจสอบว่า signature ที่ใช้บน Webhook มาจาก Payment Gateway จริงหรือไม่ ควรตรวจสอบ signature โดยใช้อัลกอริทึมเดียวกับการเรียก API อื่นๆ
#
สถานนะทั้งหมดของ Messagemessage field value
ค่าตัวแปร | คำอธิบาย |
---|---|
Order Timeout | ออเดอร์หมดระยะเวลาที่สามารถชำระได้ |
Order Closed | ออเดอร์กูกปิด |
Order Paid | ออเดอร์ถูกจ่าย |
Order Refunded | ออเดอร์มีการคืนเงินบางส่วน/เต็มจำนวน |
#
ตัวอย่าง Webhook notificationURL | webhook address |
---|---|
Method | GET |
#
Request content#
ตัวอย่างในการ Query string#
ตัวอย่างใน Postman#
Endpoint สำหรับการทดสอบ webhookwebhook จะใช้ได้กับ url ที่สามารถเข้าถึงได้บน internet เท่านั้น localhost จะไม่สามารถทำการทดสอบได้
ในกรณีที่ร้านค้ายังไม่มี public URL แต่ต้องการทดสอบ webhook สามารถทดสอบ กับเว็บไซต์เช่น https://webhook.site
หรือสามารถอ่านข้อมูลเกี่ยวกับ การทดสอบ WebHook ด้วยเว็บไซต์บันทึก log เนื้อหาบทความจาก microsoft