Transfer Wallet 模式
在这种模式下,OP 需要调用 2J 的接口对玩家账号进行充值和提现操作, OP 可以通过调用 2J 的接口查询玩家的账户余额。
交互流程参见 流程概览。
2J 侧提供的接口
2J 侧提供的接口,OP 通过调用这些接口来实现玩家账户的充值、提现、查询余额等操作。
接口名称 | 描述 | 路径 |
---|---|---|
通用接口 | 2J 提供的通用场景下的接口 | |
用户充值 | 用户充值 | /open2j/w/transfer/deposit |
用户提现 | 用户提现 | /open2j/w/transfer/withdraw |
查询用户余额 | 查询用户余额 | /open2j/w/transfer/balance |
用户转入转出记录 | 用户转入转出记录 | /open2j/w/transfer/records |
1. 用户充值 /open2j/w/transfer/deposit
/open2j/w/transfer/deposit
由/open/transfer/deposit
更名而来, 烦请更新。
Method: POST
URI: /open2j/w/transfer/deposit
Description: 用户充值。该接口限流为 5000 次/ 10 秒。
Request Body:
{
"op_id": "string", // 用户唯一标识
"amount": 1000, // 充值金额,单位为厘
"trans_no": "string" // 交易唯一标识, 用于防止重复充值 [required] 最小长度: 6,最大长度: 64
}
参数名 | 类型 | 描述 | 是否必填 | 取值范围 |
---|---|---|---|---|
op_id | string | 用户唯一标识 | 是 | |
amount | int | 充值金额 | 是 | > 0 |
trans_no | string | 交易唯一标识, 用于防止重复充值 [required] | 是 | 最小长度: 6,最大长度: 64 |
Response Body:
{
"header": {
"code": 0, // 错误编码,0表示正常,非0表示异常
"msg": "string", // 错误信息
"timestamp": 1709716095516
},
"result": {
"balance": 2000 // 充值后余额
}
}
2. 用户提现 /open2j/w/transfer/withdraw
/open2j/w/transfer/withdraw
由/open/transfer/withdraw
更名而来, 烦请更新。
Method: POST
URI: /open2j/w/transfer/withdraw
Description: 用户提现。该接口限流为 5000 次/ 10 秒。
Request Body:
{
"op_id": "string", // 用户唯一标识
"amount": 1000, // 提现金额
"trans_no": "string" // 交易唯一标识, 用于防止重复提现 [required] 最小长度: 6,最大长度: 64
}
参数名 | 类型 | 描述 | 是否必填 | 取值范围 |
---|---|---|---|---|
op_id | string | 用户唯一标识 | 是 | |
amount | int | 提现金额 | 是 | > 0 |
trans_no | string | 交易唯一标识, 用于防止重复提现 [required] | 是 | 最小长度: 6,最大长度: 64 |
Response Body:
{
"header": {
"code": 0, // 错误编码,0表示正常,非0表示异常
"msg": "string", // 错误信息
"timestamp": 1709716095516
},
"result": {
"balance": 2000 // 提现后余额
}
}
3. 查询用户余额 /open2j/w/transfer/balance
/open2j/w/transfer/balance
由/open/transfer/balance
更名而来, 烦请更新。
Method: POST
URI: /open2j/w/transfer/balance
Description: 查询用户余额。该接口限流为 5000 次/ 10 秒。
Request Body:
{
"op_id": "string" // 用户唯一标识
}
参数名 | 类型 | 描述 | 是否必填 | 取值范围 |
---|---|---|---|---|
op_id | string | 用户唯一标识 | 是 |
Response Body:
freeze_amount
冻结金额代表因为用户在游戏中被锁住的部分余额。
{
"header": {
"code": 0, // 错误编码,0表示正常,非0表示异常
"msg": "string", // 错误信息
"timestamp": 1709716095516
},
"result": {
"balance": 1000, // 用户余额
"freeze_amount": 1 // 冻结数额(不可提现)
}
}
4. 用户转入转出记录 /open2j/w/transfer/records
/open2j/w/transfer/records
由/open/transfer/records
更名而来, 烦请更新。
Method: POST
URI: /open2j/w/transfer/records
Description: 用户转入转出记录,默认时间倒序排列;该接口限流为 5000 次/ 10 秒。
Request Body:
{
"op_id": "string", // 用户唯一标识
"next_id": 1709716095516, // 下一页参数
"page_size": 10, // 每页数量, 默认 10, 最大 100
"created_at": 1737009390, // 查询这个时间之前的记录
"trans_no": "string" // 外部订单号,用于查询单个订单
}
参数名 | 类型 | 描述 | 是否必填 | 取值范围 |
---|---|---|---|---|
op_id | string | 用户唯一标识 | 是 | |
next_id | int | 下一页参数。第一次传 0, 后续传上一页返回的 next_id | 是 | |
page_size | int | 每页数量 | 否 | 10-100 |
created_at | int | timestamp seconds, 查询这个时间(UTC+0)之前的记录 | 否 | |
trans_no | string | 外部订单号,用于查询单个订单 | 否 |
Response Body:
{
"header": {
"code": 0, // 错误编码,0表示正常,非0表示异常
"msg": "string", // 错误信息
"timestamp": 1709716095516
},
"result": {
"next_id": 1709716095516,// 翻页需要携带的下一页参数, 如果为 0 表示没有下一页
"records": [
{
"id": 1709716095515, // ID
"type": 3, // 记录类型 4: 充值 3: 提现
"amount": 1000, // 金额
"after_balance": 2000, // 余额 (变更后)
"ref_id": "string", // 唯一订单号
"trans_no": "string", // 2J 侧根据 OP 传入的 trans_no 组装的唯一订单号
"created_at": 1737009390 // 创建时间 UTC 时间戳
}
]
}
}
注意:响应中的
trans_no
是 2J 侧根据 OP 传入的trans_no
组装的唯一订单号,不完全是 OP 传入的trans_no
。