合单支付-微信公众号、小程序下单

1、修订记录

修订记录 日期 说明
1.0 2023.11.01 初版

2、业务说明

(1)接口说明

在电商场景中存在多个商家的多笔订单⼀次支付,即用户提交⼀笔订单中包含多个⼦商户订单信息,用户确认无误后⼀笔支付订单总金,合单支付款项分别进⼊⼦商户各自的账户
1、该接⼝支持微信公众号、微信⼩程序支付,通过参数”isMiniPg“区分;
2、调用接⼝前,商户需要先在微信侧申请公众号或⼩程序的APPID等参数;
3、商户调用该接⼝生成预支付交易单,银盛支付将返回预支付参数;
4、商户根据返回的预支付参数,通过JSAPI唤起支付。 

请求主体类型:application/json

请求方式:POST

3、请求地址

环境 HTTPS请求地址
测试环境 https://appdev.ysepay.com/openapi/unify/basePay/scan/weChatPay/jsCombine
正式环境 https://ysgate.ysepay.com/openapi/unify/basePay/scan/weChatPay/jsCombine

4、请求参数说明

4.1、公共请求参数

参数 类型(长度) 必填 参数说明
timeStamp String Y 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
method String(128) Y 接口名称,固定值:unify.basePay.scan.weChatPay.jsCombine
charset String(10) Y 请求使用的编码格式,如utf-8,gbk,gb2312等,固定为utf-8
sign String Y 商户请求参数的签名串(签名算法默认为国密),详见demo,注意:请用商户私钥进行签名
check String Y 银盛公钥加密随机生成的字符串(key)得到的加密值,详见demo
bizContent String Y 业务参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递。注意:需要通过AES以及随机生成的字符串(key)加密业务参数集合,得到bizContent
reqId String Y 请求唯一流水号,商户系统唯一,要求32个字符内(最少14个字符),只能是数字、大小写字母_-且在同一个商户号下唯一。最后12位要求格式为"yyMMddHHmmss" 示例值:xy1415220315145602
certId String Y 发起方商户号,服务商在银盛给自己开设的商户号,即可当作发起方商户号,由银盛生成并下发。 注意:不同于子商户号,服务商发展的商户即为子商户号
version String Y 调用的接口版本,固定为:1.0

4.2、业务请求参数

(bizContent加密前的json数据明文字符串)

