加密货币支付接口
1878字约6分钟
说明
注意
阅读该接口文档前,务必先查看 接口说明
账户余额查询
URL:/common/openapi/account/balance
param 参数:
参数名 | 必选 | 固定值 | 说明 |
---|---|---|---|
country | 是 | UN | 国家编码 |
currency | 是 | USD | 币种 |
request
{
"param": {
"country": "UN",
"currency": "USD",
},
"sign": "Gw6D0kuWlnngLMiSxQQ2Dz2ciZz4LUZ7gWA8dRkEbcsE+UoiTOy6T3g6vNvGUlz+vPV2aRHKZ6aPBh0PaJkWW36T/lf8qId4D9uh8lFeTe7zW0+hTgTnN9YmruA6rlRNCo9QytbMRk6qkEZh1PZ2NrFnC77FhYVEVdOk6bIOv/vnGo1RVpbmsO+Gw+tPnvkQ1jvVDEHUlKgnAFGYa7+oWw8eClh9T4Ob7ZUPI0Z+dhefAmEX+z8DCyUxZrtbgA0li21KW2TmErIiRJQxep/f4quWRoTKkPziiMefKo1jFgbyL/gVzgkp91YaMMyk1QJKW1UoZ8iqHKNMI6pmvBCk8g=="
}
response
{
"code": 200,
"message": "",
"data": {
"merId": "",
"merName": "",
"currency": "",
"amountTotal": "0.00",
"freeAmount": "1085178690.00",
"unrecordedAmount": "0.00",
"freezeAmount": "1085178690.00",
"frzBal": "0.00",
"sign": "签名"
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
merId | string | 商户号 |
merName | string | 商户名称 |
currency | string | 币种 |
amountTotal | string | 总金额 |
freeAmount | string | 可用金额 |
unrecordedAmount | string | 在途金额 |
freezeAmount | string | 冻结金额 |
sign | string | 签名 |
代收接口
代收下单
此地址只用作一次性(临时)转账,且转账有效期为生成后的45分钟以内.
禁忌事项:
请不要保存地址做二次转账操作
请不要在过期后操作转账
URL:usdt/openapi/payIn
param参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
originalAmount | 是 | number | 交易金额 (小数点后尾数不带0, 例如: 禁止传输 123.40, 应传: 123.4) |
originalCurrency | 是 | string | 原始币种,大写,支持EUR,VND,IDR,PHP,MYR,THB 如不需要转换,请填写USDT |
convertedCurrency | 是 | string | 转换后的币种,固定值:USDT |
merchantOrderNo | 是 | string | 商户订单号 |
notifyUrl | 是 | string | 回调地址 |
timestamp | 是 | long | 交易时间戳(秒时间戳) |
redirectUrl | 是 | string | 重定向地址 |
remark | 否 | string | 备注 |
userId | 是 | long | 用户唯一ID(风控校验) , 非时间戳等无效数据, 需真实数据 |
clientType | 是 | string | 客户端类型,APP、WEB、WAP、MINIAPP、OTHERS |
request
{
"param": {
"amount": 1,
"merchantOrderNo": "3443093920230506526",
"notifyUrl": "http://xxx",
"timestamp": 1684591961
……
},
"sign": "111"
}
response
{
"code": 0,
"data": {
"merchantOrderNo": "",
"payUrl": "",
"plaOrderNo": "",
},
"message": ""
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
merchantOrderNo | string | 商户订单号 |
payUrl | string | 支付url |
plaOrderNo | string | 平台订单号 |
timestamp | string | 交易时间戳 |
代付接口
代付下单
简要描述:
- 创建代付订单
URL:usdt/openapi/payOut
请求方式:
POST
param参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
merchantOrderNo | 是 | string | 商户订单号 |
notifyUrl | 是 | string | 回调地址 |
amount | 是 | String | 交易金额 |
timestamp | 是 | long | 交易时间戳(秒时间戳) |
currency | 是 | String | 固定值:USDT |
address | 是 | String | 链地址 |
chain | 是 | String | 链类型,参考代收页面的链类型,如:TRX,ETH等 |
返回data参数说明
参数名 | 必选 | 类型 |
---|---|---|
merchantOrderNo | string | 商户订单号 |
plaOrderNo | long | 平台订单号 |
sign | string | 验签 |
status | string | 支付状态 |
timestamp | long | 交易时间戳(毫秒时间戳) |
订单回调通知
URL: 系统交易完成或余额不足时会发送回调到notify_url回调通知地址
响应: 接受请求后请返回“success”字符串给我们
请求方式:
- method: POST
- Content Type: application/json
body参数:
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单成功时为用户实际支付金额 |
fee | string | 手续费 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
merchantPayTime | string | 商户交易时间 |
plaOrderNo | long | 平台订单号 |
plaStatusTime | string | 平台订单状态流转时间 |
status | string | 支付状态('COMPLETED','FAILED') |
errorCode | string | 错误编码(status为FAILED时有值) |
errorMessage | string | 错误信息(status为FAILED时有值) |
sign | string | 签名使用平台公钥验签(取reqeust body里的数据,) |
product | string | 支付产品信息(非必有) |
request
{
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1223050839733260230",
"status": "COMPLETED",
"amount": "100000",
"merchantPayTime": "2023-05-08 11:14:01",
"plaStatusTime": "2023-05-08 11:14:30",
"fee": "200",
"sign": "bXE1dI7TrjmRvIGrcfgBqMKhSCsTAtvtoZBd4GIl6NQOqd/8qGudTmX3WJn37NX+v8ehaSGUNSa+4ocAzWQlNQMqJ/OH2Hd+mViXjR2+6n3q4WsvHTzoDGR0VT85jT2cjR421RnnzaC/eLy/02Zx/j7y2snodVnzi6L3RfiY2gM="
}
交易状态查询
URL:/usdt/openapi/orderStatus
param参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
plaOrderNo | 是 | Long | 平台订单号 |
request
{
"param": {
"plaOrderNo": 1223050839733260230
},
"sign": "111"
}
response — 订单成功
{
"code": 200,
"message": "操作成功",
"data": {
"merchantNo": "34430939",
"merchantOrderNo": "3443093920230506547",
"plaOrderNo": "1123050691235966790",
"channelCode": "boost",
"status": "FAILED",
"amount": "1",
"merchantPayTime": "2023-05-06 18:13:36",
"plaStatusTime": "2023-05-06 18:14:10"
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单成功时为用户实际支付金额 |
channelCode | string | 支付渠道 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
merchantPayTime | string | 商户交易时间 |
plaOrderNo | string | 平台订单号 |
plaStatusTime | string | 平台订单状态流转时间 |
status | string | 支付状态('PENDING','COMPLETED','FAILED') |
注意事项
币币地址支付在不同情景下的交易处理:(举例:以$20 交易价为例,有效支付时间是 30min):
(a)用户在 30min 内,支付$20
交易结果为成功”,链上广播之后(通常用户发起付款后几分钟,
看用户选择链的拥堵程度),直接把 crypto 划转到商户的账户里
商户收到一条“COMPLETED”状态信息,和实际到账金额回调信息
(b)用户 30min 没有足额支付
交易结果统统判定为失败
商户收到一条“FAILED”回调信息,和具体到账金额回调信息
(c)用户发起多笔转账,比如 30min 内支付$19 美金,30min 外支付$1 美金
那么交易结果为失败。但只要识别到链上结果,收到的$20
都会划转到商户的账户里。 商户需要自己判断,这笔订单到底算成功还是失败(因为
平台已经判定失败了)。后续发货或者退款也由商户来判断。
商户收到一条“COMPLETED”回调信息,到账$19 和$1 的回调信息
(d)用户发起多笔转账,比如 30min 内支付$19 美金,接近 30min 时候支付$1 美金
就要看链上该$1 美金的广播时间点是否在 30min 内、 30min 内算成功,30min 外
算失败。后续处理同 c 情境中的流程
成功的话收到一条“COMPLETED”状态信息,到账$19 和$1 的回调信息;
失败的话收到一条“COMPLETED”状态信息,到账$19 和$1 的回调信息;
(e)用户在 30min 内,支付任何超过$20 的金额, 例如一次性支付$21,或者先转了$20, 紧
接着又转了$10
交易结果为成功“COMPLETED”,链上广播之后(通常用户发起付款后几分钟,
看用户选择链的拥堵程度),直接把 crypto 划转到商户的账户里。后续发货或者退款
也由商户来判断。
商户收到一条“COMPLETED”状态信息,和到账金额回调信息
(f)用户在 30min 外,支付任何超过$20 的金额, 例如$21, 则交易结果判定为失败
链上广播之后(通常用户发起付款后几分钟,看用户选择链的
拥堵程度),直接把 crypto 划转到商户的 Gate 账户里。后续发货或者退款也由商户来判
断。
失败的话收到一条“COMPLETED”状态信息,到账$21 的回调信息;
地址支付回调信息 统一在用户足额支付资金后,发送一次回调信息。
回调信息就包含了 实际到账金额 和 订单状态变更
商家通过包含了 订单状态变更 及 实际到账金额 的 回调信息,来判断是否发货或者退款。
回调信息发生在:
1.有效期内只要足额支付成功,就会实时发送回调信息(不用等订单过了有效期)。
即使支付多笔才足额,只要足额后就会实时回调给商户;
2.有效期内支付多笔都还没有足额,就会等有效期过后,统一一次回调商户。
只要有金额支付,都会回调COMPLETED和实际支付金额(与订单金额可能有差异)
否则,即为失败