合单下单-JSAPI支付/小程序支付API

最新更新时间:2020.05.21 版本说明


使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。


注意:

• 订单如果需要进行抽佣等,需要在合单中指定需要进行分账(profit_sharing为true);指定后,交易资金进入二级商户账户,处于冻结状态,可在后续使用分账接口进行分账,利用分账完结进行资金解冻,实现抽佣和对二级商户的账期。

接口说明

适用对象:电商平台 服务商 直连商户

请求URL:https://api.mch.weixin.qq.com/v3/combine-transactions/jsapi

请求方式:POST

接口规则:https://wechatpay-api.gitbook.io/wechatpay-api-v3


path指该参数需在请求URL传参

query指该参数需在请求URL传参

body指该参数需在请求JSON传参


请求参数

参数名 变量 类型[长度限制] 必填 描述
合单商户appid combine_appid string[1,32] body 合单发起方的appid。
示例值:wxd678efh567hg6787
合单商户号 combine_mchid string[1,32] body 合单发起方商户号。
示例值:1900000109
合单商户订单号 combine_out_trade_no string[1,32] body 合单支付总订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
示例值:P20150806125346
+场景信息 scene_info object body 支付场景信息描述
参数名 变量 类型[长度限制] 必填 描述
商户端设备号 device_id string[7,16] 终端设备号(门店号或收银设备ID)。
示例值:POS1:1
用户终端IP payer_client_ip string[1,45] 用户端实际ip
格式: ip(ipv4+ipv6)
示例值:14.17.22.32
+子单信息 sub_orders array body 最多支持子单条数:50
参数名 变量 类型[长度限制] 必填 描述
子单商户号 mchid string[1,32] 子单发起方商户号,必须与发起方appid有绑定关系。
示例值:1900000109
附加数据 attach string[1,128] 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用。
示例值:深圳分店
+订单金额 amount object
参数名 变量 类型[长度限制] 必填 描述
标价金额 total_amount int64 子单金额,单位为分。
境外场景下,标价金额要超过商户结算币种的最小单位金额,例如结算币种为美元,则标价金额必须大于1美分
示例值:100
标价币种 currency string[1,8] 符合ISO 4217标准的三位字母代码,人民币:CNY。
示例值:CNY
子单商户订单号 out_trade_no string[6,32] 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
示例值:20150806125346
二级商户号 sub_mchid string[1,32] 服务商子商户的商户号,被合单方。直连商户不用传二级商户号
注意:仅适用于电商平台 服务商
示例值:1900000109
商品描述 description string[1,127] 商品简单描述。需传入应用市场上的实际商品名称,例如:天天爱消除-游戏充值。
示例值:腾讯充值中心-QQ会员充值
+结算信息 settle_info Object 结算信息
参数名 变量 类型[长度限制] 必填 描述
是否指定分账 profit_sharing bool 是否指定分账,枚举值:
true:是
false:否
示例值:true
补差金额 subsidy_amount int64 SettleInfo.profit_sharing为true时,该金额才生效。
注意:单笔订单最高补差金额为5000元
示例值:10
+支付者 combine_payer_info object body 支付者信息
参数名 变量 类型[长度限制] 必填 描述
用户标识 openid string[1,128] 使用合单appid获取的对应用户openid。是用户在商户appid下的唯一标识。
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
交易起始时间 time_start string[1,14] body 订单生成时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
示例值:2019-12-31T15:59:60+08:00
交易结束时间 time_expire string[1,14] body 订单失效时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
示例值:2019-12-31T15:59:60+08:00
通知地址 notify_url string[1,256] body 接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。
格式: URL
示例值:https://yourapp.com/notify

请求示例


{
	"combine_out_trade_no": "20150806125346",
	"combine_mchid": "1900000109",
	"combine_appid": "wxd678efh567hg6787",
	"scene_info": {
		"device_id": "POS1:123",
		"payer_client_ip": "14.17.22.32"
	},
	"sub_orders": [{
		"mchid": "1900000119",
		"attach": "深圳分店",
		"amount": {
			"total_amount": 10,
			"currency": "CNY"
		},
		"out_trade_no": "20150806125346",
		"description": "腾讯充值中心-QQ会员充值"
	}],
	"combine_payer_info": {
		"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
	},
	"time_start": "2019-12-31T15:59:59+08:00",
	"time_expire": "2019-12-31T16:59:59+08:00",
	"notify_url": "https://yourapp.com/notify"
}
 
    
{
JAVA示例代码
}
    

返回参数

参数名 变量 类型[长度限制] 必填 描述
预支付交易会话标识 prepay_id string[1,64] 数字和字母。微信生成的预支付会话标识,用于后续接口调用使用,该值有效期为2小时。
示例值:wx201410272009395522657a690389285100

返回示例


{
 "prepay_id": "wx201410272009395522657a690389285100"
}
                                

    http://2323weixin.qq.com
                                

错误码公共错误码

状态码 错误码 描述 解决方案
202 USERPAYING 用户支付中,需要输入密码 等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作
403 TRADE_ERROR 交易错误 因业务原因交易失败,请查看接口返回的详细信息
500 SYSTEMERROR 系统错误 系统异常,请用相同参数重新调用
401 SIGN_ERROR 签名错误 请检查签名参数和方法是否都符合签名算法要求
403 RULELIMIT 业务规则限制 因业务规则限制请求频率,请查看接口返回的详细信息
400 PARAM_ERROR 参数错误 请根据接口返回的详细信息检查请求参数
403 OUT_TRADE_NO_USED 商户订单号重复 请核实商户订单号是否重复提交
404 ORDERNOTEXIST 订单不存在 请检查订单是否发起过交易
400 ORDER_CLOSED 订单已关闭 当前订单已关闭,请重新下单
500 OPENID_MISMATCH openid和appid不匹配 请确认openid和appid是否匹配
403 NOTENOUGH 余额不足 用户帐号余额不足,请用户充值或更换支付卡后再支付
403 NOAUTH 商户无权限 请商户前往申请此接口相关权限
400 MCH_NOT_EXISTS 商户号不存在 请检查商户号是否正确
500 INVALID_TRANSACTIONID 订单号非法 请检查微信支付订单号是否正确
400 INVALID_REQUEST 无效请求 请根据接口返回的详细信息检查
429 FREQUENCY_LIMITED 频率超限 请降低请求接口频率
500 BANKERROR 银行系统异常 银行系统异常,请用相同参数重新调用
400 APPID_MCHID_NOT_MATCH appid和mch_id不匹配 请确认appid和mch_id是否匹配
403 ACCOUNTERROR 账号异常 用户账号异常,无需更多操作

版本说明

关闭
V1.3
2020.05.21
1. 子单信息去除detail参数
V1.2
2020.05.14
1. 去除合单中同一“二级商户”只允许有一笔子订单限制
V1.1
2020.04.29
1. 新增参数limit_pay枚举值
V1.0
2019.09.09
1. 合单下单-JS支付接口上线

技术咨询

反馈有奖