创建收银台订单
API EndPoint
POST baseUrl
+ /api/payDesk
聚合收银台聚合了所有开通的代收支付方式。
请求参数
HTTP请求体
参数名 | 必选 | 类型 | 字段说明 | 示例值 |
---|---|---|---|---|
currency | Y | string(32) | 货币代码(CLP ) | CLP |
amount | Y | decimal(20,2) | 金额1000-5000000 | 10000 |
reusableStatus | Y | boolean | (false=不允许 true=允许) 该字段智利无效 | false |
mchOrderNo | Y | string(32) | 商户订单号(不允许重复) | 1386556787811426305 |
expireTime | Y | long | 收银台链接过期时间 单位/秒 | 3600 |
notifyUrl | Y | string(250) | 回调地址 | https://merchant.com/webhooks |
nonceStr | Y | string(32) | 随机字符串 | 1863484722378907648 |
realName | Y | string(64) | 付款人姓名 ,不做真实性校验限制最长64个字符 | Jack |
phone | Y | string(32) | 付款人手机号 ,用户真实手机号 | 9712345678 |
email | Y | string(64) | 付款人邮箱 ,请尽量提供真实邮箱地址 | example@maildomain.com |
idType | Y | string(32) | 代收付款人证件类型 | 请参考代收付款人证件类型 |
idCard | Y | string(32) | 付款人证件号 ,会进行格式校验 | 例如:11.111.111-1 |
remark | Y | string(32) | 备注 (请使用英文字符或不带重音的西语) | remark |
returnUrl | N | string(250) | 同步跳转地址(预留字段,暂不生效,支付成功后会跳到商户指定页面) | https://merchant.com/jump |
TIP
请注意,当选择使用MACH等电子钱包支付方式时,我们会返回渠道的支付落地页,渠道有可能会根据用户的设备环境来选择展示二维码或者直接拉起APP支付,如果您采用了APP内嵌webview技术方案渲染页面,请注意兼容处理URL SCHEME拉起App支付的逻辑。
请求示例
bash
curl -L 'baseUrl/api/payDesk' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":1000,"idType":1,"mchOrderNo":"24120966963","idCard":"154175105","remark":"payment","nonceStr":"1733739205347","realName":"CRISTIAN ALEJANDRO","reusableStatus":false,"expireTime":86399,"phone":"9728034619","notifyUrl":"https://test.com/clcashy/payin-notify","currency":"CLP","email":"D850@gmail.com"}'
响应参数
参数名 | 类型 | 参数说明 |
---|---|---|
merchantId | int | 商户Id |
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
amount | decimal(20,2) | 金额 |
payUrl | string(250) | 收银台页面地址 |
expireTime | date | 收银台页面过期时间 |
响应示例
json
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "24120966963",
"orderNo": "PAYDESKxxxxxxxxxxxxx1",
"payUrl": "https://test.cashypay.com/index.html?PAYDESKxxxxxxxxxxxxx1",
"amount": "1000",
"expireTime": "2024-12-10 06:13:24"
}
}
查询收银台订单
查询收银台订单
API EndPoint
POST baseUrl
+ /api/payDeskQuery
请求参数
参数名 | 必选 | 类型 | 示例值 | 字段说明 |
---|---|---|---|---|
mchOrderNo | N | string(32) | 1386556787811426305 | 商户订单号 |
orderNo | N | string(32) | PAYIN8551844049125523456 | 平台订单号 |
nonceStr | Y | string(32) | 1863484722378907648 | 随机字符串 |
TIP
我们建议优先使用orderNo(平台订单号),平台订单号和商户订单号至少需要传递一个。
请求示例
bash
curl -L 'baseUrl/api/payDeskQuery' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d ' {"mchOrderNo":"202411301909131862936942783582208","nonceStr":"1138688daof9gnay3dt9j4wktxt1z99ww"}'
响应参数
参数名 | 类型 | 字段说明 |
---|---|---|
merchantId | int | 商户Id |
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
payUrl | string(250) | 付款二维码,有些方式有二维码QRIS |
amount | decimal(20,0) | 金额 |
fee | decimal(20,4) | 手续费 |
orderStatus | string(32) | 代收订单状态枚举 |
completionTime | date | 完成时间 |
响应示例
json
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "3002112",
"mchOrderNo": "202411301909131862936942783582208",
"orderNo": "PAYDESK39568551277959484616704",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK39568551277959484616704",
"amount": "1000000",
"fee": "0",
"orderStatus": "PAYING",
"completionTime": null,
"nonceStr": null
}
}
收银台订单结果通知
通知地址由商户提供
POST Merchant NotifyUrl
异步通知请求参数
参数名 | 类型 | 说明 |
---|---|---|
mchOrderNo | string(32) | 商户订单号 |
orderNo | string(32) | 平台订单号 |
amount | decimal(20,2) | 金额 |
fee | decimal(20,4) | 手续费 |
payUrl | string(32) | 收银台Url |
orderStatus | string(32) | 收银台代收订单状态枚举 |
completionTime | date | 完成时间 |
nonceStr | string(32) | 随机字符串 |
异步通知请求示例
bash
curl -L 'merchant.com/webhooks/paydesk' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":358320.00,"completionTime":"2024-12-02 12:07:06","fee":2500.0000,"mchOrderNo":"1313068703462109184","merchantId":"1002001","nonceStr":"1733116026894","orderNo":"PAYDESK27618551850988355260416","orderStatus":"SUCCESS","payCode":"OR.GPNQR..INOPROID_BS","payType":"41","payUrl":"https://payurl.com"}'
json
{
"amount": 358320.0,
"completionTime": "2024-12-02 16:08:32",
"fee": 9083.0,
"mchOrderNo": "1313068703462109184",
"merchantId": "1002001",
"nonceStr": "1733130512894",
"orderNo": "PAYDESK27618551850988355260416",
"orderStatus": "SUCCESS",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK27618551850988355260416"
}
json
{
"amount": 358320.0,
"completionTime": "2024-12-02 16:08:32",
"fee": 9083.0,
"mchOrderNo": "1313068703462109184",
"merchantId": "1002001",
"nonceStr": "1733130512894",
"orderNo": "PAYDESK27618551850988355260416",
"orderStatus": "FAIL",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK27618551850988355260416"
}
TIP
当回调响应HTTP状态码为200、301或302时,我们认为商户已经成功接收并处理回调, 其它状态我们会认为商户处理回调失败。
回调失败后会在1,2,4,8,16,32,64,128,256,512分钟
重试,一共重试回调10次