การแจ้งเตือน Callback
การแจ้งเตือน Callback
เมื่อ pay-in / pay-out ถึงสถานะสุดท้าย Smilepayz ส่ง HTTP POST ไปที่ URL ของคุณ
เฉพาะคำสั่ง API
ส่ง callback เฉพาะคำสั่งจาก Pay-in / Pay-out API คำสั่งจาก Payment Link ในพอร์ทัลไม่ส่ง
ขั้นตอน: ตั้ง URL → ตรวจลายเซ็นและอัปเดตออเดอร์ → ตอบ SUCCESS
1. ตั้งค่า callback URL
- เข้า Merchant Portal สลับ Sandbox (หรือ Production) ด้านบน
- Configuration → API Setting → API Notify Address:
- Payin — URL แจ้ง pay-in
- Withdraw — URL แจ้ง pay-out
- กด Save

แนะนำ HTTPS (443) URL production / IP whitelist: ข้อมูลการรวมระบบ การส่งซ้ำอาจเกิด — จัดการ callback แบบidempotent
ใช้ `tradeNo` เป็นคีย์ idempotency ก่อน
การส่งซ้ำจะคง tradeNo เดิม ในเม็กซิโก (และภูมิภาคคล้ายกัน) sub-order ของ pay-in อาจใช้ orderNo เดียวกับออเดอร์หลัก แต่มี tradeNo ของตนเอง — ใช้ tradeNo สำหรับ idempotency ระดับธุรกรรม อย่าตัดซ้ำด้วย orderNo อย่างเดียว ดู Mexico Pay-in · Sub-order transaction & callback
2. ตรวจลายเซ็น (ไม่ใช่สูตร request)
ตรวจก่อนอัปเดตออเดอร์ กฎ, Platform Public Key และโค้ดตัวอย่างอยู่ที่หน้าเฉพาะ (ต่างจากสูตร request):
ดูเพิ่มCallback Signature3. Body และการตอบ
Body เป็น JSON ฟิลด์ที่ใช้บ่อย: orderNo, tradeNo, merchantId, status, money, transactionTime (yyyy-MM-ddTHH:mm:ss ตาม timezone ภูมิภาคออเดอร์) รายละเอียดเต็ม: Pay-in / Pay-out → Notification/Callback ตามภูมิภาค
หลังตรวจและบันทึกแล้ว HTTP 200 ต้องเป็นข้อความล้วน:
SUCCESS
คำเตือน
หลัง trim ต้องเท่ากับ SUCCESS พอดี อย่าตอบ JSON / HTML มิฉะนั้นจะส่งซ้ำ
ทดสอบใน Sandbox
- สร้าง pay-in ผ่าน API (
paymentMethodห้ามว่าง เช่นQRISในอินโด) - พอร์ทัล Pay-in Order → Operate → Set Callback (สำเร็จ / ล้มเหลว)
- ดู Callback Status

Production ส่งอัตโนมัติเมื่อถึงสถานะสุดท้าย — ไม่ต้องกด Set Callback
แก้ปัญหา
| ปัญหา | ตรวจ |
|---|---|
| ไม่ได้รับ | Save URL แล้วหรือยัง? firewall / ใบรับรอง HTTPS |
| ตรวจลายเซ็นไม่ผ่าน | ดู Callback Signature |
| Set Callback ไม่ได้ผล | ต้องสร้างด้วย API; paymentMethod ไม่ว่าง |
| ส่งซ้ำไม่หยุด | ตอบ SUCCESS หลัง trim พอดีหรือยัง |

