正扫(二维码支付)

1、修订记录

修订记录 日期 说明
1.0 2023.12.05 初版

2、业务说明

(1)接口说明

场景说明:
1、商户后台系统先调用银盛支付下单接口,银盛后台系统返回链接参数二维码,
2、商户后台系统将链接值生成二维码图片,用户使用app客户端扫码后发起支付。
注意事项:
1、整合银联云闪付、支付宝反扫接口,调用该接口进行正扫支付
2、收银员使用扫码设备读取用户 APP 展示的二维码后,商家系统识别付款APP, 通过系统调用该接口发起支付
3、当收单机构返回支付中或交易状态不明时, 需要调用交易查询接口查询订单实际支付状态。
4、notify_url 通知字段,支持成功时异步通知。

请求主体类型:application/json

请求方式:POST

3、请求地址

环境 HTTPS请求地址
测试环境 https://appdev.ysepay.com/openapi/unify/scan/qrcodepay
正式环境 https://ysgate.ysepay.com/openapi/unify/scan/qrcodepay

4、请求参数说明

4.1、公共请求参数

参数 类型(长度) 必填 参数说明
timeStamp String Y 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
method String(128) Y 接口名称,固定值:unify.scan.qrcodepay
charset String(10) Y 请求使用的编码格式,如utf-8,gbk,gb2312等,固定为utf-8
sign String Y 商户请求参数的签名串(签名算法默认为国密),详见demo,注意:请用商户私钥进行签名
check String Y 银盛公钥加密随机生成的字符串(key)得到的加密值,详见demo
bizContent String Y 业务参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递。注意:需要通过AES以及随机生成的字符串(key)加密业务参数集合,得到bizContent
reqId String Y 请求唯一流水号,商户系统唯一,要求32个字符内(最少14个字符),只能是数字、大小写字母_-且在同一个商户号下唯一。最后12位要求格式为"yyMMddHHmmss" 示例值:xy1415220315145602
certId String Y 发起方商户号,服务商在银盛给自己开设的商户号,即可当作发起方商户号,由银盛生成并下发。 注意:不同于子商户号,服务商发展的商户即为子商户号
version String Y 调用的接口版本,固定为:1.0

4.2、业务请求参数

(bizContent加密前的json数据明文字符串)

参数 类型(长度) 必填 参数说明
orderId String(32) Y 商户订单号,商户系统生成的订单号,要求如下:
1、须保证在商户端不重复。
2、只能由大小写英文字母、数字、下划线及横杠组成。
建议前8位为交易日期,如20220525,范围跨度支持包含当天在内的前后一天,示例值:202205256843192280647118。
shopDate String(8) Y 交易日期
note String(250) Y 订单备注
amount String(10) Y 订单总金额,该笔订单的资金总额,单位:分。
currency String(3) Y 交易币种,默认CNY(人民币)。
payeeMercId String(20) Y 收款商户号,收款商户号(银盛支付生成并下发)。
payeeMercName String(50) N 收款方商户名称,收款商户号对应商户名称。
notifyUrl String(500) Y 后台通知地址,交易成功异步通知到商户的后台地址,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如:url1,url2,url3。
returnUrl String(190) N 同步通知地址,(前台跳转)同步通知地址。
timeOutExpress String(6) Y 交易超时时间,订单失效时间, 单位分钟,最小1分钟,最长不超过21600分钟.。
extendParams String(500) N 业务扩展参数,业务扩展参数,一个json字符串,orderMode订单模式,暂时可选的值为:00 代表购物车模式;sellerList参与分账的收款方信息数组,每个元素包含sellerId收款方银盛支付用户号。实时分账业务,orderMode和sellerList均不能为空,orderMode的值必须为00。样列:{ "cartType": "00", "orderMode": "00", "sellerList": [{ "sellerId": "123" }, { "sellerId": "456" }] }。示例值:样例8.8
extraCommonParam String(2000) N 公用回传参数,扩展参数,调用方可用于回调时携带业务参数,异步通知时会返回该参数。
busiCode String(10) Y 业务代码,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码。
bankType String(9) Y 二维码行别,行别如下:
支付宝-1903000
QQ扫码-1904000
银联扫码-9001002
招商银行 -3085840
subMerchantInfo Object N 二级商户信息,存在二级商户时建议传值。
暂包括merName、merShortName、merAddr、mobileNo、merNo、category、mrchntCertId。
如果有值则二级商户信息都不能为空,如果没值则都不能有值。
consigneeInfo Object N 收货人信息,电商场景/担保交易时建议传值。
limitCreditPay String(2) N 是否限制贷记卡,类型如下:
0:不限制(默认值);
1:禁用信用卡;
2:禁用花呗;
3:禁用花呗分期;
4:禁用所有信用支付类型
hbFqNum String(2) N 花呗分期期数,仅支付宝支付的时候生效,目前期数支持6,12 示例值:6
allowRepeatPay String(1) N 是否允许多次支付,Y:允许;N:不允许;
当参数为空或者Y时,如果该笔订单交易状态非成功状态时,支持选择其他支付方式继续付款;
当参数为N时表示当该笔订单交易状态为失败状态时,不支持选择其他支付方式继续付款;
fqType String(2) N 分期类型,值为00表示花呗分期,值01表示信用卡分期。不填默认为花呗分期。
aliGoodsDetails Array N 支付宝营销信息,支付宝营销单品详情列表,电商场景/担保交易时建议传值。
submerIp String(16) N 子商户ip
storeId String(32) N 商户门店编号
alipayStoreId String(32) N 支付宝的店铺编号
operatorId String(28) N 商户操作员编号
terminalId String(32) N 商户机具终端编号
unionQrcodeParams Object N 银联259号文条码改造字段,终端收费场景时建议传值。259合规改造,可能后续优化为终端收费场景必填。
needHttpsUrl String N 是否返回图片,是否需要返回https协议图片url,Y是/N否/空。
buyerRealnameInfo Object N 实名认证信息,存在买家信息时建议传值。
暂时有证件类型、证件姓名、证件号,非必填,如果三个字段一个填写就都必填,要么就都不上送。
msgCode String N 报文编号,S3001即时到账、S3002担保交易,为空时默认S3001

