代收业务
代收API文档
商户发起代收订单请求成功后,接口返回支付链接(PayURL),用户可直接跳转到该支付链接对应的收银台页面,付款完成支付流程。
代收下单
下单接口说明
| 请求头 | 请求头说明 |
|---|---|
| 请求URL地址 | 商户后台->开发配置,页面获取 |
| 请求方式 | POST |
| Content-Type | application/json |
| x-api-key | 商户后台->开发配置-> API Key 获取 |
| x-api-secret | 商户后台->开发配置-> API Secret 获取 |
下单参数说明
| 参数名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| MerchantNo | String | 是 | 商户自己的订单编号。 |
| NotifyURL | String | 是 | 商户自己的回调通知地址。订单状态变更后,平台向商户发送通知。 |
| Amount | Number | 是 | 订单金额,只支持整数 |
| UserName | String | 是 | 用户姓名 |
| UserEmail | String | 是 | 用户邮箱 |
| UserPhone | String | 是 | 合法的印度手机号(不要加+91) |
下单请求响应数据说明
| 参数名称 | 类型 | 描述 |
|---|---|---|
| code | Number | 返回码, 0 表示成功 |
| data | Any | 数据 |
| msg | String | 描述,可空 |
data 结构
| 参数名称 | 类型 | 描述 |
|---|---|---|
| OrderNo | String | 平台单号,需要商户方保存 |
| MerchantNo | String | 商户单号,从请求参数透传 |
| PayURL | String | 收银台支付链接 |
下单请求示例
curl --location 'https://{{pay_url}}/payin/create' \
--header 'x-api-key: q15qnt9h2j40wo4ohyu4' \
--header 'x-api-secret: vmbwmre3syslbh7fueuwy89p6afgaictcgovy4fvsnn54duhfbvj3sv50ttablu8' \
--header 'Content-Type: application/json' \
--data-raw '{
"MerchantNo": "abc_123456789",
"NotifyURL": "https://{{merchant_notify_url}}",
"Amount": 200,
"UserName": "jacky",
"UserEmail": "c@b.com",
"UserPhone": "9876543210"
}'
# 响应数据
# {
# "code": 0,
# "data": {
# "PayURL": "https://{{Cashier_Address}}?id=i-1748270794642733347000257&m=18",
# "OrderNo": "i-1748270794642733347000257",
# "MerchantNo": "abc_123456789"
# }
# }代收回调
接口说明
| 名称 | 值 | 描述 |
|---|---|---|
| Content-Type | application/x-www-form-urlencoded | HTTP请求内容类型 |
| 请求方法 | POST | HTTP请求方法 |
回调数据说明
| 参数名称 | 类型 | 参与签名 | 描述 |
|---|---|---|---|
| OrderNo | String | 是 | 平台单号,需要商户方保存 |
| MerchantNo | String | 是 | 商户单号,从请求参数透传 |
| Amount | String | 是 | 金额 |
| Status | String | 是 | 订单状态, 1 为成功, 0为处理中,其他为失败 |
| Nonce | String | 是 | 随机数(6-32) |
| UTR | String | 是 | 可空,订单有utr 时返回 |
| Sign | String | 否 | MD5签名,32位小写字母 |
签名方法
- 签名方法需使用 MD5 32位加密算法进行 HASH 运算
- 将参数值非空并且非NULL的参数按照参数名ASCII码从小到大排序,使用 key1=value1&key2=value2...&APISecret 格式拼接成字符串,最后拼接上密钥,MD5-32位签名后结果转为小写。
- 注意上面的字符串拼接最后的 APISecret 是直接拼接, 不是 key=value 格式,可以查看回调示例中关于签名的例子。
- 空值或者NULL的值为 ""
- 密钥从商户后台获取, 路径为:商户后台->开发配置-> API Secret
回调成功返回
- 商户接收到系统发送的回调通知后,返回 http 状态码 200 即可
- 商户在收到结果通知时,需要正确响应,如果不正确响应,平台会判定本次通知失败,并重新发送通知,直到成功为止(在通知一直不成功的情况下,平台总共会发起多次通知)。
回调示例
// 商户接收到的回调数据:
// Amount=200.00&MerchantNo=abc_123456789&Nonce=C1A4JPmFgVops&OrderNo=019705f1172c77bf90154048bbe22ded&Sign=138a16fae21abfe4be4f114d00860847&Status=1
var OrderNo = "019705f1172c77bf90154048bbe22ded";
var MerchantNo = "abc_123456789";
var Amount = "200.00";
var Nonce = "C1A4JPmFgVops";
var Status = "1";
var Sign = "138a16fae21abfe4be4f114d00860847";
var ApiSecret = "wtyu9j26dp2tm3t9o7ga4xjk6g5xte52htyub6e8u4uwyr1ttjq1fa50fpjs2pgn"; // Api Secret 密钥
// 按照参数名ASCII码从小到大排序
// 拼接后的字符串: Amount=200.00&MerchantNo=abc_123456789&Nonce=C1A4JPmFgVops&OrderNo=019705f1172c77bf90154048bbe22ded&Status=1&wtyu9j26dp2tm3t9o7ga4xjk6g5xte52htyub6e8u4uwyr1ttjq1fa50fpjs2pgn
// 拼接后的签名: 138a16fae21abfe4be4f114d00860847
// 商户验证签名后,进行后续操作
代收订单查询
查询接口说明
| 请求头 | 请求头说明 |
|---|---|
| 请求URL地址 | 商户后台->开发配置,页面获取 |
| 请求方式 | POST |
| Content-Type | application/json |
| x-api-key | 商户后台->开发配置-> API Key 获取 |
| x-api-secret | 商户后台->开发配置-> API Secret 获取 |
查询传参说明
| 参数名称 | 类型 | 参与签名 | 描述 |
|---|---|---|---|
| OrderNo | String | 是 | 平台订单号 |
查询响应数据说明
| 参数名称 | 类型 | 描述 |
|---|---|---|
| OrderNo | String | 平台单号 |
| MerchantNo | String | 商户单号 |
| Status | String | 订单状态, 1 为成功, 0为处理中,其他为失败 |
| Amount | Number | 支付金额 |
| UTR | String | 订单utr, 可空 |
查询请求示例
curl --location 'https://{{pay_url}}/payin/query' \
--header 'x-api-key: q15qnt9h2j40wo4ohyu4' \
--header 'x-api-secret: vmbwmre3syslbh7fueuwy89p6afgaictcgovy4fvsnn54duhfbvj3sv50ttablu8' \
--header 'Content-Type: application/json' \
--data '{
"OrderNo": "i-1748270794642733347000257"
}'
# 响应
# {
# "code": 0,
# "data": {
# "OrderNo": "i-1748270794642733347000257",
# "MerchantNo": "abc_123456789",
# "Amount": 200,
# "Status": "1"
# }
# }