API-v1(转账钱包)
介绍
转账钱包,用户手动把部分资金转入到哈希平台,所有下注在哈希平台内完成,当用户不在哈希平台游玩时候,可以手动再把哈希平台资金转出。
流程图

API
1. 用户接口
1.1 创建用户
接口:POST /api/v1/user/create
简要描述
用户注册接口,用户首次使用平台需先进行注册
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| username | 是 | string | 用户名(4-20 位字母数字) | "testuser123" |
| password | 是 | string | 密码(6-32 位) | "p@ssw0rd" |
| nickname | 否 | string | 昵称(2-20 字符) | "测试用户" |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 系统分配的用户唯一 ID |
| username | string | 用户注册账号 |
| nickname | string | 用户昵称(未设置返回空字符串) |
| avatar | string | 用户头像 URL |
| status | int32 | 账号状态(1 正常/0 禁用) |
| token | string | 认证 token(有效期 7 天) |
| jump_url | string | 登录后跳转地址 |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"username": "testuser123",
"nickname": "测试用户",
"avatar": "https://example.com/default.jpg",
"status": 1,
"token": "eyJhbGciOi...",
"jump_url": "/dashboard"
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
1.2 登录
接口: POST /api/v1/user/login
简要描述
用户登录接口,获取游戏地址和认证 token
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| username | 是 | string | 用户名 | "testuser123" |
| password | 是 | string | 密码 | "p@ssw0rd" |
| entry_key | 是 | string | 游戏入口代码 | "PC28_1" |
| currency | 否 | string | 货币类型(默认 USDT) | "USDT" |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| nickname | string | 用户昵称 |
| avatar | string | 头像 URL |
| status | int32 | 账号状态(1 正常) |
| token | string | 认证 token |
| jump_url | string | 游戏跳转地址 |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"username": "testuser123",
"nickname": "测试用户",
"avatar": "https://example.com/avatar.jpg",
"status": 1,
"token": "eyJhbGciOi...",
"jump_url": "/game/pc28?token=eyJhbGciOi..."
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
1.3 余额查询
接口: GET /api/v1/user/balance
简要描述
获取用户当前余额
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| user_id | 是 | int64 | 用户 ID | 10001 |
| currency | 否 | string | 币种类型(默认 USDT) | "USDT" |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 ID |
| balance | float64 | 账户余额 |
| currency | string | 币种类型 |
| frozen | float64 | 冻结金额(可选) |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"balance": 1580.5,
"currency": "USDT",
"frozen": 200.0
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
1.4 查询用户信息
接口: GET /api/v1/user/user_info
简要描述
获取用户基本信息
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| user_id | 是 | int64 | 用户 ID | 10001 |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| nickname | string | 用户昵称 |
| avatar | string | 头像 URL |
| status | string | 状态 |
| token | string | token |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"username": "testuser123",
"nickname": "测试用户",
"avatar": "https://example.com/avatar.jpg",
"status": 1
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
1.5 更新用户信息
接口: POST /api/v1/user/update
简要描述
用户昵称、头像有变更后,同步信息展示
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| user_id | 是 | int64 | 用户 ID | 10001 |
| nickname | 否 | string | 新昵称(2-20 字符) | "新昵称" |
| avatar | 否 | string | 新头像 URL | "https://example.com/new_avatar.jpg" |
| password | 否 | string | 新密码(6-32 位) | "newP@ss123" |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| nickname | string | 更新后的昵称 |
| avatar | string | 更新后的头像 URL |
| update_time | int64 | 更新时间戳(秒) |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"username": "testuser123",
"nickname": "新昵称",
"avatar": "https://example.com/new_avatar.jpg",
"update_time": 1675161600
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
1.6 更改用户状态
接口: POST /api/v1/user/update_status
简要描述
更改用户的状态,同步信息展示
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| user_id | 是 | int64 | 要操作的用户 ID | 10001 |
| status | 是 | int32 | 目标状态(0 启用/1 禁用/2 风控) | 1 |
成功响应(200)
| 字段名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| nickname | string | 昵称 |
| status | int32 | 状态 |
| avatar | string | 头像 |
| update_time | int64 | 操作时间戳(秒) |
示例
{
"code": 0,
"data": {
"user_id": 10001,
"username": "testuser123",
"nickname": "新昵称",
"status": 1,
"avatar": "https://example.com/new_avatar.jpg",
"update_time": 1675161600
}
}成功返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|
失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
2. 转账接口
2.1 转账
接口:POST /api/v1/transfer
简要描述
用户钱包与平台账户之间的资金划转(正数表示转入平台,负数表示转出平台)
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| user_id | 是 | int64 | 用户唯一标识 | "user_123456" |
| amount | 是 | float64 | 转账金额(保留 2 位小数) | 100.50 |
| currency | 是 | string | 货币类型 | "USDT" |
成功响应(200)
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | int64 | 用户 id |
| order_no | string | 系统交易流水号 |
| balance | number | 账户最新余额 |
| currency | string | 货币类型 |
示例
{
"code": 0,
"data": {
"user_id": 111,
"order_no": "TS202308010001",
"currency": "USDT",
"balance": 1500.75
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
2.2 转账列表查询
接口:GET /api/v1/transfer/logs
简要描述
分页查询用户转账历史记录
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| username | 是 | string | 用户名 | "user_123456" |
| page | 否 | int | 当前页码(默认 1) | 1 |
| page_size | 否 | int | 每页条数(默认 10,最大 50) | 10 |
| start_time | 否 | string | 开始时间(YYYY-MM-DD 格式) | "2023-08-01" |
| end_time | 否 | string | 结束时间(YYYY-MM-DD 格式) | "2023-08-31" |
| transfer_type | 否 | int | 转账类型(1 转入/2 转出) | 1 |
成功响应(200)
| 参数名 | 类型 | 说明 |
|---|---|---|
| list | array | 转账记录列表 |
| page | int | 当前页码 |
| page_size | int | 每页条数 |
列表项结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| order_no | string | 转账订单号/交易流水号 |
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| amount | float64 | 转账金额 |
| currency | string | 货币类型,如 USDT |
| before | float64 | 转账前余额 |
| after | float64 | 转账后余额 |
| status | int32 | 转账状态: 1-成功 2-失败 |
| type | int32 | 转账类型: 1-充值 2-提现 3-转入游戏 4-转出游戏 |
| create_at | int64 | 创建时间(unix 时间戳) |
示例
{
"code": 0,
"data": {
"list": [
{
"order_no": "TS202308010001",
"user_id": 10001,
"username": "user123",
"amount": 100.5,
"fee": 0.0,
"currency": "USD",
"before": 500.0,
"after": 600.5,
"status": 1,
"type": 1,
"create_time": "2023-08-01 10:30:00"
}
],
"page": 1,
"page_size": 10
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
2.3 转账状态查询
接口: GET /api/v1/transfer/status
简要描述
查询用户的转账记录的状态
请求参数
| 参数名 | 必须 | 类型 | 说明 | 示例值 |
|---|---|---|---|---|
| order_no | 是 | string | 交易流水订单号 | "TS202308010001" |
成功响应(200)
| 参数名 | 类型 | 说明 |
|---|---|---|
| order_no | string | 转账订单号/交易流水号 |
| user_id | int64 | 用户 ID |
| username | string | 用户名 |
| amount | float64 | 转账金额 |
| currency | string | 货币类型,如 USDT |
| before | float64 | 转账前余额 |
| after | float64 | 转账后余额 |
| status | int32 | 转账状态: 1-成功 2-失败 |
| type | int32 | 转账类型: 1-充值 2-提现 3-转入游戏 4-转出游戏 |
| create_at | int64 | 创建时间(unix 时间戳) |
示例
{
"code": 0,
"data": {
"order_no": "TS202308010001",
"user_id": 10001,
"username": "user123",
"amount": 100.5,
"fee": 0.0,
"currency": "USD",
"before": 500.0,
"after": 600.5,
"status": 1,
"type": 1,
"create_time": "2023-08-01 10:30:00"
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
3. 订单接口
3.1 订单列表查询
接口:GET /api/v1/order/list
简要描述
平台所有玩家订单数据
请求参数
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| page | 是 | int | 页码 |
| page_size | 是 | int | 每页数量 |
| start_time | 是 | int | 毫秒时间戳,查询开始时间,默认今天的开始毫秒 |
| end_time | 是 | int | 毫秒时间戳,查询结束时间,默认今天的结束毫秒 |
成功响应(200)
| 参数名 | 类型 | 说明 |
|---|---|---|
| list | array | 转账记录列表 |
| page | int | 当前页码 |
| page_size | int | 总页数 |
列表项结构说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| order_no | string | 系统唯一订单号 |
| block_id | string | 区块哈希 |
| user_id | int64 | 用户 ID |
| username | string | 用户名(已脱敏处理) |
| game_code | string | 游戏标识 |
| entry_key | string | 游戏入口标识码 |
| entry_name | string | 游戏入口名称 |
| room_id | int32 | 房间 ID |
| room_name | string | 房间名称 |
| round_id | int64 | 游戏局唯一标识 |
| amount | float64 | 订单金额(含正负) |
| currency | string | 货币代码(CNY/USD 等) |
| status | int32 | 订单状态(见状态枚举) |
| bill | float64 | 流水金额 |
| profit | float64 | 平台盈亏(正数盈利/负数亏损) |
| prize | float64 | 奖金金额 |
| tax | float64 | 税费 |
| bonus | float64 | 额外奖励金额 |
| bet_time | int64 | 下注时间戳(秒) |
| reckon_time | int64 | 结算时间戳(未结算为 0) |
| bet_info | string | 投注详情(JSON 字符串格式) |
| result | string | 开奖结果 |
| is_win | bool | 是否中奖 |
| remark | string | 备注 |
bet_info JSON 结构示例
[
{
"key": "Big",
"name": "大",
"amount": 1,
"odds": 1.95,
"result": "win"
}
]示例
{
"code": 0,
"msg": "SUCCESS",
"data": {
"list": [
{
"user_id": 9,
"username": "RSwVUYp",
"order_no": "202506061653316411",
"block_id": "0000000004579244e0f582546c32e30225bf30c0fa9eb2f281334fd7b83ddf23",
"game_code": "pc28",
"entry_key": "pc28-1",
"entry_name": "",
"room_id": 1,
"room_name": "",
"round_id": 72847940,
"amount": 10,
"currency": "USDT",
"status": 3,
"bill": 0,
"profit": 0,
"prize": 0,
"tax": 0,
"bonus": 0,
"bet_time": 1749200012000,
"reckon_time": 0,
"bet_info": "[{\"key\":\"Big\",\"name\":\"Big\",\"odds\":200,\"amount\":10}]",
"result": "",
"is_win": false,
"remark": ""
}
],
"page": 1,
"page_size": 20
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |
3.2 订单详情
接口:GET /v1/order/details
简要描述
平台玩家订单详细信息
请求参数
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| order_no | 是 | string | 订单号(唯一) |
成功响应 data 数据(200)
列表项结构说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| order_no | string | 系统唯一订单号 |
| block_id | string | 区块哈希 |
| user_id | int64 | 用户 ID |
| username | string | 用户名(已脱敏处理) |
| game_code | string | 游戏标识 |
| entry_key | string | 游戏入口标识码 |
| entry_name | string | 游戏入口名称 |
| room_id | int32 | 房间 ID |
| room_name | string | 房间名称 |
| round_id | int64 | 游戏局唯一标识 |
| amount | float64 | 订单金额(含正负) |
| currency | string | 货币代码(CNY/USD 等) |
| status | int32 | 订单状态(见状态枚举) |
| bill | float64 | 流水金额 |
| profit | float64 | 平台盈亏(正数盈利/负数亏损) |
| prize | float64 | 奖金金额 |
| tax | float64 | 税费 |
| bonus | float64 | 额外奖励金额 |
| bet_time | int64 | 下注时间戳(秒) |
| reckon_time | int64 | 结算时间戳(未结算为 0) |
| bet_info | string | 投注详情(JSON 字符串格式) |
| result | string | 开奖结果 |
| is_win | bool | 是否中奖 |
| remark | string | 备注 |
成功返回
{
"code": 0,
"msg": "SUCCESS",
"data": {
"user_id": 9,
"username": "RSwVUYp",
"order_no": "202506061653316411",
"block_id": "0000000004579244e0f582546c32e30225bf30c0fa9eb2f281334fd7b83ddf23",
"game_code": "pc28",
"entry_key": "pc28-1",
"entry_name": "",
"room_id": 1,
"room_name": "",
"round_id": 72847940,
"amount": 10,
"currency": "USDT",
"status": 3,
"bill": 0,
"profit": 0,
"prize": 0,
"tax": 0,
"bonus": 0,
"bet_time": 1749200012000,
"reckon_time": 0,
"bet_info": "[{\"key\":\"Big\",\"name\":\"Big\",\"odds\":200,\"amount\":10}]",
"result": "",
"is_win": false,
"remark": ""
}
}失败返回
| 参数 | 是否必须 | 数据类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 错误码(参考错误码说明) |
| msg | 是 | string | 错误描述 |

