Tạo Lượt Chơi Mini Game

API để tạo lượt chơi mới cho người dùng. Sau khi người dùng xem mini game và muốn chơi, gọi API này để lưu lượt chơi vào hệ thống. API sẽ kiểm tra số lượt chơi còn lại trong ngày, điều kiện khách mới/chưa mua, và tự động tạo lượt chơi mới hoặc trả về lượt chơi chưa sử dụng nếu đã có.
POST https://api.socdo.vn/mini-app/v1/play-mini-game
Headers Bắt buộc
  • Authorization: Bearer <user_token> - Bắt buộc - Token xác thực user
Body/Query Bắt buộc
  • mini_game_id: ID của mini game (số nguyên)
Ví dụ cURL
curl -X POST \
  "https://api.socdo.vn/mini-app/v1/play-mini-game" \
  -H "Authorization: Bearer YOUR_USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mini_game_id": 2}'
Response thành công (200)
{
    "success": true,
    "message": "Tạo lượt chơi thành công",
    "data": {
        "play_id": 123,
        "user_id": 36851,
        "mini_game_id": 2,
        "extra_play": false,
        "used": false,
        "play_date": "2025-11-15",
        "created_at": "2025-11-15 14:30:00",
        "remaining_plays": 0
    }
}
Response khi đã có lượt chơi chưa dùng (200)
{
    "success": true,
    "message": "Lượt chơi đã tồn tại (chưa sử dụng)",
    "data": {
        "play_id": 120,
        "user_id": 36851,
        "mini_game_id": 2,
        "extra_play": false,
        "used": false,
        "play_date": "2025-11-15",
        "created_at": "2025-11-15 10:00:00"
    }
}
Giải thích Response
Trường Loại Mô tả
play_id number ID của lượt chơi (dùng để quay thưởng sau)
user_id number ID của người dùng
mini_game_id number ID của mini game
extra_play boolean Lượt cộng thêm (true nếu là khách mới/chưa mua)
used boolean Đã sử dụng lượt này chưa (false = chưa dùng, true = đã dùng)
play_date string Ngày chơi (YYYY-MM-DD)
remaining_plays number Số lượt chơi còn lại trong ngày (chỉ có khi tạo mới)
Mã lỗi phổ biến
400 {"success": false, "message": "Thiếu mini_game_id hoặc giá trị không hợp lệ"}
400 {"success": false, "message": "Bạn đã hết lượt chơi trong ngày", "total_used": 1, "max_plays_per_day": 1, "remaining": 0}
400 {"success": false, "message": "Mini game chưa đến thời gian bắt đầu"}
400 {"success": false, "message": "Mini game đã hết thời gian"}
401 {"success": false, "message": "Thiếu user token. Cần Authorization header với Bearer token"}
401 {"success": false, "message": "User token không hợp lệ hoặc đã hết hạn"}
404 {"success": false, "message": "Không tìm thấy mini game hoặc mini game không hoạt động"}
500 {"success": false, "message": "Lỗi xử lý play-mini-game"}
Lưu ý
  • User Token: Bắt buộc phải có để xác định người dùng
  • Lượt chơi chưa dùng: Nếu user đã có lượt chơi chưa dùng (used = 0) trong ngày, API sẽ trả về lượt đó thay vì tạo mới
  • Giới hạn lượt chơi: API kiểm tra số lượt đã dùng (used = 1) trong ngày, không tính lượt chưa dùng
  • Lượt cộng thêm: Nếu user là khách mới (chưa có đơn hàng) và mini game cho phép khách mới, sẽ tạo lượt extra_play = 1
  • Thời gian: API kiểm tra mini game có trong thời gian hiệu lực không
  • play_id: Lưu lại play_id để sử dụng khi quay thưởng (update used = 1 và tạo log trong mini_game_log)
API Liên Quan