Skip to content
On this page

Authentication

ทุก endpoint ใน Dealer API ต้องผ่านการ authenticate ด้วย 2 headers พร้อมกัน

Required Headers

Headerประเภทคำอธิบาย
x-partner-idstringPartner ID ที่ได้รับจากทาง P2W Topup
x-signaturestringHMAC-SHA256 signature (hex)

การสร้าง HMAC Signature

Algorithm

secretKey จะได้รับจากทาง P2W Topup

HMAC-SHA256(secretKey, payload)

Payload String

{METHOD}|{PATH}|{RAW_BODY}
ส่วนคำอธิบายตัวอย่าง
{METHOD}HTTP method ตัวพิมพ์ใหญ่GET, POST
{PATH}PATH ของ API ที่เรียกใช้งาน/api/v1/orders
{RAW_BODY}Raw request body (string) สำหรับ GET ใช้ {}{"packageID":"abc"}

ตัวอย่าง (Node.js)

javascript
const crypto = require('crypto');

// --- GET Request ---
const method = 'GET';
const path = '/api/v1/games';
const body = '{}'; // GET ใช้ {} เสมอ
const secretKey = 'your_secret_key';

const payload = `${method}|${path}|${body}`;
const signature = crypto
    .createHmac('sha256', secretKey)
    .update(payload)
    .digest('hex');

// ใช้ signature นี้ใน header x-signature
javascript
const crypto = require('crypto');

// --- POST Request ---
const method = 'POST';
const path = '/api/v1/orders';
const body = JSON.stringify({ packageID: 'PKG001', refID: 'REF123', topupInfo: { uid: '123456' } });
const secretKey = 'your_secret_key';

const payload = `${method}|${path}|${body}`;
const signature = crypto
    .createHmac('sha256', secretKey)
    .update(payload)
    .digest('hex');

// ใช้ signature นี้ใน header x-signature

ตัวอย่าง Request

http
GET /api/v1/games HTTP/1.1
Host: your-host.com
x-partner-id: ABCD1234EF567890
x-signature: a3f8c2d1e4b7a9f0...
http
POST /api/v1/orders HTTP/1.1
Host: your-host.com
Content-Type: application/json
x-partner-id: ABCD1234EF567890
x-signature: d9e1f3a2b4c8071e...

{
  "packageID": "PKG001",
  "refID": "REF123",
  "topupInfo": { "uid": "123456" }
}

Error Responses

CodeHTTPคำอธิบาย
MISSING_PARTNER_ID401ไม่มี header x-partner-id
VENDOR_NOT_FOUND401ไม่พบ Partner ID ในระบบ
VENDOR_INACTIVE403Vendor ถูก deactivate
IP_NOT_WHITELISTED403IP ไม่ได้อยู่ใน whitelist
MISSING_SIGNATURE401ไม่มี header x-signature
INVALID_SIGNATURE401Signature ไม่ถูกต้อง