Skip to content

單一錢包 API

  1. 告知使用單一錢包
  2. 提供給我方一個 callback 用網址

請求時機: 於前台網頁中嘗試顯示或更新餘額時

我方 request 格式

欄位類型說明
cmd“GetBalance”命令標示符
uidstring(255)用戶 ID
timedatetime時間, 格式 ISO 8601
signstring(255)請求簽名 請參考驗證 callback 簽名段落

範例

Terminal window
{
"cmd": "GetBalance",
"uid": "user001",
"time": "2024-01-01T00:00:00",
"sign": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOjk5OTk5OTk5OTksImppdCI6ImQ3MzY3YTE0LTkzZWUtNGQwYy1iODM1LTQ4YjJhMGIzYTI2OSJ9.YD5anPh4cOmqu1JusRB9cFJYJR-7th3crkBsttI5kTs"
}

期望 response 格式

欄位類型說明
errorMsgstring(255) | null失敗原因, 如果為 null 則為成功
balancedecimal(10,2)用戶餘額, 失敗時可不填
  • 接受(成功)範例
Terminal window
{
"errorMsg": null,
"balance": 10000
}
  • 拒絕(失敗)範例
Terminal window
{
"errorMsg": "用戶不存在 / 用戶已停用"
}

請求時機: 機台上分/下分或其他異動時發出

我方 request 格式

欄位類型說明
cmd”TradingPoints”命令標示符
orderIdstring(64)訂單 ID
uiddatetime用戶 ID
gametypeIdstring(255)遊戲類型 ID
gameRoundSerialNumberstring(255)遊戲局號
machineIdint32機台 ID
amountdecimal(10,2)請求異動金額
reasonstring(255)請求事由
timedatetime時間, 格式 ISO 8601
signstring(255)請求簽名 請參考
  • 加點範例
Terminal window
{
"cmd": "TradingPoints",
"orderId": "2a7fb6fe-37f2-47af-a79a-139de2eeaa93",
"uid": "user001",
"gametypeId": 1,
"gameRoundSerialNumber": "20250101000000_m1",
"machineId": 1,
"amount": 100,
"reason": "機台下分"
"time": "2024-01-01T00:00:00",
"sign": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOjk5OTk5OTk5OTksImppdCI6ImQ3MzY3YTE0LTkzZWUtNGQwYy1iODM1LTQ4YjJhMGIzYTI2OSJ9.YD5anPh4cOmqu1JusRB9cFJYJR-7th3crkBsttI5kTs"
}
  • 扣點範例
Terminal window
{
"cmd": "TradingPoints",
"orderId": "cd36d0f2-632c-47a5-a9e9-9bdd9761d8f0",
"uid": "user001",
"gametypeId": 1,
"gameRoundSerialNumber": "20250101000000_m1",
"machineId": 1,
"amount": -100,
"reason": "機台上分"
"time": "2024-01-01T00:00:00",
"sign": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOjk5OTk5OTk5OTksImppdCI6ImQ3MzY3YTE0LTkzZWUtNGQwYy1iODM1LTQ4YjJhMGIzYTI2OSJ9.YD5anPh4cOmqu1JusRB9cFJYJR-7th3crkBsttI5kTs"
}

期望 response 格式

欄位類型說明
errorMsgstring(255) | null失敗原因, 如果為 null 則為成功
  • 接受(成功)範例
Terminal window
{
"errorMsg": null
}
  • 拒絕(失敗)範例
Terminal window
{
"errorMsg": "餘額不足"
}

請求時機: 每次交易後,我方會發出請求以確認交易是否成功

我方 request 格式

欄位類型說明
cmd"CheckOrderId"命令標示符
orderIdstring(64)訂單 ID
範例
{
"cmd": "CheckOrderId",
"orderId": "2a7fb6fe-37f2-47af-a79a-139de2eeaa93",
"time": "2024-01-01T00:00:00",
"sign": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOjk5OTk5OTk5OTksImppdCI6ImQ3MzY3YTE0LTkzZWUtNGQwYy1iODM1LTQ4YjJhMGIzYTI2OSJ9.YD5anPh4cOmqu1JusRB9cFJYJR-7th3crkBsttI5kTs",
}

