跳至主要内容

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
}
參數類型必填說明
actionstring固定為 "betNSettle"
uidstring玩家帳號
roundIdstring遊戲局號
transferIdstring交易唯一識別碼(預計移除)
betIdstring投注ID,為VP唯一值
brandstring品牌代碼,固定為VP
currencystring幣別代碼
gameCodestring遊戲代碼
betTimestring下注時間
txTimestring結算時間
gameInfostring遊戲相關資訊的 JSON 字串
actualBetAmtnumber實際下注金額
validBetAmtnumber有效投注金額
winAmtnumber贏得金額,可為 0 或正數
jackpotWinnumber彩池贏得金額,預設為 0
jackpotContributenumber彩池貢獻金額,預設為 0
betSourceIdnumber交易來源代碼

回應格式

資訊

回應為明文 JSON,不需加密。

成功回應

{
"status": "0000",
"errText": "",
"balance": 12345.67,
"responseTime": "2024-12-11T01:23:38.271Z"
}
欄位類型說明
statusstring狀態碼,見下方狀態碼說明
errTextstring錯誤訊息,成功時為空字串
balancenumber交易後的玩家餘額
responseTimestring回應時間

響應狀態與交易結果

狀態判斷下注狀態是否觸發重試注單狀態
0000成功不會成立
9999失敗註銷
1006失敗不會註銷
2001成功不會成立
2002失敗不會註銷
超時失敗註銷

注意事項

  1. 原子性操作: BetNSettle 是原子性操作,僅會 全部成功 或是 全部失敗
  2. 餘額計算: afterBalance = beforeBalance - actualBetAmt + winAmt
  3. transferId 唯一性: 每局遊戲的 transferId 為唯一
  4. 重試策略: 未收到成功則會持續重試
    • 重試頻率: 重試 5 次,每次重試之間都會使用退比指數值政策重試,(1s, 3s, 5s, 7s, 9s)
    • 若上述重試皆失敗且非道具交易,則進入 rollback 階段
  5. 參數調整:transferId 將移除並由 betId 取代
  6. Jackpot參數: 目前無 jackpot 功能,相關參數皆為保留欄位,當前預設皆為 0