下面是API文档:
支持商家app、网站等集成收款。支持foxupay及其他链上钱包付款
谁备工作:下载foxupay钱包并登录钱包,在我的–设置-交易密钥获取交易密钥; 在我的页面顶端获取UID参数
生成交易
签名算法说明:
示例说明:
请求报文Body如下:
mount=1¬ifyUrl=https://ww.example.com&orderNo=174923083846799680&redirectUrl=https://www.example.com&signature=041654d185537db1fbd4652bba6fce2702fa6ce776a306479feac0c3fabe6f6&uid=BP000005
实现步骤:
步骤 1:生成待签名串
收集非空域:
amount=1 notifyUrl=https://www.example.com orderNo=1749230838467399680 redirectUrl=https://www.example.com uid=BP000005
排序并拼接:按照 ASCII 码排序这些键值对,并用 & 拼接,得到的待签名串,并将APP中获取的私钥,拼接在末尾:
amount=1¬ifyUrl=https://www.example.com&orderNo=1749230838467399680&redirectUrl=https://www.example.com&uid=BP0000050011d9af6b894306b75688bd59f9e18c23ddce9dc7c048f498a8898761c8adef
步骤 2:计算签名
使用SHA256算法:对上一步骤得到的待签名串使用 SHA256 算法进行签名,得到的结果即为最终的签名值(signature 域的值)。
签名验证过程
步骤 1:生成待签名串
收集字段:从通用响应体中收集除 signature 以外的所有字段。 排序:将这些字段按照它们的键(Key)的 ASCII 码值进行排序。排序规则是比较每个键的字符,直到可以区分顺序。 拼接:使用 Key=Value 格式拼接这些字段,每个键值对之间用 & 符号连接。并将APP中获取的私钥,拼接在末尾,得到最终待签名串。
步骤 2:计算摘要
使用SHA-256算法:对步骤1得到的待签名串使用 SHA-256 算法计算摘要。
步骤 3:验证签名
判断计算出的摘要是否与数据返回的 signature 值相同,相同,则说明数据正确
基本信息
- 接口URL:POST http://{ip}:{port}/api/trade/create
- Content-Type: multipart/form-data
请求参数
Body 请求参数
参数名 | 是否必填 | 参数类型 | 描述说明 |
---|---|---|---|
uid | 是 | String | 账户ID |
orderNo | 是 | String | 订单编号 |
amount | 是 | String | 交易USDT数量 |
outNo | 否 | String | 外部订单编号 |
receiveAddress | 否 | String | 指定收款地址 |
signature | 是 | String | 签名,Autograph |
notifyUrl | 是 | String | 支付成功回调地址 |
redirectUrl | 是 | String | 支付成功跳转地址 |
查询交易
基本信息
- 接口URL:POST http://{ip}:{port}/api/trade/query
- Content-Type:multipart/form-data
请求参数
Body 请求参数
参数名 | 是否必填 | 参数类型 | 描述说明 |
---|---|---|---|
orderNo | 是 | String | 订单编号,orderNo和tradeNo,二选一上传。 |
tradeNo | 是 | String | 交易编号,orderNo和tradeNo,二选一上传。 |
关闭交易
基本信息
- 接口URL:POST http://{ip}:{port}/api/trade/close
- Content-Type:multipart/form-data
请求参数
Body 请求参数
参数名 | 是否必填 | 参数类型 | 描述说明 |
---|---|---|---|
orderNo | 是 | String | 订单编号,orderNo和tradeNo,二选一上传。 |
tradeNo | 是 | String | 交易编号,orderNo和tradeNo,二选一上传。 |
signature | 是 | String | 签名,Autograph |