BetNSettle - 下注並結算
執行下注和結算操作,這是遊戲的核心 API。
請求參數
解密前 Request
{
"cipherText": "G0ZMDELeJwx+7JcIfIFOLJjkSzANPu6krGM2uw==..."
}
資訊
加密說明請參考 平台端 API 實作說明
解密後 Request
{
"action": "betNSettle",
"uid": "testaccount01",
"roundId": "testroundId001",
"transferId": "testroundId001",
"betId": "7634846433511800000",
"brand": "VP",
"currency": "THB",
"gameCode": "VP_230001_1",
"betTime": "2025-11-17T16:01:13.155Z",
"txTime": "2025-11-17T16:01:13.155Z",
"gameInfo": "{\"featureBuy\":0,\"spinID\":[\"7634278403511200000\",\"7634278403512200000\",\"7634278403513700000\"],\"cardType\":1,\"isFeatureGame\":\"\",\"deviceType\":0}",
"actualBetAmt": 0,
"validBetAmt": 0,
"winAmt": 1.3,
"jackpotWin": 0,
"jackpotContribute": 0,
"betSourceId": 1
}
| 參數 | 類型 | 必填 | 說明 |
|---|---|---|---|
| action | string | 是 | 固定為 "betNSettle" |
| uid | string | 是 | 玩家帳號 |
| roundId | string | 是 | 遊戲局號 |
| transferId | string | 是 | 交易唯一識別碼(預計移除) |
| betId | string | 是 | 投注ID,為VP唯一值 |
| brand | string | 是 | 品牌代碼,固定為VP |
| currency | string | 是 | 幣別代碼 |
| gameCode | string | 是 | 遊戲代碼 |
| betTime | string | 是 | 下注時間 |
| txTime | string | 是 | 結算時間 |
| gameInfo | string | 是 | 遊戲相關資訊的 JSON 字串 |
| actualBetAmt | number | 是 | 實際下注金額 |
| validBetAmt | number | 是 | 有效投注金額 |
| winAmt | number | 是 | 贏得金額,可為 0 或正數 |
| jackpotWin | number | 是 | 彩池贏得金額,預設為 0 |
| jackpotContribute | number | 是 | 彩池貢獻金額,預設為 0 |
| betSourceId | number | 是 | 交易來源代碼 |
回應格式
資訊
回應為明文 JSON,不需加密。
成功回應
{
"status": "0000",
"errText": "",
"balance": 12345.67,
"responseTime": "2024-12-11T01:23:38.271Z"
}
| 欄位 | 類型 | 說明 |
|---|---|---|
| status | string | 狀態碼,見下方狀態碼說明 |
| errText | string | 錯誤訊息,成功時為空字串 |
| balance | number | 交易後的玩家餘額 |
| responseTime | string | 回應時間 |
響應狀態與交易結果
| 狀態 | 判斷下注狀態 | 是否觸發重試 | 注單狀態 |
|---|---|---|---|
| 0000 | 成功 | 不會 | 成立 |
| 9999 | 失敗 | 會 | 註銷 |
| 1006 | 失敗 | 不會 | 註銷 |
| 2001 | 成功 | 不會 | 成立 |
| 2002 | 失敗 | 不會 | 註銷 |
| 超時 | 失敗 | 會 | 註銷 |
注意事項
- 原子性操作: BetNSettle 是原子性操作,僅會 全部成功 或是 全部失敗
- 餘額計算: afterBalance = beforeBalance - actualBetAmt + winAmt
- transferId 唯一性: 每局遊戲的 transferId 為唯一
- 重試策略: 未收到成功則會持續重試
- 重試頻率: 重試 5 次,每次重試之間都會使用退比指數值政策重試,(1s, 3s, 5s, 7s, 9s)
- 若上述重試皆失敗且非道具交易,則進入 rollback 階段
- 參數調整:transferId 將移除並由 betId 取代
- Jackpot參數: 目前無 jackpot 功能,相關參數皆為保留欄位,當前預設皆為 0