Async Verify ทางเลือกใหม่สำหรับการตรวจสลิปจำนวนมาก ผ่าน Queue และ Webhook

Async Verify ทางเลือกใหม่สำหรับการตรวจสลิปจำนวนมาก ผ่าน Queue และ Webhook

เมื่อธุรกิจมีรายการชำระเงินเข้ามาพร้อมกันจำนวนมาก การส่งสลิปไปตรวจแล้วรอผลตอบกลับทีละรายการอาจไม่เหมาะกับทุกระบบ โดยเฉพาะระบบที่ต้องรับงานต่อเนื่องหรือไม่ต้องการเปิด Request ค้างไว้เพื่อรอผลตรวจ

EasySlip API v2 จึงมี Async Verify สำหรับส่งงานตรวจสอบสลิปเข้าสู่ Queue ก่อน แล้วให้ระบบประมวลผลเบื้องหลัง เมื่อได้ผลลัพธ์ EasySlip จะส่งผลกลับไปยังระบบของธุรกิจผ่าน Webhook Callback โดยอัตโนมัติ

แนวทางนี้ช่วยแยก “การส่งงาน” ออกจาก “การรอผลตรวจ” ทำให้ระบบสามารถรองรับงานหลายรายการได้ยืดหยุ่นขึ้น โดยไม่ต้องรอผลการตรวจสอบอยู่ใน Request เดิม

1. Async Verify คืออะไร และต่างจากการตรวจแบบปกติอย่างไร

การตรวจสลิปแบบปกติ หรือ Sync Verify จะส่งข้อมูลสลิปไปยัง API และรอผลการตรวจสอบกลับมาใน Request เดิม ส่วน Async Verify จะทำงานต่างออกไป คือระบบของคุณส่ง QR Payload เข้ามาก่อน EasySlip จะตรวจสอบความถูกต้องของ Request และเมื่อรับงานเข้าสู่ Queue สำเร็จ จะตอบกลับด้วย 202 Accepted พร้อม jobId โดยยังไม่ได้หมายความว่าสลิปตรวจผ่าน

หลังจากนั้น EasySlip จะตรวจสอบสลิปในเบื้องหลัง และเมื่อได้ผลแล้วจึงส่งผลกลับผ่าน Webhook พูดง่าย ๆ คือ ส่งงาน → รับ Job → ตรวจสอบเบื้องหลัง → รับผลผ่าน Webhook จุดสำคัญคือ Request ต้องผ่าน Validation ก่อนจึงจะถูกนำเข้าสู่ Queue หากข้อมูลไม่ถูกต้อง หรือ Request ถูกปฏิเสธก่อนเข้า Queue จะไม่มี Job และไม่มี Result Webhook ตามมา

2. ฟีเจอร์หลักของ Async Verify

Batch Processing — ส่งหลายสลิปใน Request เดียว

หากต้องตรวจหลายรายการ สามารถใช้ Batch Verify เพื่อส่งสลิปได้ตั้งแต่ 1 ถึง 100 รายการใน Request เดียว เมื่อ Batch ผ่าน Validation ระบบจะคืน batchId พร้อม jobId แยกสำหรับสลิปแต่ละรายการ จากนั้นแต่ละสลิปจะถูกประมวลผลเป็น Job ของตัวเอง และมี Webhook Callback แยกกัน

ดังนั้น 1 Batch ไม่ได้หมายถึง 1 Webhook แต่หากส่ง 100 สลิป ก็อาจได้รับผลกลับเป็น 100 Webhook ตามจำนวน Job สำหรับ Batch จะตรวจสอบข้อมูลทั้งชุดก่อนเข้า Queue หากมีสลิปใดสลิปหนึ่ง Payload ไม่ถูกต้อง หรือจำนวนรายการเกิน 100 ระบบจะปฏิเสธทั้ง Batch และไม่มีรายการใดถูกนำเข้าสู่ Queue

Automatic Retry — ข้อมูลยังไม่พร้อม ระบบตรวจซ้ำให้อัตโนมัติ

บางกรณีข้อมูลธุรกรรมจากธนาคารอาจยังไม่พร้อมในครั้งแรก เช่น ผลเป็น not_found หรือข้อมูลจาก Bangkok Bank ยังอยู่ในสถานะ Pending

Async Verify จะช่วยตรวจซ้ำเบื้องหลังโดยอัตโนมัติ สูงสุดอีก 4 ครั้ง หลังจากการตรวจครั้งแรก โดยเว้นช่วงประมาณ 30, 60, 120 และ 240 วินาที หากพบข้อมูลก่อนครบจำนวนครั้ง Job จะจบทันที แต่หากตรวจครบแล้วยังไม่พบ ผลจะเป็น not_found ไม่ใช่ failed

Webhook Callback — ตรวจเสร็จแล้วส่งผลกลับให้ระบบอัตโนมัติ

