跳到主要内容

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,\"deviceType\":0}",
"actualBetAmt": 0,
"validBetAmt": 0,
"winAmt": 1.3,
"jackpotWin": 0,
"jackpotContribute": 0,
"betSourceId": 1,
"featureMode": 1
}
参数类型必填说明
actionstring是固定为 "betNSettle"
uidstring是玩家账号
roundIdstring是游戏局号
transferIdstring是交易唯一识别码(预计移除)
betIdstring是投注ID,为VP唯一值
brandstring是品牌代码,固定为VP
currencystring是币别代码
gameCodestring是游戏代码
betTimestring是下注时间
txTimestring是结算时间
gameInfostring是游戏相关资讯的 JSON 字串
actualBetAmtnumber是实际下注金额
validBetAmtnumber是有效投注金额
winAmtnumber是赢得金额,可为 0 或正数
jackpotWinnumber是彩池赢得金额
jackpotContributenumber是彩池贡献金额,预设为 0
betSourceIdnumber是交易来源代码
featureModenumber是特色模式

回应格式​

信息

回应为明文 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. betId 唯一性: 每局游戏的 betId 为唯一
  4. 重试策略: 未收到成功则会持续重试
    • 重试频率: 重试 5 次,每次重试之间都会使用退避指数值政策重试,(1s, 3s, 5s, 7s, 9s)
      • 若上述重试皆失败,一般交易进入rollback阶段
      • 若上述重试皆失败,道具、平台卡交易进入retryBet阶段
  5. 参数调整 transferId 将移除并由 betId 取代
  6. Jackpot参数: jackpotWin 目前仅 FISH 游戏 VP_400001_1 会使用,SLOT 游戏不会使用,值固定为 0;jackpotContribute 为保留栏位,当前预设为 0