SDK支付
1.修订记录
修订 |
日期 |
说明 |
作者 |
0.1 |
2017/04/27 |
新接口参数定义 |
莫尚校 |
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 |
新增支付成功异步通知营销相关字段 |
刘雷 |
2、业务说明
(1)场景说明
商户系统调用对应的SDK包进行支付交易
(2)接口说明
SDK调起支付宝支付
3.请求地址
4、请求参数说明
4.1公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值 ysepay.online.sdkpay |
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.5 |
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 |
订单备注 |
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 |
String(7,9) |
Y |
SDK支付所支持的banktype,支付宝-1903000 |
device_info |
String(1,32) |
N |
终端设备号,8位整数。 |
limit_credit_pay |
String(1) |
N |
是否限制信用卡。值为1表示禁用信用卡,0或为空表示不限制,只针对banktype为微信-1902000时生效 |
sub_merchant |
SubMerchantInfo |
N |
二级商户信息, Json格式,暂包括merName、merShortName、merAddr、telephone、merNo、category、mrchntCertId 示例值:样例7.2 |
consignee_info |
ConsigeeInfo |
N |
收货人信息json格式 示例值:样例7.3 |
aliGoodsDetails |
List |
N |
支付宝营销单品详情列表 |
submer_ip |
String(16) |
N |
子商户ip 示例值:112.112.112.112 |
4.3 二级商户 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.4 收货人信息 ConsigeeInfo
参数 |
类型(字节长度) |
必填 |
参数说明 |
consigneeName |
String(150) |
N |
收货人姓名 |
consigneeAddr |
String(200) |
N |
收货地址 |
transportationInfo |
String(200) |
N |
物流配送信息(物流名称+订单号) |
commodityName |
String(150) |
N |
商品名称 |
commodityNumber |
String(10) |
N |
商品数量, |
4.5 支付宝营销 AliGoodsDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
营销单品编号 |
alipay_goods_id |
String(32) |
N |
营销单品支付宝侧编号 |
goods_name |
String(256) |
Y |
营销单品名称 |
quantity |
String(10) |
Y |
营销单品数量,不超过10位的正整数 |
price |
String(12) |
Y |
营销单品单价,[0,999999999] 左闭右闭区间,小数点后最多允许两位 |
goods_category |
String(24) |
N |
营销单品类目 |
categories_tree |
String(128) |
N |
营销单品类目树 |
body |
String(1000) |
N |
营销单品描述 |
show_url |
String(400) |
N |
营销单品展示地址 |
5.响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_sdkpay |
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.2 |
total_amount |
Number |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
currency |
String(3) |
N |
交易币种 CNY |
pay_info |
String |
Y |
Json格式字符串,SDK调起微信或支付宝支付所需要的支付参数信息 示例值:样例7.4 |
extra_common_param |
String |
N |
公共扩展参数 |
5.3 Json支付串 pay_info
参数 |
类型(字节长度) |
必填 |
参数说明 |
appid |
String |
N |
微信开放平台审核通过的应用APPID,banktype为微信【1902000】且为直连模式时此域不为空 |
partnerid |
String |
N |
微信支付分配的商户号,banktype为微信【1902000】且为直连模式时此域不为空 |
prepayid |
String |
N |
微信返回的支付交易会话ID,banktype为微信【1902000】且为直连模式时此域不为空 示例值:wx20170503114746f17f4dd0750562442033 |
package |
String |
N |
暂填写固定值Sign=WXPay,banktype为微信【1902000】且为直连模式时此域不为空 示例值:Sign=WXPay |
noncestr |
String |
N |
随机字符串,不长于32位,banktype为微信【1902000】且为直连模式时此域不为空 示例值:1493783266169 |
timestamp |
String |
N |
时间戳,banktype为微信【1902000】且为直连模式时此域不为空 示例值:1493783266 |
sign |
String |
N |
签名,banktype为微信【1902000】且为直连模式时此域不为空 示例值:482E0B832DF6714DCC6F72C6ACFFD28E |
alipay_token_id |
String |
N |
调起支付宝支付控件授权码banktype为支付宝【1903000】此域不为空 示例值:https://qr.alipay.com/bax08893mkprqric1q1r00de |
tenpay_token_id |
String |
N |
调起QQ钱包支付控件授权码banktype为QQ钱包【1904000】此域不为空 示例值:https://qpay.qq.com/qr/5d575996 |
applepay_tn |
String |
N |
调起Apple pay支付控件banktype为Apple pay【1906000】此域不为空 示例值:891342121991551706600 |
applepay_merchantId |
String |
N |
调起Apple pay支付控件banktype为Apple pay【1906000】此域不为空 示例值:777290058147034 |
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],精确到小数点后两位。示例值:100 |
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.1 |
channel_recv_sn |
String |
N |
渠道返回流水号 |
card_type |
String |
N |
卡类型credit:信用卡debit:借记卡 |
buyer_user_id |
String |
N |
支付宝用户Uid |
buyer_logon_id |
String |
N |
该字段于2023-9-1已不支持使用,请使用buyer_id对接,如有疑问请咨询银盛技术支持! |
payer_bank_account_no |
String |
N |
银联云闪付款方账号 |
extra_common_param |
String |
N |
公共扩展参数,版本号3.4及以上支持 |
alipay_trx_resp_coupon_info |
String |
N |
支付宝优惠信息,版本号3.5及以上支持 |
ali_merchant_amount |
String |
N |
支付宝商家优惠金额,版本号3.5及以上支持 |
ali_platform_dis_amount |
String |
N |
支付宝平台优惠金额,版本号3.5及以上支持 |
ali_goods_details |
String |
N |
支付宝营销单品信息,版本号3.5及以上支持List的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及以支持 |
6.1 支付宝营销 GoodsDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
id |
String(64) |
Y |
记录编号,唯一标识 |
tradesn |
String(30) |
Y |
银盛交易流水 |
seq |
Integer(4) |
Y |
银盛交易流水序列号 |
createtime |
Date |
Y |
记录创建时间 |
wxpayGoodsId |
String(32) |
N |
渠道单品标识 |
goodsName |
String(256) |
N |
营销单品名称 |
goodsId |
String(32) |
Y |
营销单品标识 |
goodsRemark |
String(256) |
N |
营销单品备注 |
quantity |
NUMBER(10) |
N |
营销单品数量 |
price |
NUMBER(15,4) |
N |
营销单品价格 |
type |
String(32) |
N |
记录类型 “WXREQ”:微信单品营销请求;“WXRESP”:微信单品营销渠道响应;“ALIREQ”:支付宝单品营销请求;“ALIRESP”:支付宝单品营销渠道响应 |
discountAmount |
NUMBER(15,4) |
Y |
抵扣金额 |
goodsDetailJson |
String(3000) |
N |
type为WXREQ/ALIREQ请求类型时,为原始传入的单品营销参数JSON字符串。type为WXRESP/ALIRESP时为渠道返回的单品营销响应原始信息JSON字符串 |
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": "商品数量"
}
7.4 支付参数 pay_info
{
"sign": "482E0B832DF6714DCC6F72C6ACFFD28E",
"timestamp": "1493783266",
"noncestr": "1493783266169",
"partnerid": "12723495",
"prepayid": "wx20170503114746f17f4dd0750562442033",
"package": "Sign=WXPay",
"appid": "26663518265333"
}
8.附录
8.1 支付网关编号
支付渠道代码 |
支付渠道 |
900000001 |
银联-支付宝 |
9000010 |
银联-微信 |
10810001 |
银联扫码-银联云闪付 |
10010001 |
网联-微信 |
10000012 |
网联-支付宝 |
8.2 交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
WAIT_SELLER_SEND_GOODS |
买家已付款,等待卖家发货 |
WAIT_BUYER_CONFIRM_GOODS |
卖家已发货,等待买家确认 |