v1.0.0 (2026-08-15 18:56)
投注数据推送 (Bet Push)
概述
- 接口路径:
/api/v1/bet-push - 请求方法:
POST - 说明:在 Seamless(无缝模式)下,VCT Hub 会单向异步向 Client 侧系统批量或单条推送玩家完整的注单与流水明细日志。Client 侧只需单纯保存日志数据供后台报表展示与对账,无需在此接口操作任何主钱包的实时资金。
请求参数 (Body)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
operator_code | string | 是 | 运营商/代理编码 (如 AG) |
wagers | array | 是 | 注单流水明细列表 |
sign | string | 是 | 请求签名(签名格式:HexEncode(HMAC-SHA256(apiKey + "." + timestamp, apiSecret))) |
timestamp | int64 | 是 | 秒级 Unix 时间戳 |
wagers[] 元素说明
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
username | string | 是 | 玩家用户名 |
bet_id | string | 是 | 注单编号(可用于后台去重排重) |
provider_code | string | 否 | 游戏厂商编码 (如 GSC, APOLLOGAMES) |
provider_name | string | 否 | 游戏厂商名称 |
brand_code | string | 否 | 品牌编码 |
brand_name | string | 否 | 品牌名称 |
game_code | string | 是 | 游戏代码 |
game_type | string | 是 | 游戏类型 (如 SLOT, LIVE) |
currency | string | 是 | 货币代码 (例如 MYR, USD, IDR) |
bet_amount | number (float) | 是 | 投注金额 |
valid_bet_amount | number (float) | 是 | 有效投注金额 |
prize_amount | number (float) | 是 | 派彩/奖金金额 (中奖金额) |
win_loss | number (float) | 是 | 输赢金额(prize_amount - bet_amount,正数为赢,负数为输) |
status | string | 是 | 注单状态:BET(下注)、SETTLED(结算)、BONUS(红利)、CANCEL(取消)、ROLLBACK(回滚)、REFUND(退款)、VOID(作废) |
bet_time | string | 是 | 下注时间 (ISO 8601 格式,如 2026-07-20T15:30:00+08:00) |
settle_time | string | 是 | 结算时间 (ISO 8601 格式) |
round_id | string | 否 | 游戏局号 / 回合 ID |
original_transaction_id | string | 否 | 原始交易 ID(当状态为修正操作如 CANCEL / ROLLBACK 时携带) |
请求示例
json
{
"operator_code": "AG",
"wagers": [
{
"username": "player001",
"bet_id": "wager-987654321",
"provider_code": "GSC",
"provider_name": "Game Science",
"brand_code": "PG",
"brand_name": "Pocket Games Soft",
"game_code": "PG-SLOT-001",
"game_type": "SLOT",
"currency": "MYR",
"bet_amount": 10.00,
"valid_bet_amount": 10.00,
"prize_amount": 15.00,
"win_loss": 5.00,
"status": "SETTLED",
"bet_time": "2026-07-20T15:30:00+08:00",
"settle_time": "2026-07-20T15:30:01+08:00",
"round_id": "round-888999"
}
],
"sign": "d2f4a1c8b3e947192a83749",
"timestamp": 1783324900
}响应参数 (Response Body)
| 参数名 | 类型 | 说明 |
|---|---|---|
received | integer | 成功接收到的注单记录数量 |
status | string | 状态:固定返回 "success" |
响应示例
json
{
"received": 1,
"status": "success"
}注意事项
bet-push接口的sign签名使用apiKey参与计算,与用户级别的接口区分。- 建议 Client 侧使用异步批量落库或 MQ 队列处理该推送,保证回调响应的低延迟。