合单支付 - 二维码支付
1. 修订记录
修订 |
日期 |
说明 |
作者 |
V3.0 |
2021/09/17 |
新接口参数定义 |
杨诗东 |
V3.1 |
2021/12/27 |
支持国密 |
王晶 |
V3.2 |
2022/12/14 |
新增支付宝业务拓展参数extend_params_channel |
刘军 |
V3.3 |
2023/4/13 |
添加服务商信息编码 |
方立 |
2. 接口说明
(1)场景说明
1、在电商场景中存在多个商家的多笔订单一次支付,即用户提交一笔订单中包含多个子商户订单信息,用户确认无误后一笔支付订单总金,合单支付款项分别进入子商户各自的账户
(2)接口说明
1、合单支付 - 二维码支付
3. 请求地址
4. 请求参数说明
4.1 公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值 ysepay.online.combine.qrcode.pay |
partner_id |
String(20) |
Y |
在银盛支付开设的服务商商户号,请联系客户经理提供 |
timestamp |
String(19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 示例值:2014-07-24 03:07:50 |
charset |
String(10) |
Y |
商户网站使用的编码格式,如UTF-8、GBK、GB2312等,默认值 GBK |
sign_type |
String(10) |
Y |
报文签名算法, RSA/SM |
sign |
String(256) |
Y |
签名字符串,再用Base64编码 |
notify_url |
String(190) |
Y |
银盛支付服务器主动通知商户网站里指定的页面http路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3 |
version |
String(3) |
Y |
接口版本3.0 当前版本:3.0 |
tran_type |
String(1) |
N |
交易类型,说明:1或者空:非担保交易,2:担保交易,无特殊需求 不用填此字段 |
biz_content |
String |
Y |
业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递 |
4.2 业务请求参数
参数名biz_content,值为一个json格式对象,下面列表描述json对象的值
参数 |
类型(字节长度) |
必填 |
参数说明 |
combine_out_trade_no |
String(1,32) |
Y |
商户系统生成的合单订单号,须保证在商户端不重复,生成规则前8位必须为交易日期,如20220525,范围跨度支持包含当天在内的前后一天,且只能由大小写英文字母、数字、下划线及横杠组成,示例值:202205256843192280647118 |
shopdate |
String(8,8) |
Y |
商户系统的交易发生日期格式yyyyMMdd 示例值:20180525 |
timeout_express |
String(2,6) |
Y |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭,取值范围:1m~15d。m-分钟,h-小时,d-天。该参数数值不接受小数点,如1.5h,可转换为90m。注意:设置了未付款交易超时时间的情况下,若我司在限定时间内没有收到成功支付通知,则会关闭交易,关闭后该笔交易若付款方支付成功的情况下,会自动原路退款至付款方。 示例值:96h 代表96小时后订单自动关闭 |
combine_seller_id |
String(1,20) |
Y |
合单交易银盛支付商户号,必须是子单收款方或者发起方的商户号 |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
business_code |
String(1,10) |
Y |
业务代码 ,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码 |
subject |
String(1,250) |
Y |
订单备注 |
total_amount |
Number(10,2) |
Y |
该笔子订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。Number(10,2)指10位长度,2位精度 |
currency |
String(3) |
N |
默认CNY(人民币) |
bank_type |
String(7\ |
9) |
Y |
二维码行别,微信-1902000 支付宝-1903000 QQ扫码-1904000 银联扫码-9001002 招商银行 -3085840 |
sub_order_list |
list |
Y |
json 串,子单订单信息(最多50笔) |
|
|
|
|
extend_params_channel |
String |
N |
支付宝业务拓展参数json格式 示例值:样例7.2 |
corp_src_superieor |
String |
N |
服务商信息编号 |
4.1 子单 sub_order_list
参数 |
类型(字节长度)list |
必填Y |
参数说明 |
out_trade_no |
String(1,32) |
Y |
商户系统生成的子单订单号,生成规则前8位必须为交易日期,如20180525,范围跨度支持包含当天在内的前后一天,且只能由大小写英文字母、数字、下划线及横杠组成 示例值:201805256843192280647118 |
amount |
Number(10,2) |
Y |
该笔子订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。Number(10,2)指10位长度,2位精度 |
seller_id |
String(1,20) |
Y |
收款方银盛支付用户号 |
5. 响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_combine_qrcode_pay_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
5.2 业务响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
code |
String |
Y |
响应代码 |
msg |
String |
Y |
响应代码描述 |
combine_out_trade_no |
String(32) |
Y |
商户系统生成的合单订单号 |
combine_trade_no |
String(30) |
N |
该交易在银盛支付系统中的交易流水号。 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS 示例值:附录9.1 |
total_amount |
Number |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
qr_code_url |
String(1024) |
Y |
二维码地址 |
bank_type |
String(7) |
Y |
二维码行别 |
expire_time |
Number |
N |
过期时间,单位分钟 |
source_qr_code_url |
String(1024) |
N |
源二维码地址 |
extra_common_param |
String |
N |
公用回传参数 商户自定义数据域,原样返回 |
6. 异步通知参数
银盛支付对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign_type |
String |
Y |
报文签名算法,交易请求时传入的签名类型RSA/SM |
sign |
String |
Y |
签名字符串,Base64编码 |
notify_type |
String |
Y |
通知类型 固定值:directpay.status.sync |
notify_time |
String(19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 示例值:2014-07-24 03:07:50 |
combine_out_trade_no |
String(32) |
Y |
商户系统生成的合单订单号 |
combine_total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
trade_no |
String(30) |
N |
银盛支付交易流水号 |
trade_status |
String |
Y |
TRADE_CLOSED交易状态 示例值:附录9.1 |
account_date |
String(10) |
N |
入账的时间,格式"yyyyMMdd" 示例值:20140724 |
channel_send_sn |
String |
N |
发往渠道流水号 |
paygate_no |
String |
N |
支付网关编号 |
channel_recv_sn |
String |
N |
渠道返回流水号 |
extra_common_param |
String |
N |
公用回传参数 商户自定义数据域,原样返回 |
7. 样例
Json串为原始串,变成字符串时,会添加\“等转义符进去
7.1 子单 sub_order_list
[{
"out_trade_no": "20210930112839Z9D8",
"amount": "1.10",
"seller_id": "zhaoh41"
}, {
"out_trade_no": "20210930112839J2W2",
"amount": "1.30",
"seller_id": "zhaoh08"
}]
7.2 支付宝业务拓展参数extend_params_channel
{
"food_order_type": "qr_order"
}
8.附录
8.1 交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
TRADE_FAILD |
交易失败 |
TRADE_UNDEPOSIT |
交易成功,商户未入账,请联系客户经理处理 |