微信公众号、小程序下单

1、修订记录

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

2、业务说明

(1)接口说明

调用接⼝,可发起微信公众号或⼩程序支付。
商户已有H5商城网站,用户通过消息或扫描⼆维码在微信内打开网页完成下单购买的流程。
1、该接⼝支持微信公众号、微信⼩程序支付,通过参数”isMiniPg“区分;
2、调用接⼝前,商户需要先在微信侧 申请公众号或⼩程序的APPID等参数;
3、商户调用该接⼝生成预支付交易单,银盛支付将返回预支付参数;商户根据返回的预支付参数,通过JSAPI唤起支付。

请求主体类型:application/json

请求方式:POST

3、请求地址

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

4、请求参数说明

4.1、公共请求参数

参数 类型(长度) 必填 参数说明
timeStamp String Y 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
method String(128) Y 接口名称,固定值:unify.basePay.scan.weChatPay.js
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) N 交易日期,商户系统的交易发生日期格式yyyyMMdd 20180525 
note String(125) Y 订单备注,订单备注
amount String(10) Y 订单金额,该笔订单的资金总额,单位为:分。必须为正整数
currency String(3) N 币种,默认CNY(⼈民币)
payeeMercId String(20) Y 收款方商户号
payeeMercName String(50) N 收款方商户名称,收款商户号对应商户名称
timeOutExpress String Y 订单失效时间,设置未付款交易的超时时间,⼀旦超时,该笔交易就会自动被关闭。单
位:分钟。例如:30,则订单失效时间为30分钟。
extraCommonParam String(1000) N 公用回传参数,扩展参数,调用方可用于回调时携带业务参数,异步通知时会返回该参数。
busiCode String(10) Y 业务代码,请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需
要传不同的业务代码 
subOpenId String(128) Y 用户在商户appid下的唯⼀标识,用户在商户appid下的唯⼀标识。可参考https://pay.weixin.qq.com/
wiki/doc/apiv3/terms_definition/chapter1_1_3.shtml#part-3获
取 
isMiniPg String(1) N 是否为⼩程序支付,1:微信⼩程序支付;
2:微信公众号支付(默认值);
appId String(32) Y 商户公众平台ID,
商户在微信侧申请的⼩程序或公众号APPID。当发起公众号支付时,需
填写公众号的APPID(应用ID);当发起⼩程序支付时,需填写⼩程序的
APPID(应用ID) 
limitCreditPay String(2) N 是否限制信用卡,0:不限制(默认值);
1:禁用信用卡支付;
allowRepeatPay String(2) N 是否允许多次支付,是否允许多次支付,Y:允许;N:不允许(参数为空或者Y时,默认该笔
订单交易状态非成功状态时,支持选择其他支付方式继续付款, 当为N
时表示该笔订单交易状态为失败状态时,不支持选择其他支付方式继续
付款) 
failNotifyUrl String(190) N 失败通知地址,失败通知地址(交易状态为失败时,银盛通知商户网站里指定的页面ht
tp路径,支持多个url进行异步通知,多个url用分隔符“,”分开,格式如
:url1,url2,url3)注:只有不允许重复支付的交易才会通知 
notifyUrl String(190) Y 通知地址,交易成功异步通知到商户的后台地址 ,详见《微信JS下单异步通知》
srcIP String(16) Y 发起方IP,请求方ip。例如:112.112.112.112 
payerIP String(16) N 付款方IP,付款方ip。例如:112.112.112.113
gpsInfo String N 付款方gps信息,付款方gps信息,示例值:"{\"userGps\":{\"lat\":24.48579,\"lng\":118.126076}}"
agentNo String N 代理商编号,发起方银盛代理商编号。
paygateNo String N 支付网关编号,9000010:银联-微信;10010001:网联-微信
subMerchantInfo Object N ⼆级商户信息,存在二级商户时建议传值。
如果有值则二级商户信息都不能为空,如果没值则都不能有值。
consigneeInfo Object N 收货⼈信息,电商场景/担保交易时建议传值。
detail Object N 微信商品详情,电商场景/担保交易时建议传值。
unionQrcodeParams Object N 银联259号文条码改 造参数,终端收费场景时建议传值。259合规改造,可能后续优化为终端收费场景必填。
buyerRealNameInfo Object N 实名认证信息,存在买家信息时建议传值。
暂有证件类型、证件姓名、证件号,非必填,如果三个字段⼀个填写就都
必填,要么就都不上送
msgCode String N 报文编号,S3001即时到账、S3002担保交易,为空时默认S3001

4.2.1 subMerchantInfo具体参数

