ภาพรวมเปิดการ์ดรายวัน
ใช้งานได้GET
/api/v1/cardดึงข้อมูลรายละเอียดทั้งหมดของเปิดการ์ดรายวันของสมาชิก
การ์ดปลดล็อกด้วยยอดฝากของวัน (อ่านสด ๆ ตอนเรียก): ต้องมีฝากสำเร็จ ≥ 1 ครั้ง และยอดรวมวันนี้ ≥ unlock_deposit_thb จึงจะ eligible = true
prize_amount_thb ใช้กับโหมด CREDIT ส่วน prize_diamond ใช้กับโหมด DIAMOND — อีกฟิลด์จะเป็น "0" เสมอตามโหมดที่ตั้งค่าไว้
Headers
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| Authorization | string | ใช่ | ใช้ — แนบ Bearer <access_token> ของสมาชิก |
| X-Api-Key | string | ใช่ | API key ของ agent (ak_…) จากหน้า bo |
| X-Timestamp | string | ใช่ | เวลา sign เป็น unix milliseconds (คลาดเคลื่อนได้ ±300 วินาที) |
| X-Nonce | string | ใช่ | ค่าไม่ซ้ำต่อ request (UUIDv4) กัน replay |
| X-Signature | string | ใช่ | hex(HMAC-SHA256(secret, canonical)) — ดูหน้า Authentication |
| X-Player-IP | string | — | IP จริงของผู้เล่น (IPv4/IPv6) — แนะนำให้ส่ง (ใช้ใน login history) |
| X-Player-UA | string | — | User-Agent ของผู้เล่น (optional — ลง login history) |
| X-Request-Id | string | — | correlation id ของฝั่งคุณ — ระบบ echo กลับใน request_uuid (แนะนำให้ส่ง) |
| x-lang | string | — | th (default) หรือ en — ภาษาของ message |
Response
ฟิลด์ใน data
| ฟิลด์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| enabled | boolean | — | การ์ดเปิดใช้ที่ระดับ agent หรือไม่ — ถ้า false ให้ซ่อนเมนู (โหมดเพชรจะเปิดได้ต่อเมื่อโปรแกรมเพชรของ agent เปิดอยู่ด้วย) |
| reward_mode | string | — | โหมดรางวัลของ agent: CREDIT = จ่ายเครดิตเข้ากระเป๋า · DIAMOND = จ่ายเพชร (เลือกโหมดเดียวต่อ agent)CREDIT | DIAMOND |
| unlock_deposit_thb | string | — | ยอดฝากสำเร็จรวมของวันนี้ที่ต้องถึงเพื่อปลดล็อกการเปิดการ์ด (THB, string; "0" = แค่ฝากสำเร็จ ≥ 1 ครั้งก็ปลดล็อก) |
| deposited_today_thb | string | — | ยอดฝากสำเร็จรวมของสมาชิกวันนี้ (THB, string) — ใช้โชว์ความคืบหน้าเทียบ unlock_deposit_thb |
| deposit_count_today | number | — | จำนวนครั้งฝากสำเร็จของวันนี้ |
| eligible | boolean | — | ปลดล็อกแล้วหรือยัง (เปิดใช้ + ฝากสำเร็จ ≥ 1 ครั้ง + ยอดรวม ≥ unlock_deposit_thb) — ปุ่มเปิดควรเช็ค eligible && !already_played_today อีกชั้น |
| already_played_today | boolean | — | วันนี้เปิดการ์ดไปแล้วหรือยัง (เปิดได้ 1 ครั้ง/วัน) |
| card_back_image_url | string | null | — | รูปหลังการ์ด (URL พร้อมแสดงผล; null = ใช้รูป default) |
| background_image_url | string | null | — | รูปพื้นหลังหน้าเกม (URL พร้อมแสดงผล; null = default) |
| slots | object[] | — | ไพ่ทั้งหมด (6 ใบ) เรียงตาม slot_index — ระบบไม่เปิดเผยความน่าจะเป็นของแต่ละใบ |
| └ slot_index | number | — | ตำแหน่งใบ (0-5) |
| └ label | string | — | ข้อความบนใบ เช่น "20 บาท" |
| └ prize_amount_thb | string | — | รางวัลเครดิตของใบ (THB, string) — ใช้เมื่อ reward_mode = CREDIT, "0" = ใบไม่มีรางวัล |
| └ prize_diamond | number | — | รางวัลเพชรของใบ (จำนวนเต็ม) — ใช้เมื่อ reward_mode = DIAMOND, 0 = ใบไม่มีรางวัล |
| today_result | object | null | — | ผลการเปิดของวันนี้ — null เมื่อยังไม่เปิดวันนี้ (ใช้โชว์ใบที่เปิดไปแล้วเมื่อ already_played_today = true) |
| └ slot_index | number | — | ใบที่เปิดได้ |
| └ label | string | — | ข้อความใบที่เปิดได้ ณ ตอนนั้น (snapshot) |
| └ prize_amount_thb | string | — | รางวัลเครดิตที่ได้ (THB, string) — "0" เมื่อโหมดเพชรหรือไม่ถูก |
| └ prize_diamond | number | — | รางวัลเพชรที่ได้ — 0 เมื่อโหมดเครดิตหรือไม่ถูก |
| └ played_at | string (ISO 8601) | — | เวลาที่เปิด |
ตัวอย่าง response
{
"success": true,
"code": 0,
"message": "Card fetched successfully",
"data": {
"enabled": true,
"reward_mode": "CREDIT",
"unlock_deposit_thb": "300",
"deposited_today_thb": "500",
"deposit_count_today": 2,
"eligible": true,
"already_played_today": false,
"card_back_image_url": "https://cdn.bestsystem.example/card/luckybet888-back.png",
"background_image_url": "https://cdn.bestsystem.example/card/luckybet888-bg.png",
"slots": [
{ "slot_index": 0, "label": "5 บาท", "prize_amount_thb": "5", "prize_diamond": 0 },
{ "slot_index": 1, "label": "เสียใจด้วย", "prize_amount_thb": "0", "prize_diamond": 0 },
{ "slot_index": 2, "label": "20 บาท", "prize_amount_thb": "20", "prize_diamond": 0 },
{ "slot_index": 3, "label": "เสียใจด้วย", "prize_amount_thb": "0", "prize_diamond": 0 },
{ "slot_index": 4, "label": "50 บาท", "prize_amount_thb": "50", "prize_diamond": 0 },
{ "slot_index": 5, "label": "100 บาท", "prize_amount_thb": "100", "prize_diamond": 0 }
],
"today_result": null
},
"request_uuid": "3b7e0d9c-4f61-4a28-b5e3-8d2c6f1a9e07"
}Error codes ที่พบได้
| code | ชื่อ | HTTP | ข้อความ |
|---|---|---|---|
| 6231 | DAILY_CARD_NOT_ENABLED | 400 | เกมการ์ดรายวันยังไม่เปิดใช้งานปัจจุบันการ์ดที่ปิดอยู่จะตอบสำเร็จพร้อม enabled = false และรายการว่างแทน — รองรับโค้ดนี้ไว้ด้วยเช่นเดียวกับตอน flip |
| 1001 | UNAUTHORIZED | 401 | ไม่ได้รับอนุญาต |
| 1007 | TOKEN_INVALID | 401 | โทเค็นไม่ถูกต้อง |