4.2.1 subMerchantInfo具体参数

参数 类型(长度) 必填 参数说明
merName String(50) Y 二级商户名称
merShortName String(50) Y 二级商户简称
merAddr String(200) Y 二级商户地址
telephone String(13) Y 客户手机号
merNo String(32) Y 二级商户编号
category String(20) Y 类目编号
mrchntCertId String(18) N 身份证号,只支持身份证格式。

4.2.2 consigneeInfo具体参数

参数 类型(长度) 必填 参数说明
consigneeName String(150) N 收货人姓名
consigneeAddr String(200) N 收货地址
transportationInfo String(200) N 物流配送信息,物流名称+订单号。
commodityName String(150) N 商品名称
commodityNumber String(10) N 商品数量

4.2.3 aliGoodsDetails具体参数

参数 类型(长度) 必填 参数说明
goodsId String(32) Y 商品编号
alipayGoodsId String(32) N 支付宝商品编号,支付宝定义的统一商品编号。
goodsName String(256) Y 营销单品名称
quantity String(10) Y 营销单品数量
price String Y 营销单品单价,营销单品单价 [0,999999999] 左闭右闭区间,正整数。
goodsCategory String(24) N 营销单品类目
categoriesTree String(128) N 营销单品类目树
body String(1000) N 营销单品描述
showUrl String(400) N 营销单品展示地址

4.2.4 unionQrcodeParams具体参数

参数 类型(长度) 必填 参数说明
terminalNo String(8) N 终端号
terminalType String(2) N 终端类型,线下交易场景必填,类型如下:
01-自动柜员机(含 ATM 和 CDM)和多媒体自助终端
02-传统 POS
03-mPOS
04-智能 POS
05-II 型固定电话
06-云闪付终端
07-保留使用
08-手机 POS
09-刷脸付终端
10-条码支付受理终端
11-辅助受理终端
12-行业终端(公交、地铁用于指定行业的终端)
13-MIS 终端
serialNum String(50) N 终端序列号
networkLicense String(5) N 入网认证编号,银行卡受理终端产品入网认证编号。
appVersion String(5) N 终端应用版本号,终端应用程序的版本号。
terminalGps String(32) N 交易设备位置信息,格式:纬度/经度,东经为正数,西经为负数;北纬为正数,南纬为负数,线下交易场景、terminal_ip和terminal_gps 二者选其一 必填。
terminalIp String(8) N 终端设备IP,如经、维度信息未上送,该字段必送。
encrypRandNum String(10) N 加密随机因子,终端类型为 02;03;04;05;06;08;09;10时,如终端设备能提供,建议上送。
secretText String(16) N 密文数据,终端类型为 02;03;04;05;06;08;09;10时,如终端设备能提供,建议上送。

