SaaS服务码支付
1、修订记录
修订 |
日期 |
说明 |
作者 |
0.1 |
2020/11/11 |
新接口参数定义 |
康少雄 |
0.2 |
2021/06/22 |
支持saas服务码D0 |
王晶 |
0.3 |
2021/12/23 |
增加子商户ip submer_ip |
刘雷 |
0.4 |
2021/12/27 |
支持国密 |
王晶 |
0.5 |
2022/02/17 |
seller_name修改为非必填 |
王晶 |
0.6 |
2022/03/17 |
version为3.9时 新增支付成功异步通知营销相关字段 |
刘雷 |
0.7 |
2022/03/18 |
新增银联259号文条码改造相关字段 |
刘雷 |
0.8 |
2022/10/19 |
对异步通知coupon_info字段的参数说明进行调整,及在异步通知中添加alipay_trx_resp_coupon_info,ali_goods_details, ali_platform_dis_amount,ali_merchant_amount参数字段 |
刘军 |
2、业务说明
(1)场景说明
为满足商户对接“方便快捷”的支付需求,设计了银盛支付SaaS服务码API支付业务。商户仅需对接一个支付接口,即可完成微信、支付宝、银联云闪付聚合扫码支付的开发对接, 满足商户特定场景和特定内容的需要
(2)接口说明
新增聚合订单二维码api,以满足更多业务场景的需求。
3、请求地址
4、请求参数说明
4.1公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值 ysepay.online.polycodepay |
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.2/3.5 当前版本3.5 |
tran_type |
String(1) |
N |
交易类型,说明:1或者空:非担保交易,2:担保交易(D0不支持),无特殊需求 不用填此字段 |
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 |
商户系统的交易发生日期格式yyyyMMdd 示例值: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小时后订单自动关闭 |
business_code |
String(1,10) |
Y |
业务代码,saas服务码T1: 00510046,saas服务码D0: 00510047(不支持担保交易) |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
submer_ip |
String(16) |
N |
子商户ip 112.112.112.112 |
union_qrcode_259_params |
UnionQrCodeBaseRequest |
N |
银联259号文条码改造字段,json格式 |
4.2.1 银联259号文条码改造字段 UnionQrCodeBaseRequest
参数 |
类型(字节长度) |
必填 |
参数说明 |
terminal_no |
String(8) |
Y |
终端号,收单机构为商户终端分配的唯一编号 |
terminal_type |
String(2) |
Y |
终端类型(线下交易场景必填):01 自动柜员机(含 ATM 和 CDM)和多媒体自助终端、02 传统 POS、03 mPOS、04 智能 POS、05 II 型固定电话、06 云闪付终端、07 保留使用、08 手机 POS、09 刷脸付终端、10 条码支付受理终端、11 辅助受理终端、12 行业终端(公交、地铁用于指定行业的终端)、13 MIS 终端 |
serial_num |
String(50) |
O |
终端序列号,备注:终端类型为 02;03;04;05;06;08;09或10时,必须填写终端序列号 |
network_license |
String(5) |
N |
银行卡受理终端产品入网认证编号,备注:终端类型为 02;03;04;05;06;08;09或10时,终端设备如果有相关参数,建议填写 |
app_version |
String(5) |
N |
终端应用程序的版本号,备注:终端类型为 02;03;04;05;06;08;09或10时,建议填写。终端应用程序的版本号,应用程序变更应保证版本号不重复。 |
terminal_gps |
String(32) |
O |
交易设备位置信息,格式:纬度/经度,东经为正数,西经为负数;北纬为正数,南纬为负数,线下交易场景、terminal_ip和terminal_gps 二者选其一 必填 |
terminal_ip |
String(8) |
O |
商户端终端设备 IP 地址。注:如经、维度信息未上送,该字段必送。 |
encryp_rand_num |
String(10) |
N |
加密随机因子 |
secret_text |
String(16) |
N |
密文数据 |
5、响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_polycodepay_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
5.2 业务响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
code |
String |
Y |
响应代码 |
msg |
String |
Y |
响应代码描述 |
out_trade_no |
String(32) |
Y |
商户系统生成的订单号 示例值:6843192280647118 |
trade_no |
String(30) |
N |
银盛支付交易流水号 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS 示例值:附录8.1 |
total_amount |
Number |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:100 |
currency |
String(3) |
N |
币种 默认CNY(人民币) |
poly_code_url |
String(1024) |
Y |
聚合订单码地址 示例值:http://qpay.qq.com/qr/0e02ebc4 |
extra_common_param |
String(2000) |
N |
商户自定义数据域,原样返回 例123456789 |
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 |
商户系统生成的订单号 示例值:6843192280647118 |
total_amount |
Number |
N |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。示例值:100 |
trade_no |
String(30) |
N |
银盛支付交易流水号 |
trade_status |
String |
Y |
交易目前所处的状态。成功状态的值: TRADE_SUCCESS\ |
TRADE_CLOSED 示例值:附录8.1 |
account_date |
String(10) |
N |
入账的时间,格式"yyyyMMdd" 示例值:20140724 |
openid |
String(128) |
N |
子商户appid下用户唯一标识 |
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 |
coupon_info |
String |
N |
JSON字符串,银联营销渠道响应优惠信,version小于3.6版本为List的JSON字符串,3.6版本(含)以上为CouponInfo的JSON字符串 |
settlement_amount |
Number |
N |
结算金额 示例值:100 |
channel_send_sn |
String(50) |
N |
发往渠道流水号 示例值:12345678a |
paygate_no |
String(16) |
N |
支付网关编号 参考附录 示例值:10000 |
channel_recv_sn |
String(50) |
N |
渠道返回流水号 示例值:12345678a |
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 |
银联云闪付款方账号 |
is_discount |
String |
N |
是否参与优惠,Y/N 版本3.3及以上支持 |
total_discount_fee |
double |
N |
参考优惠手续费(汇总) 10.00;版本3.3及以上支持 |
total_discount |
double |
N |
参考优惠金额(汇总) 10.00;版本3.3及以上支持 |
wxpay_coupon_info |
String |
N |
微信优惠明细 版本3.3及以上支持 示例值:样例7.1 |
wxpay_coupon_good_detail |
List |
N |
微信营销单品json 组 版本3.3及以支持 示例值:样例7.2 |
alipay_trx_resp_coupon_info |
String(4000) |
N |
支付宝营销渠道响应优惠信息 JSON字符串,具体见6.5 |
ali_merchant_amount |
String |
N |
支付宝商家优惠金额,版本号3.5及以上支持 |
ali_platform_dis_amount |
String |
N |
支付宝平台优惠金额,版本号3.5及以上支持 |
ali_goods_details |
String(4096) |
N |
支付宝营销渠道响应商品详情信息 JSON字符串,具体见6.6 |
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 wxpay_coupon_info(微信营销)
参数 |
类型(字节长度) |
必填 |
参数说明 |
fee_type |
String(16) |
N |
标价币种,默认CNY |
total_fee |
double |
Y |
标价金额,订单总金额,单位为元 12.00 |
cash_fee_type |
String(16) |
N |
现金支付币种,默认CNY |
cash_fee |
double |
Y |
现金支付金额 :订单现金支付金额(即客户实际付款金额),单位元 1.01 |
settlement_total_fee |
double |
N |
现金支付金额:当订单使用了免充值型优惠券后返回该参数,应结订单金额=订单金额-免充值优惠券金额。单位元 |
coupon_fee |
double |
N |
代金券金额:代金券”金额<=订单金额,订单金额-“代金券”金额=现金支付金额,单位元 |
ext |
String |
N |
附录字段 |
promotionDetail |
String |
Y |
单品优惠活动,详细信息如下 json |
参数 |
类型(字节长度) |
必填 |
参数说明 |
promotion_id |
String(32) |
Y |
券 ID券或者立减优惠ID 例 109519 |
name |
String(64) |
N |
优惠名称 例 单品惠-6 |
scope |
String(32) |
N |
优惠范围 GLOBAL- 全场代金券;SINGLE- 单品优惠 例 SINGLE |
type |
String(32) |
N |
优惠类型COUPON- 代金券,需要走结算资金的充值型代金券,(境外商户券币种与支付币种一致)DISCOUNT- 优惠券,不走结算资金的免充值型优惠券,(境外商户券币种与标价币种一致 例 DISCOUNT |
amount |
double |
Y |
用户享受优惠的金额(优惠券面额=微信出资金额+商家出资金额+其他出资方金额 ),单位:元 例 5.00 |
activity_id |
String(32) |
N |
活动 ID,在微信商户后台配置的批次 ID 例 931386 |
wxpay_contribute |
String(32) |
N |
微信出资 特指由微信支付商户平台创建的优惠,出资金额 等于本项优惠总金额,单位为元 例 0.00 |
merchant_contribute |
String(32) |
N |
商户出资 特指商户自己创建的优惠,出资金额等于本项优惠总金额,单位为元 例 0.00 |
other_contribute |
String(32) |
N |
其他出资 其他出资方出资金额,单位为元 例 5.00 |
6.2 wxpay_coupon_good_detail(微信营销列表)
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
商户商品编码 由半角的大小写字母、数字、中划线、下划线中的种或几种组成 例 109519 |
goods_remark |
String(128) |
N |
商品备注 goods_remark 为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。例 1001 |
discount_amount |
double |
Y |
商品优惠金额 单品的总优惠金额,单位为元 例 1.00 |
quantity |
Int |
Y |
商品数量 用户购买的数量 例 11 |
price |
double |
Y |
商品价格 单位为:元。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的纸质优惠券 100-50,则活动商品的单价应为原单价-50) 例 5288.00 |
6.3 银联 CupQrCouponDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方,1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
6.4 银联 CouponInfo
参数 |
类型(字节长度) |
必填 |
参数说明 |
amount |
Double |
Y |
清算金额 ,单位为元 |
origAmount |
Double |
Y |
订单金额, 单位为元,商户提交的订单金额 |
cupQrCouponDetail |
List |
N |
优惠信息-二维码,成功的二维码类交易交易必填,活动维度的优惠展示 |
issAddnData |
IssAddnData |
N |
付款方附加数据,交易成功返回,商品维度的优惠展示 |
cupAcpCouponInfo |
CupAcpCouponInfo |
N |
优惠信息全渠道,成功的全渠道类交易(如:Wap,手机控件 等)必填,活动维度的优惠展示 |
6.4.1 CupQrCouponDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
spnsrId |
double |
Y |
出资方,1:银联出资,2:付款方(比如银行)出资,3:商户出资offstAmt |
offstAmt |
double |
Y |
出资金额 ,单位为元 |
6.4.2 IssAddnData
参数 |
类型(字节长度) |
必填 |
参数说明 |
样例 |
dctDetail |
List |
N |
商品优惠信息 |
交易成功,且请求参数中的收款方附加信息域中的单品命中优惠。商品维度展示优惠信息。 |
6.4.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.4.3 CupAcpCouponInfo说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
discountAmt |
double |
Y |
总的优惠金额,单位:元,注:退货的时候返回,表示总的优惠回退金额 |
mchtDiscountAmt |
double |
N |
商户出资金额,单位:元,注:退货的时候返回,表示商户出资的回退金额 |
activityId |
String |
N |
活动编号,票券编号、活动编号等,格式自定义 |
activityNm |
String |
N |
活动简称,优惠活动简称,可用于展示、打单等 |
addnPrintInfo |
String |
N |
活动打印信息,内容自定义 |
6.5 支付宝营销 alipay_trx_resp_coupon_info
参数 |
类型(字节长度) |
必填 |
参数说明 |
total_amount |
double |
Y |
订单金额 单位为元 |
receipt_amount |
double |
Y |
商户实收金额 商家在交易中实际收到的款项, 单位为元 |
buyer_pay_amount |
double |
Y |
用户实付金额 用户在交易中支付的金额,单位为元。 |
invoice_amount |
double |
Y |
开票金额 用户在交易中支付的可开具发票的金额 |
point_amount |
double |
Y |
集分宝支付金额 使用集分宝付款的金额 |
fund_bill_list |
List |
Y |
支付金额信息 |
voucher_detail_list |
List |
N |
本交易支付时使用的所有优惠券信息 |
gmt_payment |
String |
Y |
交易支付时间 2014-11-27 15:45:57 |
6.5.1 AlipayTradeFundBill
参数 |
类型(字节长度) |
必填 |
参数说明 |
fund_channel_str |
String |
Y |
交易使用的资金渠道 示例值:ALIPAYACCOUNT |
bank_code |
String |
N |
银行卡支付时的银行代码 示例值:CEB |
amount |
double |
Y |
该支付工具类型所使用的金额 示例值:10.00 |
real_amount |
double |
N |
渠道实际付款金额 示例值:11.21 |
fund_type_str |
String |
N |
集分宝支付金额 示例值:11.21 |
6.5.2 VoucherDetail 说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
id |
String |
Y |
券 id,示例值:必填 |
name |
String |
Y |
券名称 |
type_str |
String |
Y |
券类型 示例值:ALIPAY_FIX_VOUCHER |
amount |
double |
Y |
优惠券面值 |
merchant_contribute |
double |
N |
商家出资 |
other_contribute |
double |
N |
其他出资方出资金额 |
memo |
String |
N |
优惠券备注信息 |
template_id |
String |
N |
卷模板id 示例值:20171030000730015359000EMZP0 |
other_contribute_detail |
List |
N |
List 优惠券的其他出资方明细 |
purchase_buyer_contribute |
double |
N |
|
purchase_merchant_contribute |
double |
N |
|
purchase_ant_contribute |
double |
N |
6.6 支付宝营销 ali_goods_details
参数 |
类型(字节长度) |
必填 |
参数说明 |
id |
String(64) |
Y |
记录编号,唯一标识 |
tradesn |
String(30) |
Y |
银盛交易流水 |
seq |
Integer(4) |
Y |
银盛交易流水序列号 |
createtime |
String |
Y |
创建时间 2014-11-27 15:45:57 |
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 |
记录类型 参考 下表类型 |
discountAmount |
NUMBER(15,4) |
Y |
抵扣金额 |
goodsDetailJson |
String(3000) |
N |
单品营销参数JSON字符串 |
7、样例
7.1 wxpay_coupon_info
{
"cash_fee": 22.09,
"cash_fee_type": "CNY",
"coupon_fee": 4,
"fee_type": "CNY",
"promotionDetails": [{
"activity_id": "72560",
"amount": 4,
"merchant_contribute": 0,
"name": "21--30 单品免充 4",
"other_contribute": 4,
"promotion_id": "0219457",
"scope": "SINGLE",
"type": "DISCOUNT",
"wxpay_contribute": 0
}],
"settlement_total_fee": 22.09,
"total_fee": 26.09
}
7.2 wxpay_coupon_good_detail
{
"discount_amount": 4,
"goods_id": "11111",
"goods_remark": "商品名称",
"price": 26.1,
"quantity": 1
}
7.3 coupon_Info 银联优惠
[{
"spnsrId": "1",
"offstAmt": 1
}, {
"spnsrId": "2",
"offstAmt": 2
}]
8、附录
8.1 交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
WAIT_SELLER_SEND_GOODS |
买家已付款,等待卖家发货 |
WAIT_BUYER_CONFIRM_GOODS |
卖家已发货,等待买家确认 |
8.2 参考错误码
错误码 |
错误描述 |
解决方案 |
ACQ.SYSTEM_ERROR |
系统错误 |
请调用查询接口查询订单状态 |
ACQ.CONNECT_PAYGATE_TIME_OUT |
业务超时 |
请调用查询接口查询订单状态 |
ACQ.INVALID_PARAMETER |
参数无效 |
检查请求参数,修改后重新发起请求 |
8.3 支付网关编号
支付渠道代码 |
支付渠道 |
900000001 |
银联-支付宝 |
9000010 |
银联-微信 |
10810001 |
银联扫码-银联云闪付 |
10010001 |
网联-微信 |
10000012 |
网联-支付宝 |