เว็บฮุค (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 อื่นๆ
สถานนะทั้งหมดของ Message#
message field value
| ค่าตัวแปร | คำอธิบาย |
|---|---|
| Order Timeout | ออเดอร์หมดระยะเวลาที่สามารถชำระได้ |
| Order Closed | ออเดอร์กูกปิด |
| Order Paid | ออเดอร์ถูกจ่าย |
| Order Refunded | ออเดอร์มีการคืนเงินบางส่วน/เต็มจำนวน |
ตัวอย่าง Webhook notification#
| URL | webhook address |
|---|---|
| Method | GET |
Request content#
ตัวอย่างในการ Query string#
ตัวอย่างใน Postman#

Endpoint สำหรับการทดสอบ webhook#
webhook จะใช้ได้กับ url ที่สามารถเข้าถึงได้บน internet เท่านั้น localhost จะไม่สามารถทำการทดสอบได้
ในกรณีที่ร้านค้ายังไม่มี public URL แต่ต้องการทดสอบ webhook สามารถทดสอบ กับเว็บไซต์เช่น https://webhook.site
หรือสามารถอ่านข้อมูลเกี่ยวกับ การทดสอบ WebHook ด้วยเว็บไซต์บันทึก log เนื้อหาบทความจาก microsoft