PayMeNow

Sandbox

การทำงานของ sandbox ยอดทดสอบ สถานการณ์จำลอง และ endpoint ช่วยทดสอบ

สร้างจาก public-api.md โดยอัตโนมัติเวอร์ชัน 1.2.0ปรับปรุงล่าสุด 2026-09-20

#การทดสอบด้วย Sandbox

#Sandbox ทำงานอย่างไร

Sandbox เกิดจากสองอย่างประกอบกัน คือ บัญชีร้านค้าแบบ sandbox และ โฮสต์ sandbox:

  • เรียกไปที่ https://sandbox-api.<domain>/v1/… (ปัจจุบันคือ https://sandbox-api.paymenow.asia)
  • ใช้ข้อมูลยืนยันตัวตนของ sandbox (pk_demo_… / sk_demo_…)

รายการใน sandbox ถูกเก็บในตารางแยกต่างหาก ไม่เคยถูกส่งถึงผู้ให้บริการชำระเงินจริง และคืน payload ของ QR แบบจำลอง (ไม่มี qr_code_image) ส่วนการเข้าและตัดยอดคงเหลือ ทำงานเหมือนจริง การถอนใน sandbox จึงยังต้องมียอดคงเหลือใน sandbox ด้วย

ติดต่อฝ่ายสนับสนุนเพื่อขอข้อมูลยืนยันตัวตนของ sandbox

#จำนวนเงินสำหรับทดสอบ

ใน sandbox จำนวนเงินบางค่าจะให้ผลลัพธ์ที่กำหนดไว้ตายตัว:

จำนวนเงินผลของการรับเงินผลของการจ่ายเงินออก
100.00completedcompleted
500.00completedcompleted
1000.00completedcompleted
200.00pendingprocessing (ค่าเริ่มต้น)
999.99failedfailed
ค่าอื่น ๆpendingprocessing

ตัวช่วย /sandbox/test-amounts ยังแสดง 888.88 ว่าเป็นตัวกระตุ้น timeout อยู่ แต่ความจริงยังไม่ได้ทำไว้ ค่า 888.88 ทำงานเหมือนจำนวนเงินอื่นทุกประการ ให้ใช้ header X-Sandbox-Scenario: timeout แทน

อย่าลืมว่าขั้นต่ำเด็ดขาด (รับเงิน 50 บาท จ่ายเงินออก 100 บาท) มีผลใน sandbox ด้วย ค่า 100.00 จึงเป็นยอดทดสอบการรับเงินที่น้อยที่สุดที่ใช้ได้จริง

#สถานการณ์ทดสอบ

สั่งผลลัพธ์ที่ต้องการได้ด้วย header X-Sandbox-Scenario ซึ่งมีผลเหนือกว่าการกำหนดด้วยจำนวนเงิน และจะถูกละเว้นสำหรับร้านค้าแบบ production

สถานการณ์การรับเงินการจ่ายเงินออก
auto_approvecompletedcompleted
auto_failfailedfailed
auto_pendingpendingprocessing
timeoutคำขอค้างราว 35 วินาที แล้วได้ 504 TIMEOUTเหมือนกัน
invalid_account(ไม่มีผล)400 INVALID_ACCOUNT

เมื่อรายการรับเงินใน sandbox เข้าสู่ completed หรือ failed ทันทีและคุณส่ง webhook_url มาด้วย ระบบจะยิง webhook เหมือนกับใน production ตัวรับ webhook ของคุณจึงทดสอบได้ครบวงจร

ตัวอย่าง:

bash
curl -X POST https://sandbox-api.paymenow.asia/v1/payments/deposit \
  -H "X-Sandbox-Scenario: auto_approve" \
  -H "X-API-Key: your_sandbox_api_key" \
  -H "X-Signature: ..." \
  -H "X-Timestamp: ..." \
  -H "Content-Type: application/json" \
  -d '{"amount": 500.00, "currency": "THB", "reference_id": "TEST-001", "bank_code": "004", "bank_account_no": "1234567890", "bank_account_name": "Test Payer"}'

#endpoint ตัวช่วยของ sandbox

ให้บริการเฉพาะบนโฮสต์ sandbox และ ไม่ต้องยืนยันตัวตน:

Endpointคืนค่าอะไร
GET /sandbox/testยืนยันว่าโหมด sandbox ทำงานอยู่
GET /sandbox/credentialsตัวอย่างข้อมูลยืนยันตัวตนแบบคงที่ (ไว้ดูเป็นตัวอย่าง ใช้งานจริงไม่ได้)
GET /sandbox/test-amountsตารางจำนวนเงินทดสอบ (ดูข้อควรระวังเรื่อง 888.88 ด้านบน)

จำกัดที่ 300 คำขอต่อนาทีต่อหนึ่ง IP ที่ชั้นเกตเวย์

#Header ใน Response

Headerค่าคำอธิบาย
X-Environmentsandbox หรือ productionฝั่งใดเป็นผู้ตอบคำขอนี้
X-Sandbox-Modetrueเฉพาะร้านค้าแบบ sandbox
X-Request-IDข้อความทึบรหัสสำหรับติดตาม สะท้อนค่า X-Request-ID ที่คุณส่งมา (ถ้ามี)

หน้านี้แปลจากเอกสารต้นฉบับภาษาอังกฤษ ส่วนที่เป็นค่าทางเทคนิค — path, ชื่อฟิลด์, header, รหัสข้อผิดพลาด และชื่อคอลัมน์ในไฟล์ส่งออก — คงไว้เป็นภาษาอังกฤษตามที่ระบบใช้จริง