ภาพรวมกงล้อนำโชค

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

สถานะกงล้อของสมาชิก — เปิดใช้หรือไม่ สิทธิ์หมุนคงเหลือ ช่องรางวัลทั้งหมด และผลหมุนล่าสุด เรียกครั้งเดียววาดหน้ากงล้อได้ครบ

กงล้อต้องเปิดใช้ที่ระดับ agent — บัญชี/ไซต์ที่ไม่เข้าเงื่อนไขจะได้ enabled = false, spins_available = 0 และ segments/recent เป็น array ว่าง (กรณีนี้ฟิลด์รูปและ config อาจไม่ถูกส่งมา)

สิทธิ์หมุนได้จากยอดฝากสะสม: ทุก ๆ deposit_per_spin_thb ที่ฝากสำเร็จ = 1 สิทธิ์

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 และบัญชีต้องเข้าเงื่อนไข)
wheel_image_urlstring | null—รูปหน้าปัดกงล้อของ agent (URL พร้อมแสดงผล)
pointer_image_urlstring | null—รูปเข็มชี้ของกงล้อ
spins_availablenumber—สิทธิ์หมุนคงเหลือของสมาชิก
deposit_per_spin_thbstring—ยอดฝากสะสมที่แลกได้ 1 สิทธิ์หมุน (THB) — ใช้แสดงเงื่อนไขรับสิทธิ์
wager_multiplierstring—ตัวคูณเทิร์นของรางวัลที่ได้ (เทิร์น = รางวัล × ตัวคูณ)
segmentsobject[]—ช่องรางวัลเรียงตาม slot_index — ระบบไม่เปิดเผยความน่าจะเป็นของแต่ละช่อง
└ slot_indexnumber—ตำแหน่งช่องบนกงล้อ (เริ่ม 0 ตามเข็มนาฬิกา)
└ labelstring—ข้อความบนช่อง เช่น "20 บาท"
└ prize_amount_thbstring—มูลค่ารางวัลของช่อง (THB, string) — "0" = ช่องไม่มีรางวัล
recentobject[]—ผลหมุนล่าสุดของสมาชิก (สูงสุด 10 รายการ ล่าสุดก่อน)
└ slot_indexnumber—ช่องที่ออก
└ labelstring—ข้อความช่องที่ออก ณ ตอนนั้น (snapshot)
└ prize_amount_thbstring—รางวัลที่ได้ (THB, string)
└ spun_atstring (ISO 8601)—เวลาหมุน
ตัวอย่าง response
{
  "success": true,
  "code": 0,
  "message": "Wheel fetched successfully",
  "data": {
    "enabled": true,
    "wheel_image_url": "https://cdn.bestsystem.example/wheel/luckybet888-wheel.png",
    "pointer_image_url": "https://cdn.bestsystem.example/wheel/luckybet888-pointer.png",
    "spins_available": 2,
    "deposit_per_spin_thb": "500",
    "wager_multiplier": "1",
    "segments": [
      { "slot_index": 0, "label": "5 บาท", "prize_amount_thb": "5" },
      { "slot_index": 1, "label": "เสียใจด้วย", "prize_amount_thb": "0" },
      { "slot_index": 2, "label": "10 บาท", "prize_amount_thb": "10" },
      { "slot_index": 3, "label": "20 บาท", "prize_amount_thb": "20" },
      { "slot_index": 4, "label": "เสียใจด้วย", "prize_amount_thb": "0" },
      { "slot_index": 5, "label": "50 บาท", "prize_amount_thb": "50" },
      { "slot_index": 6, "label": "100 บาท", "prize_amount_thb": "100" },
      { "slot_index": 7, "label": "500 บาท", "prize_amount_thb": "500" }
    ],
    "recent": [
      { "slot_index": 2, "label": "10 บาท", "prize_amount_thb": "10", "spun_at": "2026-07-04T13:22:10.000Z" }
    ]
  },
  "request_uuid": "3b7e0d9c-4f61-4a28-b5e3-8d2c6f1a9e07"
}

Error codes ที่พบได้

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