签名算法
设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
特别注意以下重要规则:
- 所有主动请求/返回 ,均为 POST
- 参数名ASCII码从小到大排序(字典序)
- 如果参数的值为空不参与签名
- 所有字段名必须小写
- MD5Key可以在商户后台看到或者联系在线客服获取
- 得到签名内容sign = MD5(字段1=值1&字段2=值2&字段3=值3…&key=MD5Key)
- 签名内容需要转成全部小写
- 必填字段参与签名
- 参与签名的字段进行自然排序升序
如请求支付系统参数如下:
public function paypubSign($data, $MD5Key){
$signPars = "";
ksort($obj);
foreach ($data as $k => $v) {
if ("" != $v && "sign" != $k) {
$signPars .= $k . "=" . $v . "&";
}
}
$signPars .= "key=" .$MD5Key;
$sign = md5($signPars);
return $sign;
}
通道列表
通道名称 | 类型 | 说明 | 成功率 | 状态 |
---|---|---|---|---|
中国TRC20 | cny | 下单人民币充值数字货币 | 99% | 开启 |
中国ERC20 | cny | 下单人民币充值数字货币 | 99% | 开启 |
越南TRC20 | vnd | 下单越南盾充值数字货币 | 99% | 开启 |
越南ERC20 | vnd | 下单越南盾充值数字货币 | 99% | 开启 |
越南银行卡和扫码 | vnd | 越南银行卡转账和扫码 | 96% | 关闭 |
越南zalo | vnd | 越南zalo支付 | 96% | 关闭 |
越南VIETTEL | vnd | 越南viettel 支付 | 96% | 关闭 |
越南MOMO | vnd | 越南momo 支付 | 96% | 关闭 |
代收请求参数
统一下单 接口:v2/order/create
参数名 | 类型 | 必填/签名 | 说明 |
---|---|---|---|
customerno | string | 是/是 | 商户号 |
type | string | 是/是 | 渠道类型 |
ordersn | string(12-26) | 是/是 | 订单号(商户端唯一订单号) |
money | string | 是/是 | 订单金额(元)例如:10.00 |
currency | string | 是/否 | 货币cny,vnd,默认:CNY |
payee | string | 是/是 | 会员账号,游戏账号 |
backurl | string | 是/是 | 通知地址 |
devicetype | string | 是/是 | 下单设备类型 (默认web) |
usernotecontent | string | 是/是 | 订单备注 |
sign | string | 是/否 | 签名 |
返回结果:
{
"code":"01",
"msg":"success",
"time":"1559630273",
"data":{
"payurl":"https://payexample.com/pay?pc_hash=asdjashdkhaskdhkashdkhksad",
"ordersn":"201254789986755390789715",
"currency":"cny",
"commissionFee": "1.25",
"orderamount": "10000.00"
}
}
参数名 | 类型 | 说明 |
---|---|---|
code | int | 支付状态(01为调用支付成功) |
msg | string | 状态说明 |
time | int | 返回时间戳 |
data | 以下是 data 数据说明 | |
payurl | string | 支付跳转地址或者二维码地址 |
ordersn | string | 支付订单号 |
currency | string | 货币 |
commissionFee | string | 订单费率 |
orderamount | string | 支付金额(元)例如:10.00 |
异步通知:
在完成支付后,平台会根据支付请求时提交的 backurl 字段内的地址,将支付结果以及签名一起GET给到商户的backurl
参数名 | 类型 | 说明 |
---|---|---|
customerno | int | 商户订单号 |
addtime | string | 返回时间戳明 |
orderamount | string | 订单金额 |
paystatus | string | 订单状态 状态为success时支付成功,其他为支付失败 |
customerbillno | string | 支付订单号 |
sign | string | MD5签名值,详见 签名算法 |
商户返回说明:
在收到天旺支付通知后,请返回success,如果天旺支付无法对于GET收到success的情况下,会一直推送通知5次直到接受到success为止
代付请求参数
统一下单 接口:v2/repay/create
参数名 | 类型 | 必填/签名 | 说明 |
---|---|---|---|
customerno | string | 是/是 | 商户号 |
type | string | 是/是 | 渠道类型:repay,trc20,erc20 |
ordersn | string(12-26) | 是/是 | 订单号(商户端唯一订单号) |
money | string | 是/是 | 订单金额(元)例如:10.00 |
backurl | string | 是/是 | 通知地址 |
devicetype | string | 是/是 | 下单设备类型 (默认web) |
usernotecontent | string | 是/是 | 订单备注 |
如果使用 | repay 就必填 下面数据 | ||
bankName | string | 是/是 | 银行名称 |
cardName | string | 是/是 | 户名称 |
cardNo | string | 是/是 | 卡号 |
branchName | string | 是/是 | 开户行支行 |
如果使用 | trc20,erc20 就必填 下面数据 | ||
uaddr | string | 是/是 | 货币收款地址 |
sign | string | 是/否 | 签名 |
返回结果:
{
"code":"01",
"msg":"success",
"time":"1559630273",
"data":{
"ordersn":"201254789986755390789715",
"commissionFee": "1.25",
"orderamount": "10000.00"
}
}
参数名 | 类型 | 说明 |
---|---|---|
code | int | 支付状态(01为调用支付成功) |
msg | string | 状态说明 |
time | int | 返回时间戳 |
data | 以下是 data 数据说明 | |
ordersn | string | 支付订单号 |
commissionFee | float | 提现费率 |
orderamount | string | 提现金额(元)例如:10.00 |
异步通知:
在完成支付后,平台会根据支付请求时提交的 backurl 字段内的地址,将支付结果以及签名一起GET给到商户的backurl
参数名 | 类型 | 说明 |
---|---|---|
customerno | int | 商户订单号 |
addtime | string | 返回时间戳明 |
orderamount | int | 订单金额 |
paystatus | string | 订单状态 状态为success时支付成功,其他为支付失败 |
customerbillno | float | 支付订单号 |
sign | decimal | MD5签名值,详见 签名算法 |
商户返回说明:
在收到天旺支付通知后,请返回success,如果天旺支付无法对于GET收到success的情况下,会一直推送通知5次直到接受到success为止
订单查询
查询 接口:v2/query
参数名 | 类型 | 必填/签名 | 说明 |
---|---|---|---|
customerno | string | 是/是 | 商户号 |
type | string | 是/是 | 订单类型【代付:repay,代收:order】 |
customerbillno | string | 是/是 | 商户订单号 |
sgin | string | 是/否 | 查询签名 |
返回结果:
{
"code":"01",
"msg":"查询成功",
"time":"1559627124",
"data":{
"customerno":"A58975565",
"customerbillno":"2012547899867553907897",
"paystatus":"SUCCESS",
"commissionFee":"300.00",
"proorderamount":"10000.00"
}
}
查询返回:
参数名 | 类型 | 说明 |
---|---|---|
code | string | 请求是否成功 |
msg | string | 请求返回描述 |
time | string | 请求时间戳 |
data | 以下是 data 数据说明 | |
customerno | string | 商户号 |
customerbillno | string | 商户订单号 |
paystatus | string | success:支付成功 pending:等待支付 |
commissionFee | string | 费率 |
proorderamount | string | 金额 |
余额查询
查询 接口:v2/balance
参数名 | 类型 | 必填/签名 | 说明 |
---|---|---|---|
customerno | string | 是/是 | 商户号 |
type | string | 是/是 | 余额类型【all,usdt】 |
sgin | string | 是/否 | 签名 |
返回结果:
{
"code":"01",
"msg":"查询成功",
"time":"1559627124",
"data":{
"customerno":"A58975565",
"balance":"50.00"
}
}
查询返回:
参数名 | 类型 | 说明 |
---|---|---|
code | string | 请求是否成功 |
msg | string | 请求返回描述 |
time | string | 请求时间戳 |
data | 以下是 data 数据说明 | |
customerno | string | 商户号 |
balance | string | 余额 |