APP支付
1、修订记录
| 修订记录 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2026.10.08 | 初版 |
2、业务说明
(1)接口说明
调用接口,可发起微信/支付宝APP支付。
商户已有APP,用户通过APP去支付按钮唤起支付密码控件完成下单购买的流程。
1、该接口支持微信APP, 支付宝APP, 根据bankType字段传值区分;
2、调用接口前,商户需要先在微信/支付宝侧申请APPID等参数;
3、商户调用该接口生成预支付交易单,银盛支付将返回预支付参数;商户根据返回的预支付参数,通过SDK唤起支付。
请求主体类型:application/json
请求方式:POST
3、请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://appdev.ysepay-test.com/openapi/unify/basePay/appPay |
| 正式环境 | https://ysgate.ysepay.com/openapi/unify/basePay/appPay |
4、请求参数说明
4.1、公共请求参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| timeStamp | String | Y | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
| method | String(128) | Y | 接口名称,固定值:unify.basePay.appPay |
| 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 | Y | 商户订单号 |
| note | String | Y | 订单备注 |
| amount | String | Y | 订单金额(单位:分) |
| payeeMercId | String | Y | 收款方商户号 |
| timeOutExpress | String | Y | 订单失效时间 |
| extraCommonParam | String | N | 公共回传参数 |
| busiCode | String | Y | 业务代码(请联系银盛客户经理获取。注意:业务代码非固定值,不同到账方式需要传不同的业务代码) |
| bankType | String | Y | 付款行别 |
| appId | String | N | 商户公众平台ID,微信app支付必传 |
| hbFqNum | String | N | 花呗分期期数 |
| fqType | String | N | 分期类型 |
| limitCreditPay | String | N | 是否限制信用卡(0-不限制(默认值);1-禁用信用卡支付) |
| allowRepeatPay | String | N | 是否允许多次支付(Y-允许;N-不允许) |
| failNotifyUrl | String | N | 失败通知地址 |
| notifyUrl | String | Y | 通知地址 |
| srcIP | String | Y | 发起方IP |
| gpsInfo | String | N | 付款方gps信息 |
| storeId | String | N | 商户门店编号 |
| alipayStoreId | String | N | 支付宝的店铺编号 |
| operatorId | String | N | 商户操作员编号 |
| businessParams | String | N | 支付宝花呗分期专属字段 |
| extendParamsChannel | String | N | 支付宝业务拓展参数json格式 |
| msgCode | String | N | 报文编号 |
| ysStoresNo | String | N | 银盛侧的门店编号 |
| ysCashierNo | String | N | 银盛侧的收银员编号 |
| merchantMarketingInfo | Object | N | 商户自主营销信息 |
| buyerRealNameInfo | Object | N | 实名认证信息(Json格式有证件类型、证件姓名、证件号,非必填,如果三个字段一个填写就都必填,要么就 |
| aliGoodsDetailList | Array | N | 支付宝营销单品详情列表 |
| detail | Object | N | 微信商品详情 |
4.2.1 merchantMarketingInfo具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| marketingType | String | N | 营销类型 |
| marketingAmount | String | N | 营销金额 |
| couponId | String | N | 优惠券id |
| marketingSourceId | String | N | 营销来源id |
| marketingFeeAmount | String | N | 营销手续费优惠金额 |
4.2.2 buyerRealNameInfo具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| idType | String | N | 证件类型 |
| idName | String | N | 证件名称 |
| idNo | String | N | 证件号码 |
4.2.3 aliGoodsDetailList具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| goodsId | String | N | 商品编号 |
| alipayGoodsId | String | N | 支付宝商品编号 |
| goodsName | String | N | 营销单品名称 |
| quantity | String | N | 营销单品数量 |
| price | String | N | 营销单品单价 |
| goodsCategory | String | N | 营销单品类目 |
| categoriesTree | String | N | 营销单品类目树 |
| body | String | N | 营销单品描述 |
| showUrl | String | N | 营销单品展示地址 |
4.2.4 detail具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| costPrice | String | N | 订单原价 |
| receiptId | String | N | 商品⼩票ID |
| goodsDetails | Array | N | 商品列表 |
4.2.4.1 goodsDetails具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| goodsId | String | N | 商户商品编码 |
| wxpayGoodsId | String | N | 微信商品编号 |
| goodsName | String | N | 商品名称 |
| quantity | String | N | 商品数量 |
| price | String | N | 商品单价 |
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数据)
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| businessData | Object | N | 响应数据 |
| reqMsgId | String | N | 请求流水号 |
5.2.1 businessData具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| orderId | String | N | 商户订单号 |
| tradeSn | String | N | 交易流水号 |
| tradeStatus | String | N | 交易状态 |
| amount | String | N | 订单金额 |
| extraCommonParam | String | N | 公共回传参数 |
| payInfo | String | N | 支付返回参数 |
6、业务响应码 网关公共响应码
| 响应码 | 响应码描述 | 解决方案 |
|---|---|---|
| 0000 | 请求成功 | 成功后,根据返回businessData业务参数,进行业务处理。<br/> |
| 9999 | 系统异常 | 系统异常后,调用查询接口查询该订单的状态。<br/> |
| 5000 | 交易超时 | 超时后,调用查询接口查询该订单的状态。<br/> |
| A029998 | 网关非法参数 | <span style="color: rgb(24, 43, 80);">检查请求参数,修改后重新发起请求。</span><br/> |
| B021100 | 前置系统参数验证错误 | <span style="color: rgb(24, 43, 80);">检查请求参数,修改后重新发起请求。</span><br/> |
| B020100 | 前置无提供者 | <span style="color: rgb(24, 43, 80);">检查请求参数,修改后重新发起请求。</span><br/> |
| B022011 | 商户号错误,请上送正确的商户号 | <span style="color: rgb(24, 43, 80);">检查发起方商户号和商户号的归属关系。</span><br/> |
| B023006 | 订单重复支付 | 检查订单号是否重复,重新生成订单号。<br/> |
| B029901 | 业务失败 | <span style="color: rgb(24, 43, 80);">根据实际返回消息分析具体原因。</span><br/> |