4.2.5 buyerRealnameInfo具体参数

参数 类型(长度) 必填 参数说明
idNo String(32) Y 证件号
idType String(4) Y 证件类型,证件类型,只支持身份证,枚举值:1
idName String(50) Y 证件姓名

5、响应参数说明

请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。

5.1、公共响应参数

参数 类型(长度) 必填 参数说明
code String(5) Y 网关响应码,示例值:00000 详见网关公共响应码
msg String(50) Y 网关响应码描述
subCode String Y 业务响应码,参见具体的API接口文档
subMsg String Y 业务响应描述
timeStamp String Y 响应时间,格式"yyyy-MM-dd HH:mm:ss"
norce String(128) Y 随机参数
sign String Y 响应参数的签名串,详见demo,
注意:请用银盛公钥进行验签
businessData String Y 业务响应参数集合,
注意:银盛网关通过AES加密业务响应参数集合,得到businessData,商户需要对其进行解密,详情请见demo

5.2、业务响应参数

响应业务参数businessData(json数据)

参数 类型(长度) 必填 参数说明
reqMsgId String Y 请求流水号,同⼊参请求流水号
businessData Object Y 响应结果对象

5.2.1 businessData具体参数

参数 类型(长度) 必填 参数说明
orderId String N 商户订单号,同请求订单号。
tradeSn String N 交易流水号
tradeStatus String N 交易状态,如下:
00-交易成功
01-支付成功
02-支付成功,人工入账
10-待支付
11-处理中,已向渠道发起
13-全部已支付(担保交易使用)等待发货
14-未确认收货(等待付款方确认)
50-业务超时
80-部分退款
81-全部退款
93-订单撤销
96-交易失败
97-客户主动关闭
98-支付失败
99-到时关闭'

tradeStatusExt String N 交易扩展状态,如下:
11-用户支付中,需要输入密码,可对该交易做查询,避免重复支付。
amount String N 订单总金额,该笔订单的资金总额,单位分。
accountDate String(19) N 入账日期,银盛入账日期,格式"yyyy-MM-dd" ,示例值:2017-05-01
openId String N 用户唯一标识,子商户appid下用户唯一标识。
couponInfo String N 银联优惠信息,couponInfo优惠信息活动对象为多个时,couponInfo中就有多方优惠信息spnsrId出资方,值为1时银联出资,值为2时付款方出资,值为3时商户出资,offstAmt优惠金额(单位分) 。
settlementAmount String(10) N 结算金额,单位分,示例值:100
isDiscount String N 是否参与优惠,Y:是,N:否。
totalDiscountFee String(10) N 总优惠手续费,单位:分。
totalDiscount String(10) N 总优惠金额,单位:分。
extraCommonParam String(2000) N 商户自定义数据域
paySuccessTime String(19) N 支付完成时间,格式"yyyy-MM-dd HH:mm:ss", 示例值:2014-07-24 03:07:50。
buyerUserId String(128) N 支付宝用户Uid
cardType String(5) N 支付卡类型,类型如下:
credit-信用卡
debit-借记卡
示例值:credit

riskInfo String N 风险信息json串
preferentialAmount String(10) N 惠金额,单位:分。
preferentialFee String(10) N 优惠手续费,单位:分。
marketingRuleJson String N 营销规则,JSON字符串。

6、业务响应码 网关公共响应码

响应码 响应码描述 解决方案
0000 交易成功 请求成功后,根据参数businessData里面的业务信息进行业务处理。
9999 失败 具体原因查看描述。
5000 交易超时 订单超时后,调用查询接口进行查询订单状态。
A029998 网关非法参数 检查请求参数,修改后重新发起请求。
B020100 前置无提供者 检查请求参数,修改后重新发起请求。
B021100 前置系统参数验证错误 检查请求参数,修改后重新发起请求。
B022011 发起方商户号和商户号的归属关系校验失败 检查发起方商户号和商户号的归属关系。
B023006 订单重复支付 检查订单号是否重复,重新生成订单号。
B029901 业务失败 根据实际返回消息分析具体原因。
B049900 获取支付网关编号失败 检查行别。
B044012 查询第三方商户号出错 输入正确的商户号。
B044335 获取支付网关编号失败 注意金额、行别需要填正确
B059999 失败 具体原因查看描述。
B049999 失败 具体原因查看描述。

results matching ""

    No results matching ""