反扫码支付
1、修订记录
修订 |
日期 |
说明 |
作者 |
v0.1 |
2021/05/17 |
新接口参数定义 |
江海龙 |
v0.2 |
2021/08/04 |
删除 province 、city |
|
v0.3 |
2021/09/23 |
支持反扫D0 |
|
v3.1 |
2021/11/17 |
T1和反扫快付,同步新增返回参数(pay_success_time) |
林竞 |
v3.11 |
2021/11/17 |
T1和反扫快付,同步新增返回参数(buyer_user_id,card_type), |
林竞 |
v3.12 |
2021/11/17 |
请求参数version为3.8时,异步返回参数新增(pay_success_time) |
林竞 |
v3.2 |
2021/12/27 |
新增支付宝上送门店信息参数(store_id,alipay_store_id,operator_id) |
林竞 |
v3.3 |
2021/12/27 |
支持国密 |
王晶 |
v3.4 |
2022/01/25 |
limit_credit_pay 新增花呗相关操作值:2禁用花呗,3禁用花呗分期,4禁用所有信用支付类型 |
刘雷 |
v3.5 |
2022/02/17 |
seller_name修改为非必填 |
王晶 |
v3.6 |
2022/03/17 |
version为3.9时 新增支付成功异步通知营销相关字段 |
刘雷 |
v3.7 |
2022/03/18 |
新增银联259号文条码改造相关字段 |
刘雷 |
v3.8 |
2022/05/13 |
新增支付宝刷脸参数相关字段 |
刘雷 |
v3.9 |
2022/10/19 |
对异步通知的coupon_Info的参数说明进行调整 |
刘军 |
v4.0 |
2022/12/14 |
新增支付宝业务拓展参数extend_params_channel |
刘军 |
V4.1 |
2023/01/09 |
新增花呗分期期数支持3期,新增分期类型fq_type |
林竞 |
V4.2 |
2023/01/09 |
新增同步响应参数发往渠道流水号channel_send_sn,渠道返回流水号channel_recv_sn |
林竞 |
V4.3 |
2023/4/13 |
新增请求参数服务商信息编号corp_src_superieor |
方立 |
V4.4 |
2023/5/08 |
新增银联单品信息列表unionPayGoodsDetails |
陈思达 |
2、业务说明
(1)场景说明
1、用户打开付款APP 如微信、支付宝 ,展示付款码;
2、收银员在商户系统操作生成支付订单,用户确认支付金额;
3、商户收银员用扫码设备扫描用户的条码/二维码,商户收银系统提交支付;
4、支付后台系统收到支付请求,根据验证密码规则判断是否验证用户的支付密码,不需要验证密码的交易直接发起扣款,需要验证密码的交易会弹出密码输入框。支付成功后会弹出成功页面,失败会弹出错误提示。
适用于各类商家系统,如大型商超、餐饮,连锁品牌等商家。商家需使用扫码枪等条码识别设备,扫描用户钱包上的 条码/二维码 完成收款,用户仅需出示付款码,所有收款操作由商家端完成
(2)接口说明
1、整合银联云闪付、微信、支付宝反扫接口,调用该接口进行反扫支付
2、收银员使用扫码设备读取用户 APP 展示的二维码后,商家系统识别付款APP, 通过系统调用该接口发起支付
3、当收单机构返回支付中或交易状态不明时, 需要调用交易查询接口查询订单实际支付状态。
4、notify_url 通知字段,支持成功时异步通知。
3、请求地址
4、参数说明
4.1公共请求参数
参数 |
类型(长度) |
必填 |
参数说明 |
method |
String(128) |
Y |
接口名称 固定值 ysepay.online.barcodepay |
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 |
RSA签名字符串,再用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.8 当前版本 3.8 |
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 |
商户系统的交易发生日期格式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小时后订单自动关闭 |
extend_params |
String(500) |
N |
业务扩展参数,一个json字符串,order_mode订单模式,暂时可选的值为:00 代表购物车模式;seller_list参与分账的收款方信息数组,每个元素包含seller_id收款方银盛支付用户号。实时分账业务,order_mode和seller_list均不能为空,order_mode的值必须为00。示例值:样例8.8 |
extra_common_param |
String(2000) |
N |
公用回传参数 商户自定义数据域,原样返回 |
business_code |
String(1,10) |
Y |
业务代码 ,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码 |
bank_type |
String(7, 9) |
N |
二维码行别,微信:1902000,支付宝:1903000,中国银联:9001002,招商银行:3085840 |
scene |
String(1,32) |
N |
支付场景,条码支付取值:bar_code 声波支付取值:wave_code 刷脸支付:security_code。注:当bank_type域为支付宝:1903000时,此域为必填字段。 |
auth_code |
String(1,1000) |
Y |
扫码支付授权码(APP中的付款码),设备读取用户展示的条码或者二维码信息 |
device_info |
String(32) |
N |
终端设备号。注:当bank_type域为中国银联:9001002时,此域为必填字段。银联反扫必传8位整数 ,支付宝上送终端号共用此字段 |
sub_merchant |
SubMerchantInfo |
N |
二级商户信息, Json格式 暂包括merName、merShortName、merAddr、telephone、merNo、category、mrchntCertId ,如果有值则二级商户信息都不能为空,如果没值则都不能有值 示例值:样例8.6 |
consignee_info |
ConsigeeInfo |
N |
收货人信息json格式 示例值:样例8.7 |
appid |
String(32) |
N |
微信分配的子商户公众号账号ID 示例值:wx8888888888888888 |
limit_credit_pay |
String(2) |
N |
是否限制信用卡。值为1表示禁用信用卡,0或为空表示不限制,2禁用花呗,3禁用花呗分期,4禁用所有信用支付类型 |
hb_fq_num |
String(2) |
N |
花呗分期期数,仅支付宝支付的时候生效,目前期数支持3,6,12 示例值:6 |
fq_type |
String(2) |
N |
分期类型,值为00表示花呗分期,值01表示信用卡分期。不填默认为花呗分期 |
allow_repeat_pay |
String(2) |
N |
是否允许多次支付,Y:允许;N:不允许(当参数为空或者Y时,如果该笔订单交易状态非成功状态时,支持选择其他支付方式继续付款, 当参数为N时表示当该笔订单交易状态为失败状态时,不支持选择其他支付方式继续付款) |
fail_notify_url |
String(190) |
N |
失败通知地址(交易状态为失败时,银盛支付服务器主动通知商户网站里指定的页面http路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3)注:只有不允许多次支付的交易才会通知 |
detail |
String(6000) |
N |
微信商品详情,单品优惠活动 示例值:样例8.1 |
aliGoodsDetails |
List |
N |
List 支付宝营销,单品详情列表 示例值:样例8.4 |
submer_ip |
String(16) |
N |
子商户ip 112.112.112.112 |
store_id |
String(32) |
N |
商户门店编号 |
alipay_store_id |
String(32) |
N |
支付宝的店铺编号 |
operator_id |
String(28) |
N |
商户操作员编号 |
union_qrcode_259_params |
UnionQrCodeBaseRequest |
N |
银联259号文条码改造字段,json格式 |
terminal_params |
String |
N |
支付宝刷脸支付时,商户传入设备终端字段,json格式 |
business_params |
String |
N |
支付宝刷脸支付时,商户传入的业务参数,应用于安全,营销参数等直接传入场景,json格式 |
extend_params_channel |
String |
N |
支付宝业务拓展参数json格式 示例值:样例8.9 |
corp_src_superieor |
String |
N |
服务商机构标识码 |
unionPayGoodsDetails |
List |
N |
List 银联单品营销,最多15个单品,单品详情列表 示例值:样例8.11 |
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 微信营销 detail
参数 |
类型(字节长度) |
必填 |
参数说明 |
cost_price |
double |
N |
订单原价,整数不超过14位,小数不超过2位,单位元 10.50 |
receipt_id |
String(32) |
N |
商品小票ID,长度不能超过32位 Ys001001 |
goods_detail |
List |
Y |
商品列表 |
4.5.1 goods 微信商品列表
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
商户商品编码,由半角的大小写字母,数字,下划线,中划线中的一种或者几种组成,长度不能超过32位 Shouji_abcef_001-001 |
wxpay_goods_id |
String(32) |
N |
微信支付定义的统一商品编号,长度不能超过32 1001 |
goods_name |
String(256) |
N |
商品的实际名称,长度不能超过256 手机 |
quantity |
int(10) |
Y |
数量,只能是正整数 1000 |
price |
Double |
Y |
商品单价,单位元,整数部分不能超过12位,小数不能超过2位 例 100.20 |
4.6 支付宝营销 AliGoodsDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
商品编号 apple-01 |
alipay_goods_id |
String(32) |
N |
支付宝定义的统一商品编号 20010001 |
goods_name |
String(256) |
Y |
营销商品名称 ipad |
quantity |
String(10) |
Y |
营销商品数量 不超过10位的正整数 |
price |
String(12) |
Y |
营销商品单价 [0,999999999] 左闭右闭区间,小数点两位 999999998.99 |
goods_category |
String(24) |
N |
支付宝商品类目 34543238 |
categories_tree |
String(128) |
N |
支付宝商品类目树,从商品类目根节点到叶子 节点的类目 id 组成,类目 id 值使用,用\ |
分隔 例 124868003\ |
126232002\ |
126252004 |
body |
String(1000) |
N |
营销商品描述 |
show_url |
String(400) |
N |
营销商品展示地址 |
4.7 银联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 |
密文数据 |
4.8 银联单品信息营销 UnionPayGoodsDetail
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String(32) |
Y |
商品编号 apple-01 |
|
goods_name |
String(256) |
Y |
营销商品名称 ipad |
quantity |
String(10) |
Y |
营销商品数量 不超过4位的正整数 |
price |
String(12) |
Y |
营销商品单价 [0,999999999] 左闭右闭区间,小数点两位 999999998.99 |
goods_category |
String(24) |
N |
支付宝商品类目 34543238 |
addnInfo |
String(100) |
N |
附加信息 内容自定义 |
5.同步响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_online_barcodepay_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 示例值:附录9.1 |
trade_status_ext |
String |
N |
交易扩展状态, 支付中可参考此状态,示例值:附录9.2 |
total_amount |
Number |
Y |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 示例值:100 |
account_date |
String(19) |
N |
银盛入账日期,格式"yyyy-MM-dd" 示值值:2017-05-01 |
openid |
String(128) |
N |
子商户appid下用户唯一标识 |
sub_msg |
String(50) |
N |
返回状态描述 参数格式校验错误 |
coupon_Info |
String(100) |
N |
银联优惠信息:coupon_Info优惠信息活动对象为多个时,coupon_Info中就有多方优惠信息spnsrId出资方,值为1时银联出资,值为2时付款方出资,值为3时商户出资offstAmt优惠金额 示例值:样例8.5 |
settlement_amount |
Number(10,2) |
N |
结算金额 示例值:100 |
is_discount |
String |
N |
是否参与优惠(总) Y\ |
N 示例值:Y |
total_discount _fee |
Double(10,2) |
N |
总优惠手续费 示例值:10.00 |
total_discount |
double(10,2) |
N |
总优惠金额 示例值:100.00 |
extra_common_param |
String(2000) |
N |
商户自定义数据域,原样返回 123456789 |
wxpay_coupon_info |
String |
N |
微信营销信息,详细信息是一个json串,交易成功时返回 示例值:样例8.2 |
wxpay_coupon_good_detail |
List |
N |
微信营销活动单品列表 json 组 示例值:样例8.3 |
alipay_coupon_info |
String(4000) |
N |
支付宝营销渠道响应优惠信息 JSON字符串 |
alipay_coupon_good_detail |
String(4096) |
N |
支付宝营销渠道响应商品详情信息 JSON字符串 |
pay_success_time |
String(19) |
N |
支付完成时间,格式"yyyy-MM-dd HH:mm:ss" 示例值:2014-07-24 03:07:50 |
buyer_user_id |
String(128) |
N |
支付宝用户Uid |
card_type |
String |
|
credit:信用卡debit:借记卡 示例值:credit |
risk_info |
String |
N |
风险信息json串 |
preferential_amount |
Double |
N |
优惠金额 示例值:样例1.2 |
preferential_fee |
Double |
N |
优惠手续费 示例值:样例0.02 |
marketing_rule_json |
String |
N |
营销规则 json |
channel_send_sn |
String(50) |
N |
发往渠道流水号 |
channel_recv_sn |
String(50) |
N |
渠道返回流水号 |
5.3 微信营销 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 |
5.4 微信营销列表 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 |
promotionId |
String(32) |
Y |
券或者立减优惠id 关联 promotionDetail.promotion_id 例 456789 |
5.5 支付宝营销 alipay_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 |
5.5.1 AlipayTradeFundBill(支付金额)
参数 |
类型(字节长度) |
必填 |
参数说明 |
fund_channel_str |
String(32) |
Y |
资金渠道 参考 (支付渠道代码) ALIPAYACCOUNT |
bank_code |
String(20) |
N |
银行卡支付时的银行代码 CEB |
amount |
double |
Y |
该支付类型所使用的金额 例 10 |
real_amount |
double |
N |
渠道实际付款金额 例 11.21 |
fund_type_str |
String |
N |
集分宝支付金额 |
5.5.2 VoucherDetail(所有优惠券)
参数 |
类型(字节长度) |
必填 |
参数说明 |
id |
String(32) |
Y |
券 id2015102600073002039000002D5O |
name |
String(64) |
Y |
券名称 XX 超市 5 折优惠 |
type_str |
String(32) |
Y |
券类型 ALIPAY_FIX_VOUCHER 参考 券类型 |
amount |
double |
Y |
优惠券面值 会等于商家出资加上其他出资方出资 |
merchant_contribute |
double |
N |
商家出资 |
other_contribute |
double |
N |
其他出资方出资金额 |
memo |
String(256) |
N |
优惠券备注信息 学生专用优惠 |
template_id |
String(64) |
N |
卷模板id 20171030000730015359000EMZP0 |
other_contribute_detail |
List |
N |
优惠券的其他出资方明细 |
purchase_buyer_contribute |
double |
N |
用户在购买这张券时用户实际付款的金额 |
purchase_merchant_contribute |
double |
N |
用户在购买这张券时商户优惠的金额 |
purchase_ant_contribute |
double |
N |
用户在购买这张券时平台优惠的金额 |
5.5.2.1 响应参数 ContributeDetail 说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
contribute_type |
String |
Y |
出资方类型,如品牌商出资、支付宝平台出资等 BRAND |
contribute_amoun |
double |
Y |
出资方金额 8.00 |
5.6 支付宝营销 alipay_coupon_good_detail
参数 |
类型(字节长度) |
必填 |
参数说明 |
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字符串 |
type参数说明:WXREQ”:微信单品营销请求;“WXRESP”:微信单品营销渠道响应;“ALIREQ”:支付宝单品营销请求;“ALIRESP”:支付宝单品营销渠道响应;
goodsDetailJson参数说明:type为WXREQ/ALIREQ请求类型时,为请求时传入值。type为WXRESP/ALIRESP时为渠道返回的响应值
5.6.1 type为“ALIRESP”时响应参数goodsDetailJson说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
good_id |
String(32) |
Y |
商品的编号 |
discount_amount |
double |
Y |
抵扣金额 |
voucher_id |
String(32) |
Y |
劵id |
5.6.2 type为“WXRESP”时响应参数goodsDetailJson说明
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String |
Y |
商品编码 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 |
goods_remark |
String |
N |
商品备注 goods_remark 为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。 1001 |
discount_amoun |
double |
Y |
商品优惠金额 单品的总优惠金额,单位为:元 |
quantity |
int |
Y |
优惠类型 用户购买的数量 |
price |
double |
Y |
商品价格 单位为:元。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的纸质优惠券 100-50,则活动商品的单价应为原单价-50) |
5.6.3 type为“WXREQ”时响应参数goodsDetailJson说明
参数 |
类型(字节长度) |
必填 |
备注 |
goods_id |
String |
Y |
商品编码 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 |
wxpay_goods_id |
String |
N |
微信侧商品编号 |
goods_name |
String |
N |
商品名称 |
quantity |
int |
Y |
商品数量 用户购买的数量 |
price |
double |
Y |
商品价格 单位为:元 |
promotionId |
String |
Y |
券id 45678 |
5.6.4 type为“ALIREQ”时响应参数goodsDetailJson说明
参数 |
类型(字节长度) |
必填 |
样例 |
goods_id |
String(32) |
Y |
商品的编号 apple-01 商品 SKU 编码;卷配置中, 可优惠商品编码中配置的编码 |
alipay_goods_id |
String(32) |
N |
支付宝定义的统一商品编号 |
goods_name |
String(256) |
Y |
商品名称 ipad |
quantity |
int(10) |
Y |
商品数量 1 |
price |
double |
N |
商品单价,单位为元 100.00 |
goods_category |
String(24) |
N |
商品类目 34543238 |
categories_tree |
String(128) |
N |
商品类目树,从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割124868003\ |
126232002\ |
126252004 |
body |
String(1000) |
N |
商品描述信息 特价手机 |
show_url |
String(400) |
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 |
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等具体详情看下文中的交易状态详解 |
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(汇总) |
total_discount_fee |
double |
N |
参考优惠手续费(汇总) 10.00 |
total_discount |
double |
N |
参考优惠金额(汇总) 100.00 |
extra_common_param |
String |
N |
公用回传参数 商户自定义数据域 ,原样返回 123456789 |
wxpay_coupon_info |
String |
N |
微信优惠活动优惠明细 Json 参考 附录及定义 |
wxpay_coupon_good_detail |
List |
N |
微信优惠活动单品信息 Json 参考 附录及定义 |
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 |
List |
N |
支付宝营销单品信息,List JSON字符串 |
pay_success_time |
String |
N |
支付完成时间,格式"yyyy-MM-dd HH:mm:ss" 示例值:2014-07-24 03:07:50 版本号3.8及以上支持 |
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_good_detail
参数 |
类型(字节长度) |
必填 |
参数说明 |
goods_id |
String |
Y |
商品编码 由半角的大小写字母、数字、中划线、下划线中的种或几种组成 |
goods_remark |
String |
Y |
商品备注 goods_remark 为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。 |
discount_amount |
double |
Y |
商品优惠金额 单品的总优惠金额,单位为元 |
quantity |
Int |
Y |
商品数量 用户购买的数量 |
price |
double |
N |
商品价格 单位为:元。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的纸质优惠券 100-50,则活动商品的单价应为原单价-50) |
promotionId |
String |
N |
券id |
6.2 支付宝 ali_goods_details
参数 |
类型(字节长度) |
必填 |
参数说明 |
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 |
记录类型 |
discountAmount |
NUMBER(15,4) |
Y |
抵扣金额 |
goodsDetailJson |
String(3000) |
N |
营销信息(参考 响应定义) |
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 |
活动打印信息,内容自定义 |
7.服务器交易失败异步通知
银盛支付对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
参数 |
类型(字节长度) |
SS必填 |
参数说明 |
sign_type |
String |
YSS |
签名类型,请求时的签名类型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 |
商户系统生成的订单号 示例值: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等具体详情看下文中的交易状态详解 |
result_note |
String |
N |
交易结果描述,当交易失败时,保存错误描述 |
8.样例
Json串为原始串,变成字符串时,会添加\“等转义符进去
8.1 detail 字段值
{
"cost_price":608800,
"receipt_id":"wx123",
"goods_detail":[
{
"goods_id":"商品编码",
"wxpay_goods_id":"1001",
"goods_name":"",
"quantity":1,
"price":528800
},
{
"goods_id":"商品编码",
"wxpay_goods_id":"1002",
"goods_name":"iPhone6s 32G",
"quantity":1,
"price":608800
}
]
}
8.2 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
}
8.3 wxpay_coupon_good_detail
{
"discount_amount": 4,
"goods_id": "11111",
"goods_remark": "商品名称",
"price": 26.1,
"quantity": 1
}
8.4 AliGoodsDetail 营销信息
[
{
"goods_id":"apple-01",
"alipay_goods_id":"20010001",
"goods_name":"ipad",
"quantity":1,
"price":2000,
"goods_category":"34543238",
"categories_tree":"124868003| 126232002| 126252004",
"body":"特价手机",
"show_url":"http://www.alipay.com/xxx.jpg"
}
]
8.5 coupon_info 信息
[{
"spnsrId": "1",
"offstAmt": 1
}, {
"spnsrId": "2",
"offstAmt": 2
}]
8.6 sub_merchant 说明
{
"merName": "二级商户名称",
"merShortName": "二级商户简称",
"merAddr": "二级商户地址",
"telephone": "二级商户服务电话",
"merNo": "二级商户编号",
"category": "类目",
"mrchntCertId": "身份证号"
}
8.7 收信人信息 consignee_info
{
"consigneeName": "收货人姓名",
"consigneeAddr": "收货地址",
"transportationInfo": "物流配送信息",
"commodityName": "商品名称",
"commodityNumber": "商品数量"
}
8.8 业务扩展 extend_params
{
"cartTYpe": "00",
"order_mode": "01",
"seller_list": [{
"seller_id": "123"
}, {
"seller_id": "456"
}]
}
8.9 支付宝业务拓展参数extend_params_channel
{
"food_order_type": "qr_order"
}
8.9 SDK调用示例
- 银盛将与服务端交互的接口封装在开发工具包(SDK)中,开发者无需自行实现同服务端交互的复杂逻辑,直接将SDK导入自己的工程后,通过sdk示例代码实现同银盛服务端的交互。
@Test
public void barcodepayTest() throws Exception {
OnlineReqDataVo reqDataVo = new OnlineReqDataVo();
reqDataVo.setReqUrl("https://qrcode.ysepay.com/gateway.do");
reqDataVo.setPartnerId("hyfz_test2");
reqDataVo.setNotifyUrl("http://127.0.0.1");
reqDataVo.setPrivateKeyFilePath("D:/cer/hyfz_test2.pfx");
reqDataVo.setPrivateKeyPassword("123456");
reqDataVo.setYsPublicKeyFilePath("D:/cer/businessgate.cer");
reqDataVo.setTranType("1");
Map<String, Object> bizContent = new HashMap<>();
bizContent.put("out_trade_no", "201805256843192280647118");
bizContent.put("shopdate", "20211013");
bizContent.put("subject", "反扫码支付测试");
bizContent.put("total_amount", "2.99");
bizContent.put("currency", "CNY");
bizContent.put("seller_id", "hyfz_test2");
bizContent.put("seller_name", "银盛支付服务股份有限公司行业发展部");
bizContent.put("timeout_express","96h");
bizContent.put("extend_params","{\"cartTYpe\": \"00\",\"order_mode\": \"01\",\"seller_list\": [{\"seller_id\": \"123\"},{\"seller_id\": \"456\"}]}");
bizContent.put("extra_common_param", "extra_common_param");
bizContent.put("business_code", "00510080");
bizContent.put("bank_type", "1903000");
bizContent.put("scene", "bar_code");
bizContent.put("auth_code", "23423");
bizContent.put("device_info", "");
JSONObject subMerchantInfoJson = new JSONObject();
subMerchantInfoJson.put("merName","");
subMerchantInfoJson.put("merShortName","");
subMerchantInfoJson.put("merAddr","");
subMerchantInfoJson.put("telephone","");
subMerchantInfoJson.put("merNo","");
subMerchantInfoJson.put("category","");
subMerchantInfoJson.put("mrchntCertId","");
bizContent.put("sub_merchant",subMerchantInfoJson);
JSONObject consigneeInfoJson = new JSONObject();
subMerchantInfoJson.put("consigneeName","");
subMerchantInfoJson.put("consigneeAddr","");
subMerchantInfoJson.put("transportationInfo","");
subMerchantInfoJson.put("commodityName","");
subMerchantInfoJson.put("commodityNumber","");
bizContent.put("consignee_info",consigneeInfoJson);
JSONObject crossBorderInfo = new JSONObject();
subMerchantInfoJson.put("cross_border_name","");
crossBorderInfo.put("cross_border_idno","");
crossBorderInfo.put("cross_border_card_number","");
crossBorderInfo.put("cross_border_mobile","");
crossBorderInfo.put("cross_border_tag","");
bizContent.put("cross_border_info",crossBorderInfo);
bizContent.put("appid", "wx8888888888888888");
bizContent.put("province",null);
bizContent.put("city",null);
bizContent.put("limit_credit_pay","0");
bizContent.put("hb_fq_num","6");
bizContent.put("allow_repeat_pay","N");
bizContent.put("fail_notify_url","http://127.0.0.1");
JSONObject detail = new JSONObject();
detail.put("cost_price",0.23);
detail.put("receipt_id","Ys001001");
JSONArray goodsDetail = new JSONArray();
JSONObject goods = new JSONObject();
goods.put("goods_id","Shouji_abcef_001-001");
goods.put("wxpay_goods_id","1001");
goods.put("goods_name","手机");
goods.put("quantity",1000);
goods.put("price",100.20);
goodsDetail.add(goods);
detail.put("goods_detail",goodsDetail);
bizContent.put("detail",detail);
JSONArray aliGoodsDetails = new JSONArray();
JSONObject aliGoodsDetail = new JSONObject();
aliGoodsDetail.put("goods_id","Shouji_abcef_001-001");
aliGoodsDetail.put("alipay_goods_id","1001");
aliGoodsDetail.put("goods_name","手机");
aliGoodsDetail.put("quantity",1000);
aliGoodsDetail.put("price",100.20);
aliGoodsDetail.put("goods_category","");
aliGoodsDetail.put("categories_tree","");
aliGoodsDetail.put("body","");
aliGoodsDetail.put("show_url","");
aliGoodsDetails.add(aliGoodsDetail);
bizContent.put("aliGoodsDetails",aliGoodsDetails);
bizContent.put("submer_ip","112.112.112.112");
reqDataVo.setParamData(bizContent);
String result = null;
try{
System.out.println("反扫码支付-调用sdk接口barcodepay请求入参为:"+ JSONObject.toJSONString(reqDataVo));
result = ScanCodePayApi.barcodepay(reqDataVo);
}catch (Exception e){
System.out.println("反扫码支付-失败:"+e.getCause().getMessage());
e.printStackTrace();
}
System.out.println("反扫码支付-调用sdk接口barcodepay返回结果为:"+result);
}
8.10 API接口代码示例
- 需要开发者自己封装调用逻辑,实现调用银盛api接口同银盛服务端交互,该示例没有加签验签及发送http请求代码,需自行下载demo查看。
public static void main(String[] args) {
Map<String,String> mapData = new HashMap<>();
mapData.put("method", "ysepay.online.barcodepay");
mapData.put("partner_id","hyfz_test2");
mapData.put("timestamp", DateUtil.getDateNow());
mapData.put("charset","utf-8");
mapData.put("sign_type","RSA");
mapData.put("notify_url","http://127.0.0.1");
mapData.put("version","3.0");
JSONObject json = new JSONObject();
json.put("out_trade_no", SerialGenerator.getOrder());
json.put("shopdate",DateUtil.getDateNowYmd());
json.put("subject","扫码支付测试");
json.put("timeout_express","96h");
json.put("total_amount","0.01");
json.put("currency","CNY");
json.put("seller_id","hyfz_test2");
json.put("seller_name","银盛支付服务股份有限公司行业发展部");
json.put("business_code","01000010");
json.put("bank_type","1903000");
json.put("scene","bar_code");
json.put("auth_code","280540348433980465");
JSONObject json_detail = new JSONObject();
json_detail.put("cost_price","1.0");
json_detail.put("receipt_id","5432");
JSONObject json_detail_good = new JSONObject();
json_detail_good.put("goods_id","5432");
json_detail_good.put("wxpay_goods_id","543");
json_detail_good.put("goods_name","测试商品");
json_detail_good.put("quantity","1");
json_detail_good.put("price","1.0");
json_detail.put("goods_detail",json_detail_good.toString());
json.put("detail",json_detail.toString());
mapData.put("biz_content",json.toString());
try{
log.info("待签名参数:"+ CommonUtil.mapToString(mapData));
String sign = YsPaySignUtils.sign(mapData);
mapData.put("sign",sign);
} catch (Exception e){
log.info("签名失败:"+e);
}
log.info("请求参数:"+CommonUtil.mapToString(mapData));
String result = HttpRequest.sendPost("https://qrcode.ysepay.com/gateway.do",CommonUtil.mapToString(mapData));
log.info("接口回执:"+result);
if(StringUtil.isBlank(result) | | null == result){
log.info("接口返回结果为空!");
}
JSONObject resultJson = JSONObject.parseObject(result, Feature.OrderedField);
String resultContent = resultJson.getString("ysepay_online_barcodepay_response");
String resultSign = resultJson.getString("sign");
boolean resultVerify = false;
try{
resultVerify = YsPaySignUtils.resultVerify1(resultContent,resultSign);
} catch (Exception e){
log.info("验签异常:"+e);
}
if(!resultVerify){
log.info("接口验签失败");
}
}
8.11 UnionPayGoodsDetail 营销信息
[
{
"goods_id":"apple-01",
"goods_name":"ipad",
"quantity":1,
"price":2000,
"goods_category":"34543238",
"addnInfo":"内容自定义"
}
]
9.附录
9.1 交易状态(trade_status)
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易;客户主动关闭订单。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PART_REFUND |
部分退款成功。 |
TRADE_ALL_REFUND |
全部退款成功。 |
TRADE_PROCESS |
交易正在处理中,可对该交易做查询,避免重复支付。 |
TRADE_FAILD |
交易失败 |
9.2 交易扩展状态(trade_status_ext)
枚举名称 |
枚举说明 |
TRADE_USERPAYING |
用户支付中,需要输入密码,可对该交易做查询,避免重复支付。此时交易状态为TRADE_PROCESS |
9.3 支付宝-支付渠道代码
支付渠道代码 |
支付渠道 |
COUPON |
支付宝红包 |
ALIPAYACCOUNT |
支付宝账户 |
POINT |
集分宝 |
DISCOUNT |
折扣券 |
PCARD |
预付卡 |
MCARD |
商家储值卡 |
MDISCOUNT |
商户优惠券 |
MCOUPON |
商户红包 |
BANKCARD |
银行卡 |
9.4 支付宝-券类型
注:不排除将来渠道新增其他类型的可能,商家接入时注意兼容性避免硬编码
支付渠道代码 |
支付渠道 |
ALIPAY_FIX_VOUCHER |
全场代金券 |
ALIPAY_DISCOUNT_VOUCHER |
折扣券 |
ALIPAY_ITEM_VOUCHER |
单品优惠券 |
ALIPAY_CASH_VOUCHER |
现金抵价券 |
ALIPAY_BIZ_VOUCHER |
商家全场券 |
9.5 支付网关编号
支付渠道代码 |
支付渠道 |
900000001 |
银联-支付宝 |
9000010 |
银联-微信 |
10810001 |
银联扫码-银联云闪付 |
10010001 |
网联-微信 |
10000012 |
网联-支付宝 |
9.6 响应码介绍
响应码(code) |
响应信息(msg) |
10000 |
Success |
40003 |
业务参数验证错误 |
40001 |
Missing Required Arguments |
40004 |
业务异常 |
50000 |
业务处理中 |
3501 |
您的操作过于频繁,请稍后再试 |