参数 类型(长度) 必填 参数说明
orderId String(32) Y 商户订单号,商户系统生成的订单号,要求如下:
1、须保证在商户端不重复。
2、只能由大小写英文字母、数字、下划线及横杠组成。
建议前8位为交易日期,如20220525,范围跨度支持包含当天在内的前后一天,示例值:202205256843192280647118。
shopDate String(8) Y 交易日期,商户系统的交易发生日期格式yyyyMMdd 示例值:20180525
isMiniPg String(1) N 是否⼩程序支付,
1:⼩程序支付;
2:公众号支付(默认值);
appId String(32) Y 微信公众平台APPID,商户在微信侧申请的⼩程序或公众号APPID。当发起公众号支付时,需填写公众号的APPID(应用
ID);当发起⼩程序支付时,需填写⼩程序的APPID(应用ID)
subOpenId String(128) Y 用户唯⼀标识,用户在商户appid下的唯⼀标识。可参考https://pay.weixin.qq.com/wiki/doc/apiv3/t
erms_definition/chapter1_1_3.shtml#part-3获取 
timeOutExpress String Y 交易超时时间,设置未付款交易的超时时间,⼀旦超时,该笔交易就会自动被关闭。(需申请业务权限,权限未开
通情况下该参数不生效。单位:分钟
combineMercId String(20) Y 合单交易商户号,合单交易商户号(由银盛支付生成并下发),必须是⼦单收款商户号或者服务商商户号
busiCode String(10) Y 业务代码,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码。
note String(250) Y 商品的标题,商品的标题/交易标题/订单标题/订单关键字等。该参数最长为250个汉字。
amount String(10) Y 订单总金额,该笔订单的资金总额,单位:分
extraCommonParam String(2000) N 公用回传参数,扩展参数,调用方可用于回调时携带业务参数,异步通知时会返回该参数。
currency String(3) N 支持币种,支持币种:CNY(⼈民币),默认传CNY 
notifyUrl String(190) Y 交易成功异步通知到商户 的后台地址
srcIP String(16) Y 发起方IP,例如:112.112.112.112 
payerIP String(16) N 付款方IP, 例如:112.112.112.113
orderList Array Y ⼦单订单信息
msgCode String N 报文编号,交易类型:默认为非担保交易,S3002:担保交易 ,无担保交易需求 不用填此字段

4.2.1 orderList具体参数

参数 类型(长度) 必填 参数说明
inOrderId String(32) Y 订⼦单号,商户生成的⼦单订单号,生成规则前8位建议为交易日期,如20180525,范围跨度支持包含
当天在内的前后⼀天,且只能由⼤⼩写英文字母、数字、下划线及横杠组成 示例值:20180
5256843192280647118
inAmount String(10) Y ⼦订单金额,该笔⼦订单的资金总额,单位:分 
inPayeeMercId String(20) Y ⼦订单商户号,银盛支付⼦单收款商户号

5、响应参数说明

请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。

5.1、公共响应参数

参数 类型(长度) 必填 参数说明
code String(5) Y 网关响应码,示例值:00000 详见网关公共响应码
msg String(50) Y 网关响应码描述
subCode String Y 业务响应码,参见具体的API接口文档
subMsg String Y 业务响应描述
timeStamp String Y 响应时间,格式"yyyy-MM-dd HH:mm:ss"
norce String(128) Y 随机参数
sign String Y 响应参数的签名串,详见demo,
注意:请用银盛公钥进行验签
businessData String Y 业务响应参数集合,
注意:银盛网关通过AES加密业务响应参数集合,得到businessData,商户需要对其进行解密,详情请见demo

5.2、业务响应参数

响应业务参数businessData(json数据)

参数 类型(长度) 必填 参数说明
reqMsgId String Y 请求流水号,同请求
data Object N 响应业务数据,请求成功时响应

5.2.1 data具体参数

参数 类型(长度) 必填 参数说明
orderId String N 商户订单号
tradeSn String N 交易流水号
tradeStatus String N 交易状态,00-交易成功
02-支付成功,合单交易渠道成功但参与营销,需⼈⼯调账待支付
11-支付中(已向渠道跳转)
12-部分支付
13-全部已支付(担保交易使用)等待发货
14-未确认收货(等待付款方确认)
60-提现登记
61-提现完成
70-自动关闭处理中
80-部分退款
81-全部退款
97-客户主动关闭
99-到时关闭'
01-支付成功
98-支付失败
96-交易失败(超金额支付)
50-业务超时
95-关闭订单
94-无支付订
93-订单撤销 
amount String N 订单金额,单位:分
currency String N 交易币种
extraCommonParam String N 公共回传参数
jsapiPayInfo String N 微信返回参数,JSON格式。具体字段参考以下jsapiPayInfo

5.2.1.1 jsapiPayInfo具体参数

参数 类型(长度) 必填 参数说明
appId String(32) Y 商户APPID,商户在微信侧申请的APPID,接⼝返回jsapi_pay_info中的信息 wxd678efh5
67hg6787
timeStamp String(32) Y 时间戳,时间戳,接⼝返回jsapi_pay_info中的信息
nonceStr String(32) Y 随机字机串,随机字机串,接⼝返回jsapi_pay_info中的信息 5K8264ILTKCH16CQ2502SI

package String(128) Y 订单详情扩展字符串,订单详情扩展字符串,接⼝返回jsapi_pay_info中的信息 prepay_id=u80234
5jgfjsdfg 
signType String(32) Y 签名方式,签名方式,接⼝返回 jsapi_pay_info中的信息 MD5
paySign String(256) Y 签名,签名,接⼝返回jsapi_pay_info中的信息 C380BEC2BFD727A4B6845132

6、业务响应码 网关公共响应码

响应码 响应码描述 解决方案
0000 成功
9999 失败 请根据返回提示操作或联系银盛技术人员处理
5000 交易超时 请检查网络或稍后重新发起请求

A029998 网关非法参数 检查请求参数,修改后重新发起请求
B020100 参数校验错误 检查请求参数,修改后重新发起请求
B021100 前置系统参数验证错误 检查请求参数,修改后重新发起请求
B022011 发起方商户号和商户号的归属关系校验失败 检查发起方商户号和商户号的归属关系 
B023006 订单重复支付 检查订单号是否重复 
B029901 业务失败 根据实际返回消息分析具体原因

results matching ""

    No results matching ""