PayMeNow

เริ่มต้นใช้งาน

สภาพแวดล้อม โฮสต์ที่ต้องเรียก และหลักการพื้นฐานเรื่องจำนวนเงิน เวลา และสกุลเงิน

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

#Environment

ชื่อแบรนด์และโดเมนกำหนดผ่านตัวแปรสภาพแวดล้อม (BRAND_DOMAIN ดู docs/rebranding.md) เอกสารนี้จึงเขียนโฮสต์เป็นตัวแทน <domain> ไว้ สำหรับแบรนด์ที่ให้บริการอยู่ตอนนี้ <domain> คือ paymenow.asia

EnvironmentBase URLค่าที่ใช้จริงข้อมูล
Productionhttps://api.<domain>/v1https://api.paymenow.asiaรายการจริง รับ-จ่ายเงินจริง
Sandboxhttps://sandbox-api.<domain>/v1https://sandbox-api.paymenow.asiaรายการจำลอง ไม่มีเงินจริง

การเลือก sandbox ใช้ชื่อโฮสต์เท่านั้น ไม่ใช่ path และไม่ใช่ header เกตเวย์ปลายทาง จะส่งทุกโฮสต์ที่ขึ้นต้นด้วย sandbox ไปยังอินสแตนซ์ sandbox ของ API (ตรวจด้วย regex ^sandbox[a-z0-9-]*\.) ส่วนโฮสต์อื่นทั้งหมดไปที่ production และระบบจะไม่เขียน path ใหม่เลย เพราะลายเซ็น HMAC ครอบคลุม path ด้วย

API key ของคุณต้องตรงกับ environment ที่เรียกใช้ หากนำคีย์ของร้านค้า sandbox ไปเรียกบนโฮสต์ production จะยืนยันตัวตนผ่าน แต่ทำงานบนเส้นทางของ production ส่วนคีย์ production บนโฮสต์ sandbox ก็จะทำงานบนอินสแตนซ์ sandbox ให้จับคู่คีย์ pk_demo_… กับ sandbox-api.<domain> และคีย์ pk_prod_… กับ api.<domain> เสมอ

#ภาพรวม (Overview)

Public API ให้ร้านค้าเชื่อมต่อความสามารถด้านการรับ-จ่ายเงินเข้ากับระบบของตัวเองได้ ทุกคำขอต้องยืนยันตัวตนด้วย HMAC-SHA256

#Production กับ Sandbox

ประเภทของร้านค้า (ตั้งไว้ที่บัญชีร้านค้าของคุณ) เป็นตัวกำหนดเส้นทางของรายการ:

  • ร้านค้าแบบ Production: เป็นรายการเงินจริง ประมวลผลผ่านผู้ให้บริการชำระเงิน และข้อมูลถูกบันทึกในตารางรายการของ production
  • ร้านค้าแบบ Sandbox: เป็นรายการจำลอง ระบบสร้าง response ขึ้นเองโดยไม่เรียกผู้ให้บริการใด และข้อมูลถูกบันทึกในตาราง sandbox แยกต่างหาก ส่วน QR ที่ได้กลับมาเป็นของจำลอง ไม่ใช่ PromptPay ที่สแกนได้จริง

ทุก response จะมี header X-Environment (sandbox หรือ production) กำกับ คุณจึงตรวจสอบได้ว่ากำลังคุยกับฝั่งไหน และ response ของ sandbox จะมี X-Sandbox-Mode: true เพิ่มมาด้วย

#จำนวนเงิน เวลา และสกุลเงิน

  • จำนวนเงินทั้งหมดเป็น THB ฟิลด์ currency ถูกตรวจแค่ความยาวและเก็บตามที่ส่งมา ระบบไม่มีการแปลงสกุลเงินและไม่ประมวลผลสกุลเงินอื่น
  • จำนวนเงินเป็นตัวเลขใน JSON ทศนิยม 2 ตำแหน่ง ส่วนค่าธรรมเนียมใช้การตัดทศนิยมทิ้ง (ไม่ใช่ปัดเศษ) ที่ 2 ตำแหน่ง
  • timestamp ใน response เป็น RFC 3339 ตามเวลา Asia/Bangkok (+07:00) เช่น 2026-09-20T17:32:05+07:00 ค่านี้เป็นเวลาแบบ ISO-8601 ตามมาตรฐาน ตัวแปลงวันที่ทั่วไปอ่านได้เหมือนเดิม ต่างจากรูปแบบ Z ที่ใช้ก่อนวันที่ 20 ก.ย. 2026 เฉพาะส่วน offset เท่านั้น วันทำการยึดตามเวลา Asia/Bangkok ดังนั้นส่วนวันที่ของ timestamp คือวันทำการไทยแล้ว

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