合单支付-统一下单
合单支付,提供将多个商户的订单合并为一个订单进行支付的能力,即用户只需输入一次密码,便可完成多笔订单的支付。支付成功后,资金将进入各个订单对应的商户账户中。
下单、查单、关单接口和支付通知以母单的维度进行处理。母单状态为支付成功时,代表所有子单支付成功。所有子单支付成功时才会进行支付回调通知。
退款、分账以子单的维度进行处理。
接口说明
请求方式:
posthttps://p.wecard.tencent.com/cloudpay/v1/pay/combine_unified_order
请求参数
Request
Body 包体
ChannelMerchantId必填
string
业务线ID
最小长度:1 最大长度:50
CombineOrderId必填
string
母单ID
最小长度:6 最大长度:60
PayType必填
string
支付场景:
SWIPE:被扫;
MINI_PROGRAM:小程序;
PUBLIC:公众号;
PC:网页支付;
APP:app支付;
H5:h5支付;
AGREEMENT:快捷支付;
AUTHORIZE:免密支付;
NATIVE_QR:订单码;
最小长度:1 最大长度:50
PayChannel必填
string
支付渠道;实际支付渠道,根据具体接入的通道传值:如:
ALIPAY: 支付宝;
WXPAY:微信支付;
UNIONPAY:银联支付;
WALLETPAY:储值支付
最小长度:1 最大长度:30
ExpireTime选填
string
订单过期时间,格式:2023-03-05 11:54:20。
不传则默认30分钟,若在过期时间之前未完成支付,订单将会流转为失败,不可再进行支付。
最小长度:1 最大长度:19
NotifyUrl选填
string
支付成功后的回调地址
最小长度:1 最大长度:255
FrontUrl选填
string
用户支付成功后,前端跳转URL
最小长度:1 最大长度:255
ExternalPaymentData选填
string
支付渠道扩展字段,第三方通道的扩展信息,根据具体对接的渠道情况传值;
该字段为 json 序列化之后的字符串,参考右侧请求示例;
如:微信、支付宝下单时需要将用户的openid或userid,及应用id传入,结构如下
最小长度:1 最大长度:1024
StoreInfo选填
object
门店信息
SceneInfo选填
object
【场景信息】支付场景描述。
Attachment选填
string
附加信息,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段
最小长度:1 最大长度:128
Remark选填
string
付款备注
最小长度:1 最大长度:128
SubOrders必填
array
子订单数组
数组子类型:object
{
"ChannelSubMerchantId": "CM6756531983210274560",
"TotalAmount": 1000,
"PayChannel": "WXPAY",
"PayType": "MINI_PROGRAM",
"OrderSubject": "杂粮煎饼",
"OutOrderId": "demo202211200001",
"NotifyUrl": "https://business.com/pay/notify",
"ExternalPaymentData": "{\"WxAppId\":\"wx43f1t4567721a03e\",\"WxOpenId\":\"oXLUp5OHJof5768CoFFDuuaRn8kc\"}",
"Currency": "CNY",
"Attachment": "原路返回string",
"SceneInfo": {
"DeviceType": "04",
"PayerClientIp": "14.15.16.17",
"DeviceId": "00000001",
"Longitude": "+121.48352",
"latitude": "+23.561345"
},
"Remark": "备注",
"SubOrders": [
{
"ChannelSubMerchantId": "CM465922975711959341",
"OutOrderId": "unittest1601940939456776",
"OrderSubject": "商品1",
"TotalAmount": 20,
"ProfitShareFlag": "API_PROFIT_SHARE",
"ProfitShareInfoList": [
{
"PayeeId": "PE462771186506407098",
"InChannelSubMerchantId": "CM123456",
"ProfitType": "AMOUNT",
"ProfitAmount": 5,
"ChannelSubMerchantId": "CM453726693345990015",
"IsFeeCovered": true,
"Freeze": true,
"AutoUnfreezePeriod": "D3"
},
{
"PayeeId": "PE462771261534117050",
"ProfitType": "AMOUNT",
"ProfitAmount": 5,
"ChannelSubMerchantId": "CM453726693345990016"
}
],
"GoodsTag": "GoodsTag1"
},
{
"ChannelSubMerchantId": "CM465922975711959342",
"OutOrderId": "unittest1601940939456777",
"OrderSubject": "商品2",
"TotalAmount": 30,
"ProfitShareFlag": "API_PROFIT_SHARE",
"GoodsTag": "GoodsTag2"
}
]
}
返回参数
Response
200 OK
Response必填
object
{
"Response": {
"RequestId": "A8E7B797ADD44C3AA57E87AD7420A725",
"Result": {
"CombineOrderId": "OUT2022111900000004",
"TotalAmount": "1000",
"OrderStatus": "PAYING",
"PayInfoType": "JSAPI",
"PayInfo": "{\"appId\":\"wxad53ca7fbb5gg5f2\",\"timeStamp\":\"1681867396\",\"nonceStr\":\"94981e22ac0b4663949a442f31739b53\",\"package\":\"prepay_id=wx190923168532565900979a7da2170000000\",\"signType\":\"RSA\",\"paySign\":\"rhOR5lnhv6w2asdMiqRHU/aEZjhk1J4fGT2/Z5vxqtNcaLyHYmqDiIZZqxlSgSibWb/Z1a8SJdzLH9u0nnBKa0u0wtVaXgB6WKUahYtwQZC2ZadaYj6AkAeKLRIUHObVgAClbiiaiUjiaC9JUhj11m7JkClwpRvJkXQi4QzTdjA+kYv+32cgUido8SWIt6WZZXyH1qJTG1rYJC8IeUMgktH8oOoGzlxpaJbgB41j+pBd10b4R4DExlJ+KWP7N8iPj5YrbIzGJ2MsZ8L2U0jKLjpfKF/3d4hsc4or7EKIXdffgsreedaW6JzZ77gyb5ounChaea6CEP1UpUUAvgrkJwgw==\"}"
},
"ErrCode": "SUCCESS",
"ErrMessage": "成功"
}
}
ExternalPaymentData 结构
变量 | 类型 | 是否必填 | 描述 |
---|---|---|---|
WxAppId | string | 否 | 微信开放平台的应用 AppId.(如:公众号、小程序、APP、H5、PC 等应用的 AppId ) |
WxOpenId | string | 否 | 微信用户在当前 WxAppId 下的 Openid,公众号及小程序场景下微信支付必填 |
AliAppId | string | 否 | 支付宝开放平台的应用 AppId.(如:生活号、小程序、APP、H5、PC 等应用的 AppId ) |
AliUserId | string | 否 | 支付宝用户在当前 AliAppId 下的 Userid,生活号及小程序场景下支付宝支付必填 |
AuthCode | string | 否 | 支付凭证:用户付款码。被扫场景下必填 |
CmbYwtArgNo | string | 否 | 招行一网通支付免登录协议号,首次上送完成支付与对应用户签约,再次上送用户可免登录 |
ErrCode 码表
错误代码 | 描述 | 解决方案 |
---|---|---|
SUCCESS | 请求成功 | 当 OrderStatus 为 PAYING 表示订单下单成功,参考支付面板拉起指引来使用 PayInfo 字段完成支付; 当 OrderStatus 为 SUCCESS 表示订单支付成功; 当 OrderStatus 为 PAY_FAIL 表示下单失败,失败原因见 FailReason 字段; |
FailedOperation.SystemError | 系统未知异常 | 系统未知异常,请稍后重试 |
ORDER.INVALID_PARAMETER | 参数有误 | 请根据返回描述修正请求参数 |
ORDER.OPERATE_IS_PROCESSING | 订单存在并发操作 | 当前支付订单同时存在别的请求操作(如下单、退款、关单等),请稍后重试 |
ORDER.ORDER_RECORD_ALREADY_EXIST | 订单已存在 | 订单已存在,并且状态为终态,请调用查单接口确认订单状态 |
NO_MERCHANT_SECRET | 商户秘钥有误 | 商户秘钥配置有误,请联系收付通工作人员确认 |
ChannelOperationError | 下游银行通道业务错误 | 下游通道返回的业务错误,详细原因请参考接口返回的 ErrMessage,请稍后重试 |