我方每個事件僅傳送一次請求

  • 扣點失敗的情況

由於扣點失敗, 相當於餘額不足以進行操作, 玩家操作結果為失敗, 不須額外處理

  • 加點失敗的情況

金額會先由我方扣除並保留於紀錄中, 處理步驟

  1. 使用查詢轉點回滾 (/users/trade_points_rollback)搜尋這些加扣點回滾
  2. 使用/accept_trade_points 標記完成這些加扣點請求

簽名使用 JWT (HS256),將完成的 jwt token 以 sign 作為屬性名加入請求中

未來可以在後台自行變更, 目前可以自行提供, 默認我方生成後提供

claims說明
exp過期時間 (5 分鐘)
jitWT ID, 用於防止重放攻擊, 在有效時間範圍內不重複(5 分鐘)
  • 範例

密鑰: LeDubJdPoMme7lUogt7kBkQ5XfrF0C3lISOKjq1bJ0p1kAyysytAH5VxzatIY1oD

{
"cmd": "GetBalance",
"uid": "user001",
"time": "2024-01-01T00:00:00",
"sign": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOjk5OTk5OTk5OTksImppdCI6ImQ3MzY3YTE0LTkzZWUtNGQwYy1iODM1LTQ4YjJhMGIzYTI2OSJ9.YD5anPh4cOmqu1JusRB9cFJYJR-7th3crkBsttI5kTs" // [!code focus]
}

以上步驟完成後可使用 Debugger 來進行快速簡易測試

說明:查詢用戶的交易轉點紀錄

請求參數

參數類型說明預設值限制條件
order_idstring篩選訂單編號--
uidstring篩選用戶 ID--
points_gtenumber篩選點數大於等於--
points_ltenumber篩選點數小於等於--
created_startstring($date-time)篩選起始時間--
created_endstring($date-time)篩選結束時間--
sort_bystring排序依據id可用值:id
sort_dirstring排序方向desc可用值:asc, desc
next_idinteger從此 ID 開始搜尋-最小值:1
sizeinteger每頁筆數10最小值:1,最大值:1000
pageinteger頁數1最小值:1
countboolean是否計算總筆數false-

200: 成功回應

{
"hasNext": true,
"total": 0,
"items": [
{
"id": 1,
"order_id": "string",
"machine_id": 0,
"game_round": "string",
"uid": "string",
"points": 0,
"reason": "string",
"comment": "string",
"created_at": "2025-02-14T05:45:42.166Z"
}
]
}

4XX: 錯誤回應,更多資訊請參考 錯誤代號參考

{
"code": 0,
"msg": "string",
"msg_zh": "string",
"detail": "string"
}

說明:查詢交易回滾紀錄

請求參數

無需傳入參數。

200: 成功回應

{
"hasNext": true,
"total": 0,
"items": [
{
"id": 1,
"order_id": "string",
"machine_id": 1,
"game_round": "string",
"uid": "string",
"points": 0,
"reason": "string",
"comment": "string",
"created_at": "2025-02-14T05:47:10.714Z"
}
]
}

4XX: 錯誤回應,更多資訊請參考 錯誤代號參考

{
"code": 0,
"msg": "string",
"msg_zh": "string",
"detail": "string"
}

POST /api/v2/single_wallet/accept_rollback

Section titled “POST /api/v2/single_wallet/accept_rollback”

說明:接受轉點回滾

請求參數

無需傳入參數。

請求主體

{
"order_ids": ["string"]
}

200: 成功回應

{
"success_count": 0
}

4XX: 錯誤回應,更多資訊請參考 錯誤代號參考

{
"code": 0,
"msg": "string",
"msg_zh": "string",
"detail": "string"
}

我方的 單一錢包 需與 轉帳錢包 API 配合使用,涉及的 API 包括:

  • POST /api/v2/users 建立用戶
  • POST /api/v2/users/generate_access_url 生成訪問網址

Arcade 記錄部分 可根據需求決定是否接入。