Skip to content

投注数据推送回调

VCT 平台批量向包网(Agent)推送结算后的注单数据。

说明

此接口由 VCT 平台调用包网(Agent),用于向包网系统推送或批量推送注单流水与报表数据。

注意(转账钱包模式重要事项): 在转账钱包模式下,此接口是包网系统获取所有游戏注单、派彩以及退款记录的唯一通道。游戏期间的所有下注(BET)、正常注单结算(SETTLED)、额外派奖(BONUS)以及取消和回滚(CANCEL/ROLLBACK/REFUND/VOID)日志都将统一推送到此接口,包网系统只需在此处接收并记录到报表,无需修改玩家实时余额

接口信息

属性
路径POST /api/v1/callback/bet-push
调用方VCT 平台 → 包网 (Agent)

请求参数(VCT 发送)

参数名类型必填说明
operator_codestring运营商编码
wagersarray注单列表
wagers[].usernamestring原始玩家用户名(已剔除 VCT 平台的前缀)
wagers[].currencystring币种代码(如 MYR, VND, USD 等,用于精准定位玩家多币种钱包)
wagers[].bet_idstring注单编号
wagers[].provider_codestringProvider 编码,用于佣金或报表按 Provider 归类
wagers[].provider_namestringProvider 名称
wagers[].brand_codestringBrand 编码,用于佣金或报表按 Brand 归类
wagers[].brand_namestringBrand 名称
wagers[].game_codestring游戏代码
wagers[].game_typestring游戏类型
wagers[].bet_amountdecimal投注金额
wagers[].valid_bet_amountdecimal有效投注金额
wagers[].prize_amountdecimal奖金金额
wagers[].win_lossdecimal输赢金额
wagers[].statusstring动作状态:BET / SETTLED / CANCEL / VOID / ROLLBACK / REFUND / BONUS
wagers[].bet_timestring下注时间
wagers[].settle_timestring结算时间
wagers[].round_idstring回合 ID
wagers[].original_transaction_idstring原始结算/下注交易 ID;当 status=BONUS 或取消操作时建议携带
signstring签名
timestamplong时间戳

成功响应

字段类型说明
receivedint成功接收条数
statusstring处理状态

推送范围建议

  • 默认推送 SETTLED,表示正常已结算注单
  • 默认推送 BONUS,表示额外奖金或独立赢分记录
  • 在转账钱包模式下,CANCELROLLBACKREFUNDVOID 会通过此接口推送以修正包网系统内的游戏报表和账目结果
  • 包网在转账钱包模式下仅需对接 bet(上分扣款)、settle(额度收回)和 bet-push(报表数据),无需对接 /cancel 资金流接口
  • 若包网需要按 Provider / Brand 计算佣金,建议优先使用 provider_codebrand_code 做匹配,不要仅依赖 game_code 反查

示例请求

正常结算注单 SETTLED

json
{
  "operator_code": "AG",
  "wagers": [
    {
      "username": "player001",
      "currency": "MYR",
      "bet_id": "settle-20260706-0001",
      "provider_code": "GSC",
      "provider_name": "Game Science",
      "brand_code": "PG",
      "brand_name": "Pocket Games Soft",
      "game_code": "PG-SLOT-001",
      "game_type": "SLOT",
      "bet_amount": 100.0,
      "valid_bet_amount": 100.0,
      "prize_amount": 200.0,
      "win_loss": 100.0,
      "status": "SETTLED",
      "bet_time": "2026-07-06T10:00:00+08:00",
      "settle_time": "2026-07-06T10:01:00+08:00",
      "round_id": "round-10001"
    }
  ],
  "sign": "demo-sign",
  "timestamp": 1783325100
}

额外奖金记录 BONUS

json
{
  "operator_code": "AG",
  "wagers": [
    {
      "username": "player001",
      "currency": "MYR",
      "bet_id": "bonus-20260706-0001",
      "provider_code": "GSC",
      "provider_name": "Game Science",
      "brand_code": "PG",
      "brand_name": "Pocket Games Soft",
      "game_code": "PG-SLOT-001",
      "game_type": "SLOT",
      "bet_amount": 0.0,
      "valid_bet_amount": 0.0,
      "prize_amount": 30.0,
      "win_loss": 30.0,
      "status": "BONUS",
      "bet_time": "2026-07-06T10:01:00+08:00",
      "settle_time": "2026-07-06T10:01:10+08:00",
      "round_id": "round-10001",
      "original_transaction_id": "settle-20260706-0001"
    }
  ],
  "sign": "demo-sign",
  "timestamp": 1783325160
}

示例响应

json
{
  "received": 1,
  "status": "success"
}

推送数据逻辑与处理建议

1. 记账报表定位(极其重要)

  • 仅做报表,切勿扣/加余额:在转账钱包模式下,玩家真实的可用余额已在进游戏时由 /bet 一次性扣除,退出游戏时由 /settle 一次性加回。因此,此接口推送的每一笔注单流水日志仅用于包网系统在后台统计游戏报表和流水分成,包网切勿根据推送日志去操作或修改玩家主钱包余额,否则会导致玩家主钱包金额重复增减。

2. 幂等去重控制

  • 包网系统应以 wagers[].bet_id 作为唯一键值对数据进行幂等排重过滤,避免因网络重试导致游戏报表中产生重复流水数据。

3. 注单状态与修正逻辑

  • 正常注单状态BET(原始投注)、SETTLED(正常结算)、BONUS(红利派彩)。
  • 修正注单状态CANCEL / ROLLBACK / REFUND / VOID(注单取消或回退)。
  • 修正逻辑处理:当注单状态为修正状态时,推送数据会携带指向原注单的 original_transaction_id。包网应在报表系统中定位到原有的 bet_id 结算记录,并将其状态和输赢金额进行冲正更新,以保持报表账目准确。

4. 自动重试机制与响应代码

  • 处理成功:包网处理完毕后,请返回 HTTP 200 状态码,并响应 {"received": 1, "status": "success"},VCT 队列收到后会将该笔推送任务标记为成功。
  • 重试保障:若包网侧数据库繁忙或网络短暂中断,应返回 HTTP 5xx 或直接超时。VCT 本地队列任务检测到失败或超时后,会启动自动重试策略,在随后的时间段内进行多次重试推送,确保流水日志零丢失。

游戏商来源映射

游戏商回调路径请求格式
BG不支持推送
GSCseamless/pushbetdataJSON,wagers 数组;支持 status=SETTLED / BONUS
SA不支持推送(通过查询接口拉取)
WMwebhook(cmd=SendMemberReport)form-data,result 数组

VCT Gaming Integration Platform