เมื่อ Job ตรวจสอบเสร็จ EasySlip จะส่งผลลัพธ์ไปยัง callbackUrl ของระบบผ่าน HTTP POST โดยแต่ละสลิปจะมี Callback ของตัวเอง ผลลัพธ์หลักมีทั้ง success, not_found และ failed ทำให้ระบบปลายทางสามารถนำสถานะไปทำงานต่อได้ เช่น อัปเดตสถานะออเดอร์ บันทึกประวัติ หรือแจ้งผลให้ผู้ใช้งาน

หากระบบปลายทางรับ Webhook ไม่สำเร็จ เช่น ตอบกลับไม่ใช่ 2xx, Timeout หรือ Network Error ระบบจะลองส่ง Webhook ซ้ำอีกสูงสุด 3 ครั้ง โดยเว้นประมาณ 10, 30 และ 120 วินาที เนื่องจาก Webhook เดิมอาจถูกส่งซ้ำ ระบบฝั่งลูกค้าควรใช้ jobId สำหรับป้องกันการประมวลผลรายการเดิมซ้ำ และควรตอบ HTTP 2xx เมื่อรับข้อมูลสำเร็จ

Async Verify ทางเลือกใหม่สำหรับการตรวจสลิปจำนวนมาก
Webhook เป็นช่องทางหลักสำหรับรับผลจาก Async Verify

3. ถ้าพลาด Webhook ก็ยังตรวจสอบผลได้

Webhook เป็นช่องทางหลักสำหรับรับผลจาก Async Verify แต่ไม่ใช่ช่องทางเดียว หากระบบไม่ได้รับ Callback หรือปลายทางมีปัญหา สามารถใช้ jobId ที่ได้รับตอนส่งงานไปเรียก Job API เพื่อตรวจสอบสถานะและผลลัพธ์ได้ โดยข้อมูล Job สามารถดึงได้ประมาณ 7 วัน จึงเหมาะสำหรับใช้เป็น Fallback หรือใช้กระทบยอดรายการที่อาจพลาด Webhook

4. ก่อนใช้งาน Async Verify ต้องเตรียมอะไรบ้าง

Async Verify สำหรับสลิปธนาคารรับ QR Payload เท่านั้น ไม่รองรับการส่งรูปภาพ, Base64 หรือ URL แบบ Sync Verify และไม่รองรับ TrueWallet ระบบที่เชื่อมต่อควรมี API Key สำหรับเรียกใช้งาน และมี callbackUrl แบบ HTTPS หรือกำหนด Default Webhook URL ไว้ที่ Branch

นอกจากนี้ควรเก็บ jobId ของแต่ละรายการไว้ เพื่อใช้จับคู่ผลลัพธ์ ตรวจสอบสถานะย้อนหลัง และรองรับกรณีที่ต้องใช้ Job API เป็นช่องทางสำรอง สำหรับระบบที่รับ Webhook ควรออกแบบให้รองรับ Callback ซ้ำได้ และตรวจสอบ Webhook Signature ก่อนนำข้อมูลไปใช้งาน

5. Async Verify เหมาะกับระบบแบบไหน

Async Verify เหมาะกับระบบที่มีรายการตรวจสอบสลิปจำนวนมาก ระบบที่รับรายการเข้ามาต่อเนื่อง หรือระบบที่ไม่ต้องการรอผลตรวจภายใน Request เดิม

ตัวอย่างเช่น ระบบ E-Commerce, ระบบจองหรือรับมัดจำ, ระบบหลังบ้านที่มี Queue ของตัวเอง หรือระบบที่ต้องรองรับกรณีข้อมูลธุรกรรมจากธนาคารมาช้า

สรุป Async Verify ทำอะไรได้ และช่วยอะไรกับระบบของธุรกิจ

Async Verify ช่วยให้ระบบส่งงานตรวจสอบสลิปเข้าสู่ Queue ก่อน แล้วรับผลภายหลังผ่าน Webhook โดยไม่ต้องรอผลใน Request เดิม พร้อมรองรับการส่งหลายสลิปสูงสุด 100 รายการต่อ Batch และมี Automatic Retry สำหรับกรณีที่ข้อมูลธุรกรรมยังไม่พร้อม

ประโยชน์คือช่วยให้ระบบจัดการงานตรวจสอบสลิปจำนวนมากได้เป็นระเบียบขึ้น ลดการรอผลทีละรายการ และทำให้สามารถนำผลตรวจไปเชื่อมต่อกับ Workflow ของธุรกิจต่อได้อัตโนมัติ เช่น อัปเดตสถานะออเดอร์ ยืนยันการจอง หรือบันทึกข้อมูลในระบบหลังบ้าน

เริ่มต้นเชื่อมต่อ Async Verify

ดูรายละเอียดและเริ่มต้นเชื่อมต่อ Async Verify ได้ที่ EasySlip Developer Docs

บทความที่เกี่ยวข้อง