Skip to content

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:

json
{
  "op_id": "string",         // 用户唯一标识
  "amount": 1000,            // 充值金额,单位为厘
  "trans_no": "string"       // 交易唯一标识, 用于防止重复充值 [required] 最小长度: 6,最大长度: 64
}
参数名类型描述是否必填取值范围
op_idstring用户唯一标识
amountint充值金额> 0
trans_nostring交易唯一标识, 用于防止重复充值 [required]最小长度: 6,最大长度: 64

Response Body:

json
{
    "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:

json
{
  "op_id": "string",         // 用户唯一标识
  "amount": 1000,            // 提现金额
  "trans_no": "string"       // 交易唯一标识, 用于防止重复提现 [required] 最小长度: 6,最大长度: 64
}
参数名类型描述是否必填取值范围
op_idstring用户唯一标识
amountint提现金额> 0
trans_nostring交易唯一标识, 用于防止重复提现 [required]最小长度: 6,最大长度: 64

Response Body:

json
{
    "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:

json
{
  "op_id": "string"          // 用户唯一标识
}
参数名类型描述是否必填取值范围
op_idstring用户唯一标识

Response Body:

freeze_amount 冻结金额代表因为用户在游戏中被锁住的部分余额。

json
{
    "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:

json
{
  "op_id":  "string",         // 用户唯一标识
  "next_id": 1709716095516,   // 下一页参数
  "page_size": 10,            // 每页数量, 默认 10, 最大 100
  "created_at": 1737009390,    // 查询这个时间之前的记录
  "trans_no": "string"    // 外部订单号,用于查询单个订单
}
参数名类型描述是否必填取值范围
op_idstring用户唯一标识
next_idint下一页参数。第一次传 0, 后续传上一页返回的 next_id
page_sizeint每页数量10-100
created_atinttimestamp seconds, 查询这个时间(UTC+0)之前的记录
trans_nostring外部订单号,用于查询单个订单

Response Body:

json
{
    "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

2J Game Inc.