银联行业码支付
1、修订记录
版本号 |
日期 |
说明 |
作者 |
0.1 |
2018/10/10 |
新接口参数定义 |
邓鑫 |
0.2 |
2021/04/13 |
增加子商户ip submer_ip |
|
0.3 |
2021/12/27 |
支持国密 |
王晶 |
0.4 |
2022/02/17 |
seller_name修改为非必填 |
王晶 |
0.5 |
2022/03/17 |
version为3.9时 新增支付成功异步通知营销相关字段 |
刘雷 |
0.6 |
2022/07/27 |
新增付款方gps信息入参 |
王晶 |
0.7 |
2022/10/19 |
异步通知添加coupon_info字段信息 |
刘军 |
0.8 |
2023/4/13 |
添加服务商信息编码 |
方立 |
0.9 |
2024/11/04 |
新增请求参数merchant_marketing_info商户自主营销信息 |
郑世康 |
2、业务说明
(1)场景说明
1、用户扫码,app内置浏览器访问二维码URL,进入商户产品/服务H5页面;用户选择产品/服务,进行下单; 2、商户收银台推送订单信息至银联,银联调起APP银联支付,完成交易,银联推送收款交易消息至商户收款侧。
(2)接口说明
1、用户云闪付APP访问的二维码URL,需要到银联进行白名单报备
2、用户云闪付app浏览器前端跳转到https://qr.95516.com/qrcGtwWeb-web/api/userAuth 获取用户授权码
3、用户云闪付app获取到授权码后,调用行业码获取用户标识接口,获取用户标识,
4、使用用户标识下单,成功返回支付URL,用户app访问支付URL 唤起支付界面进行支付
3、请求地址
4、请求参数说明
4.1公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值ysepay.online.cupmulapp.qrcodepay |
partner_id |
String(20) |
Y |
在银盛支付开设的服务商商户号,请联系客户经理提供 |
timestamp |
String(19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
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,支持TLS1.0、TLS1.1、TLS1.2 |
version |
String(3) |
Y |
接口版本3.0/3.4 当前版本 3.4 |
return_url |
String(190) |
N |
收款方向银盛下单时上送的前台通知地址(仅允许为外网地址),用户完成支付点击“返回”后,银盛通过浏览器POST请求到该地 |
biz_content |
String |
Y |
业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递 |
4.2 业务请求参数
参数名biz_content,值为一个json格式对象,下面列表描述json对象的值
参数 |
类型(字节长度) |
必填 |
参数说明 |
out_trade_no |
String(1,32) |
Y |
商户系统生成的订单号,须保证在商户端不重复,生成规则前8位必须为交易日期,如20220525,范围跨度支持包含当天在内的前后一天,且只能由大小写英文字母、数字、下划线及横杠组成,示例值:202205256843192280647118 |
shopdate |
String(8,8) |
Y |
商户日期(该参数做交易与查询时需要一致) 该日期需在当日的前后一天时间范围之内 示例值:20180525 |
subject |
String(1,250) |
Y |
订单备注 |
total_amount |
Number(10,2) |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。Number(10,2)指10位长度,2位精度 示例值:100 |
seller_id |
String(1,20) |
|
收款商户号(银盛支付生成并下发) |
seller_name |
String(1,50) |
N |
收款商户号对应商户名称 |
timeout_express |
String(2,6) |
Y |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭,取值范围:1m~15d。m-分钟,h-小时,d-天。该参数数值不接受小数点,如1.5h,可转换为90m。注意:设置了未付款交易超时时间的情况下,若我司在限定时间内没有收到成功支付通知,则会关闭交易,关闭后该笔交易若付款方支付成功的情况下,会自动原路退款至付款方。示例值:96h 代表96小时后订单自动关闭 |
business_code |
String(1,10) |
Y |
业务代码 ,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码 |
spbill_create_ip |
String(16) |
Y |
必须传正确的用户端ip 示例值:123.12.12.123 |
bank_type |
String(7\ |
9) |
Y |
行别,银联扫码-9001002 |
userId |
String(128) |
Y |
银联用户标识(用户在APP上的标识号,用来提供给收款方,并在收款方发起交易时回传给付款) |
allow_repeat_pay |
String(2) |
Y |
是否允许多次支付,Y:允许;N:不允许(参数为空或者Y时,默认该笔订单交易状态非成功状态时,支持选择其他支付方式继续付款, 当为N时表示该笔订单交易状态为失败状态时,不支持选择其他支付方式继续付款) |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
currency |
String(3) |
N |
默认CNY(人民币) |
extend_params |
String(500) |
N |
业务扩展参数,一个json字符串,order_mode订单模式,暂时可选的值为:00 代表购物车模式;seller_list参与分账的收款方信息数组,每个元素包含seller_id收款方银盛支付用户号。实时分账业务,order_mode和seller_list均不能为空,order_mode的值必须为00。示例值:样例9.1 |
corp_src_superieor |
String |
N |
服务商信息编号 |
sub_merchant |
SubMerchantInfo |
N |
二级商户信息, Json格式 参考样例,暂包括merName、merShortName、merAddr、telephone、merNo、category、mrchntCertId ,如果有值则二级商户信息都不能为空,如果没值则都不能有值 示例值:样例9.2 |
consignee_info |
ConsigeeInfo |
N |
收货人信息json格式 示例值:样例9.3 |
device_info |
String(8) |
N |
终端号 自定义 8位整数 |
terminal_info |
String(300) |
N |
终端信息 |
limit_credit_pay |
String(2) |
N |
是否限制信用卡。值为1表示禁用信用卡,0或为空表示不限制 |
fail_notify_url |
String(190) |
N |
失败通知地址(交易状态为失败时,银盛支付服务器主动通知商户网站里指定的页面http路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3)注:只有不允许重复支付的交易才会通知 |
submer_ip |
String(16) |
N |
子商户ip 112.112.112.112 |
gps |
GpsInformation |
N |
付款方gps信息 ,结构见4.2.1 |
merchant_marketing_info |
String |
N |
商户自主营销信息,json格式。coupon_id优惠券id、marketing_source_id营销来源id,示例值:merchant_marketing_info: {"coupon_id": "231", "marketing_source_id": "23232" } |
参数 |
类型 |
必填 |
参数说明 |
latitude |
Double |
N |
纬度,范围-90~90 |
longitude |
Double |
N |
经度,范围-180~180 |
5、响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_cupmulapp_qrcodepay_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
5.2 业务响应参数
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 |
out_trade_no |
String(32) |
Y |
商户系统内部订单号 |
trade_no |
String(30) |
N |
银盛支付交易流水号 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS 示例值:样例11.1 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:100 |
account_date |
String(19) |
N |
入账日期,格式"yyyyMMdd" 示例值:20140724 |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
7、服务器交易成功异步通知
银盛支付对商户的请求数据处理完成后,会将处理的结果数据通过系统程序控制客户端页面自动跳转的方式通知给商户网站。这些处理结果数据就是页面跳转同步通知参数。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
参数 |
类型(字节长度) |
必填 |
参数说明 |
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 |
out_trade_no |
String(32) |
Y |
商户系统内部订单号 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS\ |
TRADE_CLOSED 示例值:样例11.1 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示值值:100 |
trade_no |
String(30) |
N |
银盛支付交易流水号 |
account_date |
String(10) |
N |
入账的时间,格式"yyyyMMdd" 示例值:20140724 |
payer_fee |
Number |
N |
该笔订单的付款方手续费(参考),单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:1.00 |
payee_fee |
Number |
N |
该笔订单的收款方手续费(参考),单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:1.00 |
partner_fee |
Number |
N |
该笔订单的合作方手续费(参考),单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:1.00 |
fee |
Number |
N |
该笔订单的手续费总和(参考),单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:1.00 |
channel_send_sn |
String(50) |
N |
发往渠道流水号 |
paygate_no |
String(16) |
N |
支付网关编号 |
channel_recv_sn |
String(50) |
N |
渠道返回流水号 |
card_type |
String |
N |
卡类型credit:信用卡debit:借记卡 |
payer_bank_account_no |
String |
N |
银联云闪付款方账号 |
extra_common_param |
String(2000) |
N |
商户自定义数据域,原样返回 |
coupon_info |
String(4000) |
N |
JSON字符串,银联营销渠道响应优惠信,version小于3.6版本为List的JSON字符串,3.6版本(含)以上为CouponInfo的JSON字符串 |
preferential_amount |
Number |
N |
营销优惠金额 版本3.9及以支持 示例值:样例1.2 |
preferential_fee |
Number |
N |
营销优惠手续费 版本3.9及以支持 示例值:样例0.02 |
marketing_rule_json |
String |
N |
营销规则信息json 版本3.9及以支持 |
7.1 银联 CupQrCouponDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方,1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
7.2 银联 CouponInfo
参数 |
类型(字节长度) |
必填 |
参数说明 |
amount |
Double |
Y |
清算金额 ,单位为元 |
origAmount |
Double |
Y |
订单金额, 单位为元,商户提交的订单金额 |
cupQrCouponDetail |
List |
N |
优惠信息-二维码,成功的二维码类交易交易必填,活动维度的优惠展示 |
issAddnData |
IssAddnData |
N |
付款方附加数据,交易成功返回,商品维度的优惠展示 |
cupAcpCouponInfo |
CupAcpCouponInfo |
N |
优惠信息全渠道,成功的全渠道类交易(如:Wap,手机控件 等)必填,活动维度的优惠展示 |
7.2.1 CupQrCouponDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方,1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
7.2.2 IssAddnData
参数 |
类型(字节长度) |
必填 |
参数说明 |
样例 |
dctDetail |
List |
N |
商品优惠信息 |
交易成功,且请求参数中的收款方附加信息域中的单品命中优惠。商品维度展示优惠信息。 |
7.2.2.1 DctDetail说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
id |
String |
Y |
参与优惠的商品编号 |
dctId |
String |
Y |
优惠活动的编号 |
dctQuantity |
int |
Y |
商品优惠数量,本商品数量为 10,其中 2 件参示例:本商品数量为 10,其中 2 件参 |
dctPrice |
double |
Y |
商品优惠金额,单位:元。示例:商品单价10元,共 5件,其中2件参与优惠,每件优惠 3元,则本字段值为 6.00 |
addnInfo |
String |
N |
附加信息,内容自定义 |
7.2.3 CupAcpCouponInfo说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
discountAmt |
double |
Y |
总的优惠金额,单位:元,注:退货的时候返回,表示总的优惠回退金额 |
mchtDiscountAmt |
double |
N |
商户出资金额,单位:元,注:退货的时候返回,表示商户出资的回退金额 |
activityId |
String |
N |
活动编号,票券编号、活动编号等,格式自定义 |
activityNm |
String |
N |
活动简称,优惠活动简称,可用于展示、打单等 |
addnPrintInfo |
String |
N |
活动打印信息,内容自定义 |
8、服务器交易失败异步通知
银盛支付对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign_type |
String |
Y |
签名类型,交易请求时的签名类型,RSA/SM |
sign |
String |
Y |
签名字符串,Base64编码 |
notify_type |
String |
Y |
通知类型 failpay.status.sync |
notify_time |
String(19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 示例值:2014-07-24 03:07:50 |
out_trade_no |
String(32) |
Y |
商户系统内部订单号 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:100 |
trade_no |
String(30) |
N |
该交易在银盛支付系统中的交易流水号。 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS\ |
TRADE_CLOSED等 示例值:样例11.1 |
result_note |
String |
N |
交易结果描述,当交易失败时,保存错误描述 |
9、样例
9.1 extend_params 说明
{
"cartTYpe": "00",
"order_mode": "01",
"seller_list": [{
"seller_id": "123"
}, {
"seller_id": "456"
}]
}
9.2 sub_merchant 说明
{
"merName": "二级商户名称",
"merShortName": "二级商户简称",
"merAddr": "二级商户地址",
"telephone": "二级商户服务电话",
"merNo": "二级商户编号",
"category": "类目",
"mrchntCertId": "身份证号"
}
9.3 consignee_info 说明
{
"consigneeName": "收货人姓名",
"consigneeAddr": "收货地址",
"transportationInfo": "物流配送信息",
"commodityName": "商品名称",
"commodityNumber": "商品数量"
}
10、附录
10.1 交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
TRADE_PROCESS |
交易正在处理中,可对该交易做查询,避免重复支付。 |
TRADE_USERPAYING |
用户支付中,需要输入密码,可对该交易做查询,避免重复支付。 |
TRADE_FAILD |
交易失败 |
10.2 支付网关编号
支付渠道代码 |
支付渠道 |
900000001 |
银联-支付宝 |
9000010 |
银联-微信 |
10810001 |
银联扫码-银联云闪付 |
10010001 |
网联-微信 |
10000012 |
网联- |