反扫码支付

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、请求地址

环境 HTTPS请求地址
正式环境 https://qrcode.ysepay.com/gateway.do

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

5.3.1 响应参数 promotionDetail

参数 类型(字节长度) 必填 参数说明
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 字段值

//注意goods_detail字段的格式为"goods_detail":[{}],较多商户写成"goods_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 {
        /**1、组装调用反扫码支付 ScanCodePayApi.barcodepay需要的参数*/
        OnlineReqDataVo reqDataVo = new OnlineReqDataVo();
        //请求路径,具体见文档
        reqDataVo.setReqUrl("https://qrcode.ysepay.com/gateway.do");

        //商户在银盛支付平台开设的用户号[商户号]
        reqDataVo.setPartnerId("hyfz_test2");

        //银盛支付服务器主动通知商户网站里指定的页面http路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3
        reqDataVo.setNotifyUrl("http://127.0.0.1");

        //客户端私钥证书路径: 证书是在入网流程中自己申请的
        reqDataVo.setPrivateKeyFilePath("D:/cer/hyfz_test2.pfx");

        //客户端私钥密钥: 私钥密钥在入网流程中自己申请私钥证书时填写的
        reqDataVo.setPrivateKeyPassword("123456");

        //银盛公钥证书路径: 证书入网申请后随邮件发放
        reqDataVo.setYsPublicKeyFilePath("D:/cer/businessgate.cer");

        //交易类型,说明:1或者空:即时到账,2:担保交易
        reqDataVo.setTranType("1");
        /**:-----------组装业务参数,并设置到入参里面reqDataVo.setParamData(bizContentMap): 业务参数说明详细见接口文档:-------------*/
        Map<String, Object> bizContent = new HashMap<>();
        //商户生成的订单号,生成规则前8位必须为交易日期,如20180525,范围跨度支持包含当天在内的前后一天,且只能由大小写英文字母、数字、下划线及横杠组成
        bizContent.put("out_trade_no", "201805256843192280647118");
        //商户日期(该参数做交易与查询时需要一致) 该日期需在当日的前后一天时间范围之内
        bizContent.put("shopdate", "20211013");
        //商品的标题/交易标题/订单标题/订单关键字等。该参数最长为250个汉字
        bizContent.put("subject", "反扫码支付测试");
        //该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。Number(10,2)指10位长度,2位精度
        bizContent.put("total_amount", "2.99");
        //支持币种:CNY(人民币)、HKD(港币)、USD(美元)、EUR(欧元)、JPY(日元)
        //注:不填默认是CNY(人民币),如是非跨境商户,币种不能填HKD(港币)、USD(美元)、EUR(欧元)、JPY(日元)中的任意一种外币币种
        bizContent.put("currency", "CNY");
        //收款方银盛支付用户号
        bizContent.put("seller_id", "hyfz_test2");
        //收款方银盛支付客户名
        bizContent.put("seller_name", "银盛支付服务股份有限公司行业发展部");
        //设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。
        //(需申请业务权限,权限未开通情况下该参数不生效,默认未付款交易的超时时间为7d)取值范围:1m~15d。m-分钟,h-小时,d-天。该参数数值不接受小数点,如1.5h,可转换为90m。
        //注意:设置了未付款交易超时时间的情况下,若我司在限定时间内没有收到成功支付通知,则会关闭交易,关闭后该笔交易若付款方支付成功的情况下,会自动原路退款至付款方
        bizContent.put("timeout_express","96h");
        //业务扩展参数,一个json字符串,order_mode订单模式,暂时可选的值为:00 代表购物车模式;seller_list参与分账的收款方信息数组,每个元素包含seller_id收款方银盛支付用户号。
        //实时分账业务,order_mode和seller_list均不能为空,order_mode的值必须为00
        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");
        //业务代码,反扫D0为00510080
        bizContent.put("business_code", "00510080");
        //二维码行别,微信-1902000 支付宝-1903000 QQ扫码-1904000 银联扫码-9001002 招商银行:-3085840
        bizContent.put("bank_type", "1903000");
        //支付场景,条码支付取值:bar_code;声波支付取值:wave_code。注:当bank_type域为支付宝-1903000时,此域为必填字段。
        bizContent.put("scene", "bar_code");
        //扫码支付授权码,设备读取用户展示的条码或者二维码信息
        bizContent.put("auth_code", "23423");
        //终端设备号。注:当bank_type域为中国银联-9001002时,此域为必填字段
        bizContent.put("device_info", "");


        //=================二级商户信息, Json格式=================
        //如果有值则二级商户信息都不能为空,如果没值则都不能有值
        JSONObject subMerchantInfoJson = new JSONObject();
        subMerchantInfoJson.put("merName","");//二级商户名称,支持25个中文
        subMerchantInfoJson.put("merShortName","");//二级商户简称,支持25个中文
        subMerchantInfoJson.put("merAddr","");//二级商户地址,支持100个中文
        subMerchantInfoJson.put("telephone","");//固定电话/手机号码二选一
        subMerchantInfoJson.put("merNo","");//二级商户编号
        subMerchantInfoJson.put("category","");//类目,按附件内容输入类目编号
        subMerchantInfoJson.put("mrchntCertId","");//身份证号,只支持身份证格式(如果签名方式为RSA,则用DES加密,密钥为商户号前8位,不足8位在商户号前补空格;如果签名方式为SM,则用SM加密)
        //二级商户json格式
        bizContent.put("sub_merchant",subMerchantInfoJson);


        //=================收货人信息json格式(可空)=================
        JSONObject consigneeInfoJson = new JSONObject();
        subMerchantInfoJson.put("consigneeName","");//收货人姓名
        subMerchantInfoJson.put("consigneeAddr","");//收货地址
        subMerchantInfoJson.put("transportationInfo","");//物流配送信息(物流名称+订单号)
        subMerchantInfoJson.put("commodityName","");//商品名称
        subMerchantInfoJson.put("commodityNumber","");//商品数量
        //收货人信息json格式
        bizContent.put("consignee_info",consigneeInfoJson);


        //=================跨境支付付款人信息json格式,当收款方商户为跨境商户时,此域所有字段必填=================
        JSONObject crossBorderInfo = new JSONObject();
        subMerchantInfoJson.put("cross_border_name","");//付款人姓名
        crossBorderInfo.put("cross_border_idno","");//付款人身份证号码(如果签名方式为RSA,则用DES加密,密钥为商户号前8位,不足8位在商户号前补空格;如果签名方式为SM,则用SM加密)
        crossBorderInfo.put("cross_border_card_number","");//付款人银行卡号
        crossBorderInfo.put("cross_border_mobile","");//付款人手机号码
        crossBorderInfo.put("cross_border_tag","");//交易类型标识,只可以填写【服务类】或者【货物类】
        //跨境支付付款人信息json格式
        bizContent.put("cross_border_info",crossBorderInfo);

        //微信分配的子商户公众号账号ID
        bizContent.put("appid", "wx8888888888888888");
        //订单所属省编号(省市编号必须同时为空或者同时非空、并且需要符合层级关系)(特殊可空)
        bizContent.put("province",null);
        //订单所属市编号(省市编号必须同时为空或者同时非空、并且需要符合层级关系)(特殊可空)
        bizContent.put("city",null);
        //是否限制信用卡。值为1表示禁用信用卡,0或为空表示不限制
        bizContent.put("limit_credit_pay","0");
        //花呗分期期数,仅在支付宝支付的时候生效,目前期数支持6,12
        bizContent.put("hb_fq_num","6");
        //是否允许多次支付,Y:允许;N:不允许(参数为空或者Y时,默认该笔订单交易状态非成功状态时,支持选择其他支付方式继续付款,适用于收银台模式。 当为N时表示该笔订单交易状态为失败状态时,不支持选择其他支付方式继续付款,收银台模式下建议该参数为空)
        bizContent.put("allow_repeat_pay","N");
        //失败通知地址(交易状态为失败时,银盛支付服务器主动通知商户网站里指定的页面http路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3)注:只有不允许重复支付的交易才会通知
        bizContent.put("fail_notify_url","http://127.0.0.1");

        //================要上传的商品信息json格式(可空)=================
        //注意:如果detail已经不为空,那么detail里面wxpay_goods_detail不可空,goods_id/quantity/price不可空
        JSONObject detail = new JSONObject();
        detail.put("cost_price",0.23);//订单原价,整数不超过14位,小数不超过2位,单位元
        detail.put("receipt_id","Ys001001");//商品小票,长度不能超过32位
        //================商品列表goods_detail(如果detail已经填写,goods_detail不可空)=================
        JSONArray goodsDetail = new JSONArray();
        JSONObject goods = new JSONObject();
        goods.put("goods_id","Shouji_abcef_001-001");//商品编码由半角的大小写字母,数字,下划线,中划线中的一种或者几种组成,长度不能超过32位
        goods.put("wxpay_goods_id","1001");//微信支付定义的统一商品编号,长度不能超过32
        goods.put("goods_name","手机");//商品的实际名称,长度不能超过256
        goods.put("quantity",1000);//数量,只能是正整数
        goods.put("price",100.20);//商品单价,单位元,整数部分不能超过12位,小数不能超过2位
        goodsDetail.add(goods);
        //商品列表goods_detail设置到商品信息detail中
        detail.put("goods_detail",goodsDetail);
        //商品信息json格式
        bizContent.put("detail",detail);

        //================支付宝营销单品详情列表,反扫D0暂不支持(可空)=================
        JSONArray aliGoodsDetails = new JSONArray();
        //================支付宝营销单品详情aliGoodsDetail=================
        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);//[0,999999999] 左闭右闭区间,小数点后最多允许两位
        aliGoodsDetail.put("goods_category","");//营销单品类目
        aliGoodsDetail.put("categories_tree","");//营销单品类目树
        aliGoodsDetail.put("body","");//营销单品描述
        aliGoodsDetail.put("show_url","");//营销单品展示地址
        aliGoodsDetails.add(aliGoodsDetail);
        //支付宝营销单品详情列表
        bizContent.put("aliGoodsDetails",aliGoodsDetails);

        //子商户ip,反扫D0暂不支持
        bizContent.put("submer_ip","112.112.112.112");//子商户ip

        //设置业务参数到biz_content
        reqDataVo.setParamData(bizContent);

        /** 2、调用ScanCodePayApi.barcodepay方法 */
        String result = null;
        try{
            System.out.println("反扫码支付-调用sdk接口barcodepay请求入参为:"+ JSONObject.toJSONString(reqDataVo));
            result = ScanCodePayApi.barcodepay(reqDataVo);
            //根据返回结果处理自己的业务逻辑,result内容详见接口文档
        }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");//异步通知地址,需要外网可访问,接受到通知后需要返回success
        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");//超时时间,需要申请权限后,该参数才会生效,否则默认7d,超出时间后,银盛会关闭渠道方的预支付订单。
        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");//二维码行别,微信-
        // 支付宝-1903000   中国银联-9001002,苏宁-1905000
        json.put("scene","bar_code");//支付场景,条码支付取值:bar_code;声波支付取值:wave_code。注:当bank_type域为支付宝-1903000时,此域为必填字段
        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 您的操作过于频繁,请稍后再试

results matching ""

    No results matching ""