版本:v2.1 作者:开发小组 更新时间:2025-03-10 说明:本文档面向包网公司,说明接入中博彩票时所需的后台页面操作、系统配置步骤,以及系统之间的接口对接方式。
1. 包网接入概述
2. 系统接口
3. 附录
包网在接入中博彩票(以下简称“我方”)前,需先向我方提交接入申请。我方将提供包网接入所需的基础信息,包括包网号、包网密钥、包网后台及商户后台地址等。同时,我方将根据包网提供的服务器 IP 和后台登录 IP 配置白名单,以确保系统访问的安全与稳定。
我方向每家包网提供独立的包网后台系统。包网管理员可通过包网号、用户名、密码及 Google 验证码进行登录。 包网管理员可在后台对其下所有商户进行统一管理,包括商户账户、会员信息、投注注单、资金流水及相关报表等内容。 包网后台仅限包网管理员专属使用,请勿向非包网授权人员泄露或提供使用权限。 包网首次对接时,需先在包网后台的「商户管理」菜单中创建商户。每个商户对应一个独立网站(盘口)。建议包网为其下各网站分别建立各自独立的商户,以便商户可独立配置彩种、玩法及赔率,从而获得更灵活的业务管理能力。
每个独立网站(盘口)对应一个商户号,且每个商户均拥有独立的商户后台。商户管理员可通过商户号、用户名、密码及 Google 验证码进行登录。 商户后台用于管理本商户下的业务数据,包括会员信息、投注注单、资金流水、彩种设置、玩法赔率及相关报表等内容。
说明:包网调用会员登录接口时,我方系统会自动为会员完成注册,无需额外操作。
接口地址:/aa/promen/member/login
请求方式:POST
Content-Type:application/x-www-form-urlencoded(表单提交)
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号,在每家包网内全局唯一,长度17至23位,仅允许数字且不能以0开头。 |
| bao | String | 是 | 包网号,由我方分配。 |
| tenant | String | 是 | 商户号,由我方分配。 |
| timeStamp | String | 是 | 时间戳,格式固定为yyyy-MM-dd HH:mm:ss.SSS。 |
| memberAccount | String | 是 | 会员账号,长度4至20位,仅允许小写字母和数字。 |
| sign | String | 是 | MD5摘要,长度固定32位,小写字母和数字。 按 seq+bao+tenant+timeStamp+memberAccount+pwd顺序拼接后生成,其中pwd为包网密钥。 |
xxxxxxxxxxseq:1844771163012595788bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01sign:500e7a8ba478f06cbf5ba237334763af
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码,0:成功,其他:失败。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "登录成功", "data": { "seq": "1844771163012595788", "url": "https://www.zbocpcg.com?caToken=fb6fcf5ee31b47c28cc395df3e86f8c4" }}xxxxxxxxxx{ "code": 9999, "msg": "服务器IP不合法"}接口地址:/aa/promen/cash/balance/query
请求方式:GET
参数传递:Query Params
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号。 |
| bao | String | 是 | 包网号。 |
| tenant | String | 是 | 商户号。 |
| timeStamp | String | 是 | 时间戳。 |
| memberAccount | String | 是 | 会员账号。 |
| sign | String | 是 | MD5摘要,按seq+bao+tenant+timeStamp+memberAccount+pwd顺序拼接后生成。 |
xxxxxxxxxxseq:1844791435132403733bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01sign:8b11311283a8f80d589bef44b906f955
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "查询成功", "data": { "seq": "1844791435132403733", "bao": "xy", "tenant": "xy001", "memberAccount": "player01", "balance": "15000.0000" // 固定四位小数 }}xxxxxxxxxx{ "code": 9999, "msg": "会员不存在"}接口地址:/aa/promen/cash/trans/in
请求方式:POST
Content-Type:application/x-www-form-urlencoded
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号。 |
| bao | String | 是 | 包网号。 |
| tenant | String | 是 | 商户号。 |
| timeStamp | String | 是 | 时间戳。 |
| memberAccount | String | 是 | 会员账号。 |
| amt | String | 是 | 转入金额,最多2位小数,范围0.01至99999999.99。 |
| sign | String | 是 | MD5摘要,按seq+bao+tenant+timeStamp+memberAccount+amt+pwd顺序拼接后生成。 |
xxxxxxxxxxseq:1844818562221342735bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01amt:100.88sign:3fef667d46d804ecb2017aec23c0d615
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "转入成功", "data": { "seq": "1844818562221342735", "bao": "xy", "tenant": "xy001", "memberAccount": "player01", "before": "200.0000", "amt": "100.8800", "after": "300.8800", "transId": "1844907599519023138" // 我方金流ID }}xxxxxxxxxx{ "code": 9999, "msg": "序列号已存在"}接口地址:/aa/promen/cash/trans/out
请求方式:POST
Content-Type:application/x-www-form-urlencoded
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号。 |
| bao | String | 是 | 包网号。 |
| tenant | String | 是 | 商户号。 |
| timeStamp | String | 是 | 时间戳。 |
| memberAccount | String | 是 | 会员账号。 |
| amt | String | 是 | 转出金额,最多2位小数,范围0.01至99999999.99。 |
| sign | String | 是 | MD5摘要,按seq+bao+tenant+timeStamp+memberAccount+amt+pwd顺序拼接后生成。 |
xxxxxxxxxxseq:1844943737520652348bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01amt:100.22sign:abf82035ee1d2fa6a5293033e07045cc
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "转出成功", "data": { "seq": "1844943737520652348", "bao": "xy", "tenant": "xy001", "memberAccount": "player01", "before": "300.8800", "amt": "100.2200", "after": "200.6600", "transId": "1844951300567990276" }}xxxxxxxxxx{ "code": 9999, "msg": "金额格式不正确"}接口地址:/aa/promen/cash/trans/query
请求方式:GET
参数传递:Query Params
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号。 |
| bao | String | 是 | 包网号。 |
| tenant | String | 是 | 商户号。 |
| timeStamp | String | 是 | 时间戳。 |
| memberAccount | String | 是 | 会员账号。 |
| transSeq | String | 是 | 转账报文序列号,对应包网调用余额转入/转出接口时使用的 seq 字段(非我方返回的 transId)。 |
| sign | String | 是 | MD5摘要,按seq+bao+tenant+timeStamp+memberAccount+transSeq+pwd顺序拼接后生成。 |
xxxxxxxxxxseq:1844951305886367775bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01transSeq:1844818562221342735sign:d071e8819687e9c85d1e94e94e867012
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "查询成功", "data": { "seq": "1844951305886367775", "bao": "xy", "tenant": "xy001", "memberAccount": "player01", "transSeq": "1844818562221342735", "transId": "1844907599519023138", "type": 1, // 转账类型,1:转入场馆,2:转出场馆 "before": "200.0000", "amt": "100.8800", "after": "300.8800", "dateTime": "2024-10-12 14:02:00" // 我方处理完成时间 }}xxxxxxxxxx{ "code": 0, "msg": "查询成功" // 无 data 字段,表示未查到对应交易记录}接口地址:/aa/promen/order/list
请求方式:GET
参数传递:Query Params
返回格式:JSON
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seq | String | 是 | 报文序列号。 |
| bao | String | 是 | 包网号。 |
| timeStamp | String | 是 | 时间戳。 |
| beginTime | String | 是 | 查询起始时间(注单最后更新时间),查询结果包含该时间,格式yyyy-MM-dd HH:mm:ss。 |
| endTime | String | 是 | 查询结束时间(注单最后更新时间),查询结果包含该时间,格式yyyy-MM-dd HH:mm:ss。开始时间不得晚于结束时间,结束时间必须早于当前时间至少 2 分钟,查询时间跨度不得超过 30 分钟。 查询频次限制,每次查询须间隔3秒。 |
| pageNum | Integer | 是 | 页码,范围1至1000。 |
| pageSize | Integer | 是 | 页大小,范围1至5000。 |
| sign | String | 是 | MD5摘要,按seq+bao+timeStamp+beginTime+endTime+pageNum+pageSize+pwd顺序拼接后生成。 |
xxxxxxxxxxseq:1844951309115981829bao:xytimeStamp:2024-10-12 14:10:00.222beginTime:2024-10-12 14:00:00endTime:2024-10-12 14:05:00pageNum:1pageSize:5000sign:caddad4815051e00b6439a6466bb3570
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | Integer | 是 | 状态码。 |
| msg | String | 是 | 响应说明信息。 |
| data | Object | 否 | 返回数据对象。 |
xxxxxxxxxx{ "code": 0, "msg": "查询成功", "data": { "total": 5500, // 注单总数,超过一页时,需翻页拉取 "list": [ { "orderId": "1844971424368820252", // 注单ID "memberAccount": "player01", // 会员账号 "varietyId": "14", // 彩系ID "varietyName": "六合彩", // 彩系名称 "lotteryId": "14_003", // 彩种ID "lotteryName": "极速六合彩", // 彩种名称 "spanNo": "20241012-0842", // 期号 "openCode": "15,41,8,3,7,47,22", // 开奖号码,未开奖时不返回 "zodiac": "兔,牛,狗,兔,猪,羊,猴", // 仅六合彩有该字段 "wuxing": "木,金,木,金,木,火,水", // 仅六合彩有该字段 "gameName": "特码大小", // 玩法 "itemName": "大", // 投注内容 "betCount": 1, // 投注注数 "betAmt": "10", // 投注总金额 "odds": "1.99", // 赔率 "odds02": "0", // 第二赔率 "winCount": 1, // 中奖注数 "winAmt": "19.9", // 中奖总金额 "status": 3, // 注单状态 "statusName": "已中奖", // 注单状态中文 "remark": "备注", // 备注,为空时不返回 "createAt": "2024-10-12 14:01:20", // 投注时间 "updateAt": "2024-10-12 14:02:08", // 注单最后更新时间 "bao": "xy", // 包网号 "tenant": "xy001" // 商户号 }, { "orderId": "1845026224234037290", "memberAccount": "player01", "varietyId": "11", "varietyName": "PK10", "lotteryId": "11_003", "lotteryName": "极速赛车", "spanNo": "20241012-0842", "openCode": "2,3,6,10,1,8,4,5,7,9", "gameName": "冠军大小", "itemName": "大", "betCount": 1, "betAmt": "10", "odds": "1.99", "odds02": "0", "winCount": 0, "winAmt": "0", "status": 5, "statusName": "用户撤单", "createAt": "2024-10-12 14:01:20", "updateAt": "2024-10-12 14:02:08", "cancelAt": "2024-10-12 14:01:30", // 撤单时间,为空时不返回 "bao": "xy", "tenant": "xy001" }, // 其余注单省略 ] }}xxxxxxxxxx{ "code": 9999, "msg": "每次查询须间隔3秒"}包网按指定顺序拼接字段,组成一个新的字符串。
对拼接后的字符串计算 MD5 摘要,生成 32 位小写的 sign 字段。
将生成的 sign 字段随请求参数一起发送给我方服务接口。
我方收到请求后,会对签名进行校验。
以会员登录接口为例,参与签名的字段及顺序为:
xxxxxxxxxxseq+bao+tenant+timeStamp+memberAccount+pwd
请求参数
xxxxxxxxxxseq:1844771163012595788bao:xytenant:xy001timeStamp:2024-10-12 14:10:00.222memberAccount:player01sign:待计算
签名明文(假设包网密钥为QmkkhDqTHmIKtmoUTvsS)
xxxxxxxxxx1844771163012595788xyxy0012024-10-12 14:10:00.222player01QmkkhDqTHmIKtmoUTvsS
签名密文
xxxxxxxxxxsign:500e7a8ba478f06cbf5ba237334763af
| code | 说明 |
|---|---|
| 0 | 成功 |
| 9999 | 失败 |
| 其他 | 失败 |
| code | 说明 |
|---|---|
| 1 | 待开奖 |
| 2 | 未中奖 |
| 3 | 已中奖 |
| 4 | 和局 |
| 5 | 用户撤单 |
| 6 | 系统撤单 |