XXXXPAY代收付文档
1.基本说明
(1)数据格式。所有请求和返回都采用POST,数据格式都是JSON。
服务器返回的数据格式为:
{
code:xx, //表示成功或者失败,0表示处理成功,非0表示失败,
msg:xxx, //成功返回success,失败返回失败原因
data:xxx //真正有用的交互数据,是一个JSON对象,异步通知时
会带上签名sign,只有data里面的数据参与签名。
}
(2)签名。对于所有待签名参数,对所有参数{key=value}采用字典序排序,然后以&符号拼接成一个字符串source,最后拼上md5_key,source与md5_key之间不需要任何符号相连。对于异步通知的回调,请勿采用写死参数的方式来验证签名,由于系统的更新,可能会有参数的增减,请对所有参数进行动态排序再签名。
示例,待签名参数:
{
merchNo:”tom”,
orderNo:”11111”,
amount:”100.00”,
currency:”INR”,
}
source=”amount=100.00¤cy=INR&merchNo=tom&orderNo=11111”
sign=MD5(source + md5_key)
(3)异步通知。代收和代付都会有异步通知。异步通知地址请在商户后台提前设置, 否则没有通知。代收仅通知成功的订单;代付无论订单是失败还是成功,都会有通 知。
(4)订单状态。
orderState
0
初始化
1
成功
2
失败
3
处理中
4
关闭
5
打款退回
2. 代收
2.1 代收下单
请求地址: 商户对接API/api/payIn
参数列表:
merchNo
商户号
String
Y
orderNo
订单号
String(10,35)
Y
amount
金额,如100.00
String
Y
currency
币种
String
Y
sign
签名
String
Y
Request body:
{
"amount":"100.00",
"orderNo":"11111",
"merchNo":"tom",
"sign":"fb66a23f90594e0b6d382ea881d8809f",
"currency":"INR",
}
Success Response Body:
{
"msg":"success",
"code":0,
"data":{
"amount":"100.00",
"orderNo":"11111",
"code_url":"http://abc.com", //支付地址\
"merchNo":"tom",
"sign":"2ddd056fec77842acc1f7c022a4641f6",
"currency":"INR"
}
}
Fail Response Body:
{
“code” : 500,
“msg” : “下单失败!”
}
2.2 代收异步通知
如果订单支付成功,会以POST方式通知到商户后台设置的代收通知地址。
{
"code":0,
“msg”:”success”,
"data":{
"realAmount":"100.00", //实际支付金额
"amount":"100.00",
"businessNo":"9999999", //平台订单号 UTR
"orderNo":"11111",
"merchNo":"tom",
"sign":"2ff91e80776eaee5d68fc0cf4b4faae1",
"orderState":"1"
}
}
商户收到异步通知后,返回 "ok" 字符串以证明收到通知,否则系统将会进行多次通知。
(代收请以订单金额amount回调,不是真实金额realmoAmount。因为有时候我们会给玩家优惠)
2.3 代收查询
请求地址商户对接API/api/payIn/query
请求参数:
merchNo
商户号
String
Y
orderNo
商户订单号
String
Y
sign
签名
String
Y
Request body:
{
"orderNo":"11111",
"merchNo":"tom",
"sign":"0b6d3f90594e3821d8809ffb66a2ea88"
}
Success Response Body:
{
"code":0,
“msg”:”success”,
"data":{
"amount":"100.00",
"businessNo":"9999999", //平台订单号 UTR
"orderNo":"11111",
"merchNo":"tom",
"sign":"2ff91e80776eaee5d68fc0cf4b4faae1",
"orderState":"1"
}
}
Fail Response Body:
{
“code” : 500,
“msg” : “订单不存在!”
}
3. 余额查询
请求地址:商户对接API/api/balance
请求参数:
merchNo
商户号
String
Y
timestamp
时间戳毫秒
String
Y
currency
币种
String
Y
sign
签名
String
Y
Request body:
{
"currency":"INR",
"merchNo":"tom",
“timestamp”:”1696514427876”
"sign":"4fff69664b1c76d3d37d852e192113a1"
}
Success Response Body:
{
"code":0,
“msg”:”success”,
"data":{
"currency":"INR",
"balance":"8888.00",
"merchNo":"tom"
}
}
Fail Response Body:
{
“code” : 500,
“msg” : “INR not exist!”
}
4. 代付
4.1 代付下单
请求地址:商户对接API/api/payOut
参数列表:
merchNo
商户号
String
Y
orderNo
订单号
String(10, 35)
Y
amount
金额,如900.00
String
Y
currency
币种
String
Y
acctName
收款人姓名
firstName@lastName
Y
acctCode
银行编码/IFSC/GCASH/ PAYMAYA
String
Y
acctNo
银行账号/GCASH/PAYMAYA/UPI等账号
String
Y
mobile
收款人手机
String
Y
sign
签名
String
Y
Request Body:
{
"amount": "100.00",
"orderNo": "22222",
"merchNo": "tom",
"acctCode": "GCASH",
"mobile": "09678888898",
"acctNo": "09064321778",
"acctName": "james@bron",
"sign": "48418c2213eddf85f89c77471557de1a",
"currency": "INR"
}
Success Response Body
{
"code": 0,
"msg": "代付订单已受理!",
"data":
{
"amount": "100.00",
"orderNo": "22222",
"merchNo": "tom",
“orderState”: “0”
}
}
Fail Response Body:
{
“code” : 500,
“msg” : “下单失败!”
}
4.2 代付回调
代付最终处理结果会以POST方式, 通知到商户在后台设置的代付通知地址,商户需要返回 "ok" 字符串证明收到通知,否则系统会多次进行通知。
Request body:
{
"code":0,
“msg”:”success”,
"data":{
"amount":"100.00",
"businessNo":"8888888", //平台订单号,仅成功订单才有
"orderNo":"22222",
"merchNo":"tom",
"sign":"d6a7d013c500bf7addcc336cba5b5bb9",
"orderState":"1",
“msg”:”accountNo error” //失败原因,仅在失败订单出现
}
}
4.3 代付查询
请求地址:商户对接API/api/payOut/query
请求参数:
merchNo
商户号
String
Y
orderNo
商户订单号
String
Y
sign
签名
String
Y
Request body:
{
"orderNo":"22222",
"merchNo":"tom",
"sign":"e43a19e73a2fd6cac1d85dd1dea3c5d9"
}
Success Response Body:
{
"code":0,
“msg”:”success”,
"data":{
"amount":"100.00",
"businessNo":"8888888", //平台订单号,仅成功订单才有
"orderNo":"22222",
"merchNo":"tom",
"sign":"d6a7d013c500bf7addcc336cba5b5bb9",
“msg”:”accountNo error” //失败原因,仅在失败订单出现
"orderState":"1"
}
}
Fail Response Body:
{
“code” : 500,
“msg” : “订单不存在!”
}
Last updated