REST API文档

通用响应结构

所有API接口返回统一的响应结构:

{
  "code": "整数",
  "msg": "字符串",
  "data": "对象",
  "systemTime": "长整数,系统时间戳"
}

响应字段

  • code: 响应状态码

    • 1: 成功

    • 0: 一般错误

  • msg: 响应消息

  • data: 响应数据对象

  • systemTime: 服务器时间戳(毫秒)

签名计算方法

所有需要签名的请求遵循以下规则:

  1. 将所有参数按键名字母顺序排序

  2. 将参数以"键=值"格式用"&"连接

  3. 在字符串末尾附加密钥

  4. 计算最终字符串的SHA-256哈希值

示例:

部分sign计算的示例代码

1. 获取支付地址(如果不需要Payment UI,只是展示支付二维码)

  • 接口: GET /api/v1/address/{id}

  • 描述: 获取指定订单的支付地址

  • 参数:

    • id: 订单ID (路径变量)

  • 返回值:

    • 成功: 链类型到钱包地址的映射

    • 失败: "Not found" (未找到订单)

  • 返回示例:

2. 创建支付订单

  • 接口: POST /api/v1/order

  • 访问限制: 每分钟60次

  • 请求体: PaymentDTO

  • 验证:

    • 时间戳必须在5分钟内

    • 签名必须有效

    • nonce不能重复

  • 返回值:

    • 成功: 支付订单详情及钱包地址

    • 失败: 错误信息及原因

  • 返回示例:

3. 查询订单状态

  • 接口: GET /api/v1/order/{id}/status

  • 描述: 获取支付订单当前状态

  • 参数:

    • id: 订单ID (路径变量)

  • 返回值:

    • 成功: 订单状态 (待支付、已支付、已过期等)

    • 失败: "Order not found" (订单未找到)

  • 返回示例:

4. 退款接口

  • 接口: POST /api/v1/refund

  • 描述: 对已支付订单进行全额或部分退款

  • 请求体: RefundDTO

  • 字段说明:

    • id: 支付系统订单ID(如提供oid则可选)

    • oid: 商户订单号(如提供id则可选)

    • amount: 退款金额(必须小于等于原支付金额)

    • remark: 退款原因或备注

    • timestamp: 当前时间戳(毫秒)

    • nonce: 随机字符串,防止重放攻击

    • sign: 请求签名

  • 验证要求:

    • idoid必须提供其中之一

    • 退款金额必须为正数且不超过原支付金额

    • 订单状态必须为已支付

    • 签名必须有效

  • 返回示例:

  • 错误返回示例:

5. 提现申请

  • 接口: POST /api/v1/withdraw/apply

  • 描述: 提交提现申请

  • 请求体: WithdrawApplication

  • 字段说明:

    • uid: 用户ID

    • amount: 提现金额

    • to: 目标钱包地址

    • chainId: 区块链网络ID

    • chainType: 链类型(EVM/TRON)

    • token: 代币合约地址

    • notifyUrl: 提现状态更新回调地址

    • timestamp: 当前时间戳(毫秒)

    • nonce: 随机字符串,防止重放攻击

    • sign: 请求签名

  • 验证要求:

    • 金额必须为正数

    • 有效的区块链地址

    • 用户余额必须足够

    • 签名必须有效

  • 返回示例:

6. 确认提现

  • 接口: POST /api/v1/withdraw/confirm

  • 描述: 使用交易哈希确认待处理的提现

  • 请求体: WithdrawConfirmDTO

  • 字段说明:

    • logId: 提现记录ID

    • txHash: 区块链上的交易哈希

    • blockNumber: 交易的区块号

    • timestamp: 当前时间戳(毫秒)

    • nonce: 随机字符串

    • sign: 请求签名

  • 返回示例:

7. 拒绝提现

  • 接口: POST /api/v1/withdraw/reject

  • 描述: 拒绝待处理的提现申请

  • 请求体: WithdrawReject

  • 字段说明:

    • id: 提现记录ID

    • timestamp: 当前时间戳(毫秒)

    • nonce: 随机字符串

    • sign: 请求签名

  • 返回示例:

Last updated