ร้านแลกเพชร

ใช้งานได้
GET/api/v1/diamond/shop

ดึงข้อมูลรายละเอียดทั้งหมดของร้านค้าเพชร

Headers

ฟิลด์ชนิดจำเป็นคำอธิบาย
Authorizationstringใช่ใช้ — แนบ Bearer <access_token> ของสมาชิก
X-Api-Keystringใช่API key ของ agent (ak_…) จากหน้า bo
X-Timestampstringใช่เวลา sign เป็น unix milliseconds (คลาดเคลื่อนได้ ±300 วินาที)
X-Noncestringใช่ค่าไม่ซ้ำต่อ request (UUIDv4) กัน replay
X-Signaturestringใช่hex(HMAC-SHA256(secret, canonical)) — ดูหน้า Authentication
X-Player-IPstring—IP จริงของผู้เล่น (IPv4/IPv6) — แนะนำให้ส่ง (ใช้ใน login history)
X-Player-UAstring—User-Agent ของผู้เล่น (optional — ลง login history)
X-Request-Idstring—correlation id ของฝั่งคุณ — ระบบ echo กลับใน request_uuid (แนะนำให้ส่ง)
x-langstring—th (default) หรือ en — ภาษาของ message

Response

ฟิลด์ใน data

ฟิลด์ชนิดจำเป็นคำอธิบาย
enabledboolean—ระบบเพชรเปิดใช้อยู่หรือไม่ (สะสมเพชรได้) — ถ้า false ให้ซ่อนเมนูเพชร (ต้องเปิดที่ระดับ agent และบัญชีต้องเป็นกระเป๋าโหมด TRANSFER)
shop_enabledboolean—ร้านเปิดให้แลกหรือไม่ — enabled = true แต่ shop_enabled = false หมายถึงยังสะสมเพชรได้แต่ปิดการแลกชั่วคราว (โชว์ catalog พร้อมปุ่มแลกแบบ disabled)
diamond_balancenumber—ยอดเพชรคงเหลือของสมาชิก (จำนวนเต็ม)
itemsobject[]—รายการสินค้าที่แลกได้ เรียงตาม sort_order — คืนเสมอแม้ร้านปิด (shop_enabled = false) เพื่อโชว์ catalog
└ idstring—id ของสินค้า — ส่งเป็น item_id ตอนแลก (UUID)
└ cost_diamondsnumber—ราคาเป็นจำนวนเพชร (จำนวนเต็ม)
└ credit_amountstring—เครดิตที่จะได้เข้ากระเป๋าเมื่อแลก (THB, string)
└ labelstring | null—ชื่อ/ป้ายสินค้า (อาจเป็น null)
ตัวอย่าง response
{
  "success": true,
  "code": 0,
  "message": "Diamond shop fetched successfully",
  "data": {
    "enabled": true,
    "shop_enabled": true,
    "diamond_balance": 320,
    "items": [
      { "id": "3f1c9a2e-7b41-4d6c-9a8e-2f5b1c0d7e10", "cost_diamonds": 100, "credit_amount": "50", "label": "แลกเครดิต 50 บาท" },
      { "id": "8b2d4f60-1c93-4a57-b0e2-6d3a9f1c8e42", "cost_diamonds": 200, "credit_amount": "120", "label": "แลกเครดิต 120 บาท" },
      { "id": "a1e7c5d3-9f24-4b18-8c60-3e2d7a4f9b51", "cost_diamonds": 500, "credit_amount": "350", "label": "แลกเครดิต 350 บาท" }
    ]
  },
  "request_uuid": "3b7e0d9c-4f61-4a28-b5e3-8d2c6f1a9e07"
}

Error codes ที่พบได้

codeชื่อHTTPข้อความ
6221DIAMOND_NOT_ENABLED400โปรแกรมเพชรยังไม่เปิดใช้งานหรือไม่มีสิทธิ์ปัจจุบันบัญชีที่ระบบเพชรปิดอยู่จะตอบสำเร็จพร้อม enabled = false และ items ว่างแทน — รองรับโค้ดนี้ไว้ด้วยเช่นเดียวกับตอน redeem
1001UNAUTHORIZED401ไม่ได้รับอนุญาต
1007TOKEN_INVALID401โทเค็นไม่ถูกต้อง