创建代收订单
API EndPoint
POST baseUrl
+ /api/payIn
请求参数
参数名 | 必选 | 类型 | 字段说明 | 示例 |
---|---|---|---|---|
currency | Y | string(32) | 货币代码 | IDR |
payType | Y | int | 代收支付产品编号 | 代收PayType枚举 |
amount | Y | decimal(20,0) | 金额 | 最低10000 |
reusableStatus | Y | boolean | 是否多次支付 | 目前只能是false |
mchOrderNo | Y | string(32) | 商户订单号 | |
expireTime | Y | long | 过期时间 | (单位:秒)默认3600秒 部分支付产品支持 |
notifyUrl | Y | string(250) | 回调地址 | https://merchant.com/webhooks |
nonceStr | Y | string(32) | 随机字符串 | |
remark | Y | string(32) | 备注 | 请使用英文字符或不带重音的西语 |
realName | Y | string(64) | 用户姓名 | |
phone | N | string(32) | 用户手机号 | |
email | N | string(64) | 用户邮箱 |
TIP
请注意,当选择使用电子钱包支付方式时,我们会返回渠道的支付落地页,渠道有可能会根据用户的设备环境来选择展示二维码或者直接拉起APP支付,如果您采用了APP内嵌webview技术方案渲染页面,请注意兼容处理URL SCHEME拉起App支付的逻辑。
请求示例
curl -L 'baseUrl/api/payIn' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"realName":"Reza Wijaya","amount":"20000.00","reusableStatus":false,"payType":"43","expireTime":3600,"mchOrderNo":"1386556787811426305","notifyUrl":"https://merchant.com/webhooks/payin","currency":"IDR","remark":"Electronic Cigarettes","nonceStr":"16a5a70f43384134bfae33acc77132e0"}'
2
3
4
5
响应参数
参数名 | 类型 | 说明 |
---|---|---|
merchantId | long | 商户Id |
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
amount | decimal(20,0) | 金额 |
orderFee | decimal(20,0) | 手续费 |
payCode | string(32) | 付款账户VA/QRIS原始二维码文本/QIRS 二维码网络图片/QRIS Base64格式二维码 |
payUrl | string(250) | 付款链接 |
payDeskUrl | string(250) | 收银台支付地址-推荐 |
响应示例
TIP
如果您用的支付产品是QRIS(payType=41),并且选择自己生成QRIS图片,请优先使用payCode字段,此字段受制于上游渠道限制,可能存在三种返回值
- QRIS原始二维码文本
00020101021226670016COM.XXXXBANK.COM01189360050300000908970214557141290981760303UKE51370014ID.CO.QRIS.WWW0215ID2024357755824520473795303360540820000.005802ID5911Artha Tekno6015JAKARTA SELATAN61051271062270108M7KZZ27Q0703A010804POSP6304F72B
- QRIS的网络图片地址
https://xxxxx.qris.com/abc.png
- Base64图片格式的QIRS二维码
data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=20241202111212800110166154827",
"payDeskUrl": "https://m.dana.id/link/pay?bizNo=20241202111212800110166154827",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "00020101021226670016COM.XXXXBANK.COM01189360050300000908970214557141290981760303UKE51370014ID.CO.QRIS.WWW0215ID2024357755824520473795303360540820000.005802ID5911Artha Tekno6015JAKARTA SELATAN61051271062270108M7KZZ27Q0703A010804POSP6304F72B",
"payUrl": "",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "https://m.qris.id/link/pay?bizNo=20241202111212800110166154827.jpg",
"payUrl": "https://m.qris.id/link/pay?bizNo=20241202111212800110166154827.jpg",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC",
"payUrl": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "Payin_Order_Error",
"code": 500
}
2
3
4
查询代收订单
API EndPoint
POST baseUrl
+ /api/payInQuery
请求参数
参数名 | 必选 | 类型 | 示例值 | 字段说明 |
---|---|---|---|---|
mchOrderNo | N | string(32) | 1386556575370063873 | 商户订单号 |
orderNo | N | string(32) | PAYIN8551843837024997376 | 平台订单号 |
nonceStr | Y | string(32) | 9459931608 | 随机字符串 |
TIP
我们建议优先使用orderNo(平台订单号),平台订单号和商户订单号至少需要传递一个。
请求示例
curl -L 'baseUrl/api/payInQuery' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"mchOrderNo":"1386556575370063873","nonceStr":"9459931608","orderNo":"PAYIN8551843837024997376"}'
2
3
4
5
响应参数
参数名 | 类型 | 字段说明 |
---|---|---|
merchantId | int | 商户Id |
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
channelOrderNo | string(32) | 渠道订单号 |
payType | string(32) | 代收PayType枚举 |
payCode | string(32) | 支付码 |
payUrl | string(250) | 付款二维码 |
amount | decimal(20,0) | 金额 |
fee | decimal(20,4) | 手续费 |
orderStatus | string(32) | 代收订单状态枚举 |
completionTime | date | 完成时间 |
响应示例
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556575370063873",
"orderNo": "PAYIN8551843837024997376",
"payType": "43",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=202412021112128001101660361270",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551843837024997376",
"amount": "20000",
"fee": "1700",
"orderStatus": "PAYING",
"completionTime": null,
"nonceStr": null
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556575370063873",
"orderNo": "PAYIN8551843837024997376",
"payType": "43",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=202412021112128001101660361270",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551843837024997376",
"amount": "20000",
"fee": "1700",
"orderStatus": "SUCCESS",
"completionTime": "2024-12-02 15:40:50",
"nonceStr": null
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
代收订单结果通知
通知地址由商户提供
POST Merchant NotifyUrl
异步通知请求参数
参数名 | 类型 | 说明 |
---|---|---|
merchantId | int | 商户Id |
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
channelOrderNo | string(32) | 渠道订单号 |
payType | string(32) | 代收PayType枚举 |
payCode | string(32) | 支付码 |
payUrl | string(250) | 付款二维码 |
amount | decimal(20,0) | 金额 |
fee | decimal(20,4) | 手续费 |
orderStatus | string(32) | 代收订单状态枚举 |
completionTime | date | 完成时间 |
异步通知请求示例
curl -L 'merchant.com/webhooks/payin' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":20000.00,"completionTime":"2024-12-02 12:07:06","fee":2500.0000,"mchOrderNo":"1386503284355244033","merchantId":"1002001","nonceStr":"1733116026894","orderNo":"PAYIN8551790545658687488","orderStatus":"SUCCESS","payCode":"OR.GPNQR..INOPROID_BS","payType":"41","payUrl":"https://payurl.com"}'
2
3
4
5
{
"amount": 20000.0,
"completionTime": "2024-12-02 12:07:06",
"fee": 2500.0,
"mchOrderNo": "1386503284355244033",
"merchantId": "1002001",
"nonceStr": "1733116026894",
"orderNo": "PAYIN8551790545658687488",
"orderStatus": "SUCCESS",
"payCode": "OR.GPNQR..INOPROID_BS",
"payType": "41",
"payUrl": "https://payurl.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
{
"amount": 20000.0,
"completionTime": "2024-12-02 12:07:06",
"fee": 2500.0,
"mchOrderNo": "1386503284355244033",
"merchantId": "1002001",
"nonceStr": "1733116026894",
"orderNo": "PAYIN8551790545658687488",
"orderStatus": "FAIL",
"payCode": "OR.GPNQR..INOPROID_BS",
"payType": "41",
"payUrl": "https://payurl.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
TIP
当回调响应HTTP状态码为200、301或302时,我们认为商户已经成功接收并处理回调, 其它状态我们会认为商户处理回调失败。
回调失败后会在1,2,4,8,16,32,64,128,256,512分钟
重试,一共重试回调10次