银联手机控件支付
1.修订记录
修订 |
日期 |
说明 |
作者 |
0.1 |
2017/8/25 |
新接口参数定义 |
郭勇 |
0.2 |
2021/10/22 |
支持担保交易 |
王晶 |
0.3 |
2021/12/27 |
支持国密 |
王晶 |
0.4 |
2022/02/17 |
seller_name修改为非必填 |
王晶 |
2、业务说明
(1)场景说明
(2)接口说明
3.请求地址
4、请求参数说明
4.1公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值 ysepay.online.mobile.controls.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(500) |
Y |
交易成功异步通知到商户的后台地址,http路径支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3,支持TLS1.0、TLS1.1、TLS1.2 |
version |
String(3) |
Y |
版本号3.0/3.4/3.5/3.6 当前版本3.6 |
return_url |
String(190) |
N |
前台页页面同步通知地址 |
tran_type |
String(1) |
N |
交易类型,说明:1或者空:非担保交易,2:担保交易,无特殊需求 不用填此字段 |
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 |
订单备注,该参数最长为250个汉字。 |
total_amount |
Number(10,2) |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。Number(10,2)指10位长度,2位精度 示例值:100 |
currency |
String(3) |
N |
币种 默认CNY(人民币) |
seller_id |
String(1,20) |
Y |
收款商户号(由银盛支付生成并下发) |
seller_name |
String(1,50) |
N |
收款商户号对应商户名称 |
timeout_express |
String(2,6) |
Y |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭,取值范围:1m~15d。m-分钟,h-小时,d-天。该参数数值不接受小数点,如1.5h,可转换为90m。注意:设置了未付款交易超时时间的情况下,若我司在限定时间内没有收到成功支付通知,则会关闭交易,关闭后该笔交易若付款方支付成功的情况下,会自动原路退款至付款方。示例值:96h 代表96小时后订单自动关闭 |
extend_params |
String(500) |
N |
业务扩展参数,一个json字符串,order_mode订单模式,暂时可选的值为:00 代表购物车模式;seller_list参与分账的收款方信息数组,每个元素包含seller_id收款方银盛支付用户号。实时分账业务,order_mode和seller_list均不能为空,order_mode的值必须为00。示例值:样例7.1 |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
business_code |
String(1,10) |
Y |
业务代码 ,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码 |
bank_type |
Number(7\ |
9) |
Y |
指定 中国银联9001000 |
bank_account_type |
String(3,9) |
Y |
付款方银行账户类型, corporate :对公账户;personal:对私账户 |
support_card_type |
String(3,6) |
Y |
支持卡类型, debit:借记卡;credit:信用卡 |
sub_merchant |
SubMerchantInfo |
N |
二级商户信息, Json格式,暂包括merName、merShortName、merAddr、telephone、merNo、category、mrchntCertId 示例值:附录7.2 |
consignee_info |
ConsigeeInfo |
N |
收货人信息json格式 示例值:样例7.3 |
unionPayGoodsDetails |
String |
N |
银联单品营销请求信息List |
4.3 银联营销 UnionPayGoodsDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
营销单品编号 |
goods_name |
String(256) |
Y |
营销单品名称 |
quantity |
String(9) |
Y |
营销单品数量 [1~999999999] 左闭右闭区间,必须为整数 |
price |
String(12) |
Y |
营销单品单价 [0.01~9999999999.99] 左闭右闭区间,小数点后最多允许两位 |
goods_category |
String(24) |
N |
营销单品类目 |
addInfo |
String(100) |
N |
附加信息 |
4.4 二级商户 SubMerchantInfo
参数 |
类型(字节长度) |
必填 |
参数说明 |
merName |
String(50) |
N |
二级商户名称,支持25个中文 |
merShortName |
String(50) |
N |
二级商户简称,支持25个中文 |
merAddr |
String(200) |
N |
二级商户地址,支持100个中文 |
telephone |
String(13) |
N |
固定电话/手机号码二选一 |
merNo |
String(32) |
N |
二级商户编号 |
category |
String(20) |
N |
类目,按附件内容输入类目编号 |
mrchntCertId |
String(15\ |
18) |
N |
身份证号,只支持身份证格式(如果签名方式为RSA,则用DES加密,密钥为商户号前8位,不足8位在商户号前补空格;如果签名方式为SM,则用SM加密) |
4.5 收货人信息 ConsigeeInfo
参数 |
类型(字节长度) |
必填 |
参数说明 |
consigneeName |
String(150) |
N |
收货人姓名 |
consigneeAddr |
String(200) |
N |
收货地址 |
transportationInfo |
String(200) |
N |
物流配送信息(物流名称+订单号) |
commodityName |
String(150) |
N |
商品名称 |
commodityNumber |
String(10) |
N |
商品数量, |
5.响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_mobile_controls_pay_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
5.2 业务响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
code |
String |
Y |
响应代码 |
msg |
String |
Y |
响应代码描述 |
out_trade_no |
String(32) |
Y |
商户系统生成的订单号 |
trade_no |
String(30) |
N |
该交易在银盛支付系统中的交易流水号。 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS具体详示例值:附录8.1 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
account_date |
String(19) |
N |
入账日期,格式"yyyy-MM-dd" 示例值:2014-07-24 |
tn |
String(50) |
Y |
银行返回流水,商户调用支付控件时使用 |
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 |
商户系统生成的订单号 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
trade_no |
String(20) |
N |
该交易在银盛支付系统中的交易流水号。 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS\ |
TRADE_CLOSED示例值:附录9.1 |
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 |
N |
发往渠道流水号 |
paygate_no |
String |
N |
支付网关编号 示值值:附录9.2 |
channel_recv_sn |
String |
N |
渠道返回流水号 |
buyer_user_id |
String |
N |
支付宝用户Uid |
buyer_logon_id |
String |
N |
该字段于2023-9-1已不支持使用,请使用buyer_id对接,如有疑问请咨询银盛技术支持! |
payer_bank_account_no |
String |
N |
银联云闪付款方账号 |
coupon_Info |
String |
N |
银联营销 版本小于3.6为List的JSON字符串,版本3.6(含)以上为CouponInfo的JSON字符串 |
6.1 CupQrCouponDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方 1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
6.2 CouponInfo 说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
amount |
Double |
Y |
清算金额 ,单位为元 |
origAmount |
Double |
Y |
商户提交的订单金额,订单金额, 单位为元 |
cupQrCouponDetail |
List |
N |
优惠信息-二维码 ,成功的二维码类交易交易必填,活动维度的优惠展示 |
issAddnData |
IssAddnData |
N |
付款方附加数据,交易成功返回,商品维度的优惠展示 |
cupAcpCouponInfo |
CupAcpCouponInfo |
N |
优惠信息全渠道,成功的全渠道类交易(如:Wap,手机控件 等)必填,活动维度的优惠展示 |
6.2.1 CupQrCouponDetail 说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方,1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
6.2.2 IssAddnData说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
dctDetail |
List |
Y |
商品优惠信息,交易成功,且请求参数中的收款方附加信息域中的单品命中优惠。商品维度展示优惠信息。 |
6.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 |
附加信息,自定义内容 |
6.2.3 CupAcpCouponInfo说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
discountAmt |
double |
Y |
总的优惠金额,单位:元,注:退货的时候返回,表示总的优惠回退金额 |
mchtDiscountAmt |
double |
N |
商户出资金额,单位:元,注:退货的时候返回,表示商户出资的回退金额 |
activityId |
String |
N |
活动编号,票券编号、活动编号等,格式自定义 |
activityNm |
String |
N |
活动简称,优惠活动简称,可用于展示、打单等 |
addnPrintInfo |
String |
N |
活动打印信息,自定义内容 |
7.样例
7.1 extend_params 说明
{
"cartTYpe": "00",
"order_mode": "01",
"seller_list": [{
"seller_id": "123"
}, {
"seller_id": "456"
}]
}
7.2 sub_merchant 说明
{
"merName": "二级商户名称",
"merShortName": "二级商户简称",
"merAddr": "二级商户地址",
"telephone": "二级商户服务电话",
"merNo": "二级商户编号",
"category": "类目",
"mrchntCertId": "身份证号"
}
7.3 consignee_info 说明
{
"consigneeName": "收货人姓名",
"consigneeAddr": "收货地址",
"transportationInfo": "物流配送信息",
"commodityName": "商品名称",
"commodityNumber": "商品数量"
}
8.附录
8.1 交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
8.2 支付网关编号
支付渠道代码 |
支付渠道 |
900000001 |
银联-支付宝 |
9000010 |
银联-微信 |
10810001 |
银联扫码-银联云闪付 |
10010001 |
网联-微信 |
10000012 |
网联-支付宝 |