参数 类型(长度) 必填 参数说明
merName String(50) N ⼆级商户名称
merShortName String(50) N ⼆级商户简称
merAddr String(200) N ⼆级商户地址
telephone String(13) N 客户手机号
merNo String(32) N ⼆级商户编号
category String(20) N 类目编号,类目,按附件内容输⼊类目编号
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 detail具体参数

参数 类型(长度) 必填 参数说明
costPrice String(10) N 订单原价,单位:分 
receiptId String N 商品⼩票ID,商品⼩票ID,长度不能超过32位 Ys001001
goodsDetails Array Y 商品列表,
商品列表 

4.2.3.1 goodsDetails具体参数

参数 类型(长度) 必填 参数说明
goodsId String(32) Y 商户商品编码,商户商品编码,由半角的⼤⼩写字母,数字,下划线,中划线
中的⼀种或者⼏种组成,Shouji_abcef_001-001 
wxpayGoodsId String(32) N 微信商品编号,微信支付定义的统⼀商品编号
goodsName String(256) N 商品名称,商品的实际名称
quantity String(10) Y 商品数量,数量,只能是正整数 ,1000 
price String(10) Y 商品单价,商品单价,单位:分

4.2.4 unionQrcodeParams具体参数

参数 类型(长度) 必填 参数说明
terminalNo String(8) N 终端号,终端号
terminalType String(2) N 终端类型,终端类型(线下交易场景必填)
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具体参数

参数 类型(长度) 必填 参数说明
idType String Y 证件类型,证件类型,只支持身份证,枚举值:1 
idName String Y 证件名称
idNo String 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 N 请求流水号,同请求
data Object N 响应业务数据,请求成功时响应

5.2.1 data具体参数

参数 类型(长度) 必填 参数说明
orderId String N 商户订单号
tradeSn String N 交易流水号
tradeStatus String N 交易状态,00-交易成功
02-支付成功,合单交易渠道成功但参与营销,需⼈⼯调账待支付
11-支付中(已向渠道跳转)
12-部分支付
13-全部已支付(担保交易使用)等待发货
14-未确认收货(等待付款方确认)
60-提现登记
61-提现完成
70-自动关闭处理中
80-部分退款
81-全部退款
97-客户主动关闭
99-到时关闭'
01-支付成功
98-支付失败
96-交易失败(超金额支付)
50-业务超时
95-关闭订单
94-无支付订
93-订单撤销
amount String N 订单金额,单位:分
currency String N 交易币种
extraCommonParam String N 公共回传参数
jsapiPayInfo String N 微信返回参数,JSON格式。具体字段参考以下jsapiPayInfo详细参数

5.2.1.1 jsapiPayInfo具体参数

参数 类型(长度) 必填 参数说明
appId String(32) Y 商户APPID,商户在微信侧申请的APPID,接⼝返回jsapi_pay_info中的
信息 wxd678efh567hg6787 
timeStamp String(32) Y 时间戳,时间戳,接⼝返回jsapi_pay_info中的信息
nonceStr String(32) Y 随机字机串,随机字机串,接⼝返回jsapi_pay_info中的信息 5K8264ILT
KCH16CQ2502SI8
package String(128) Y 订单详情扩展字 符串,订单详情扩展字符串,接⼝返回jsapi_pay_info中的信息 pr
epay_id=u802345jgfjsdfg 
signType String(32) Y 签名方式,
签名方式,接⼝返回 jsapi_pay_info中的信息 MD5
paySign String(256) Y 签名,签名,接⼝返回jsapi_pay_info中的信息 C380BEC2BFD7
27A4B6845132 

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

响应码 响应码描述 解决方案
0000 成功
9999 失败 请根据返回提示操作或联系银盛技术人员处理
5000 交易超时 请检查网络或稍后重新发起请求
A029998 网关非法参数 检查请求参数,修改后重新发起请求
B020100 参数校验错误 检查请求参数,修改后重新发起请求
B021100 前置系统参数验证错误 检查请求参数,修改后重新发起请求
B022011 发起方商户号和商户号的归属关系校验失败 检查发起方商户号和商户号的归属关系 
B023001 查询结果为空 请求处理过程中处理结果为空,将请求报文发给前置组核查
B023003 商户号错误 检查商户号数据
B023004 返回结果为空 请求处理过程中处理结果为空,将请求报文发给前置组核查
B023006 订单重复支付 检查订单号是否重复
B029901 业务失败 根据实际返回消息分析具体原因
B084323 原订单不支持重复下单 检查订单号是否重复
B084335 单价个性化配置中 检查金额参数
B087084 客户名称不合法 检查客户名称参数
B087402 企业订单收款入网协议交易金额不在范围内 检查请求参数,修改后重新发起请求

results matching ""

    No results matching ""