批量代付(银行卡)受理API
1、修订记录
| 修订记录 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2023.01.12 | 初版 |
2、业务说明
(1)接口说明
批量代付普通受理接⼝
请求主体类型:application/json
请求方式:POST
3、请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://appdev.ysepay.com/openapi/unify/batchTransaction/bankCard |
| 正式环境 | https://ysgate.ysepay.com/openapi/unify/batchTransaction/bankCard |
4、请求参数说明
4.1、公共请求参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| timeStamp | String | Y | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
| method | String(128) | Y | 接口名称,固定值:unify.batchTransaction.bankCard |
| 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数据明文字符串)
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| payerMercId | String(20) | Y | 付款方商户号 |
| outBatchNo | String(16) | Y | 代付批次号,格式:F+15位唯⼀流水,建议格式:F+YYYYMMDD+XXXXXXX只能由⼤⼩写英文 字母、数字、下划线及横杠组成,示例值:F201703081234567 |
| shopDate | String(8) | Y | 交易日期,商户系统的交易发生日期格式yyyyMMdd 示例值:20180525 |
| busiCode | String(10) | Y | 业务代码,请联系银盛客户经理获取。 注意:业务代码非固定值,不同到账方式需要传不同的业务代码 |
| currency | String(3) | Y | 交易币种,默认CNY(⼈民币) |
| totalAmount | String(10) | Y | 代付总金额,代付的总金额。单位为:RMB 分。取值范围为[1,9999999999],String(1,10)指 10位长度 |
| totalNum | String(6) | Y | 代付总笔数,总笔数,最⼤交易笔数不能超过2000笔 |
| notifyUrl | String(190) | N | 通知地址,通知地址 |
| subMerchant | Object | N | ⼆级商户信息,⼆级商户信息 |
| detailDataList | Array | Y | 代付详细数据 |
4.2.1 subMerchant具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| merName | String(25) | N | ⼆级商户名称 |
| merShortName | String(25) | N | ⼆级商户简称 |
| merAddr | String(100) | N | ⼆级商户地址 |
| phoneNo | String(13) | N | 客户手机号 |
| merNo | String(32) | N | ⼆级商户编号 |
| category | String(20) | N | 类目编号,类目,按附件内容输⼊类目编号 |
4.2.2 detailDataList具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| orderId | String(32) | Y | 商户订单号,订单号,批次内唯⼀,只能由⼤⼩写英文字母、数字、下划线及横杠组成 |
| amount | String(10) | Y | 单笔代付金额,单笔代付的金额。单位为:RMB 分。取值范围为 [1,9999999999],String(1,10)指10位长度 |
| subject | String(250) | Y | 订单备注,订单说明 |
| bankName | String(64) | Y | 银行名称,银行名称,为了保证代付交易成功,银行名称最好具体到分行, 示例值:中国银行深 圳民治支行 |
| bankProvinceName | String(20) | N | 开户行所在省份名称,非必填。如果bankProvinceName、bankProvinceCode同时存在时,bankP rovinceCode优先。 |
| bankProvinceCode | String(6) | N | 开户行所在省份编码,非必填。如果bankProvinceName、bankProvinceCode同时存在时,bankP rovinceCode优先。 |
| bankCityName | String(20) | N | 开户行所在城市名称,bankCityName、bankCityCode不能同时为空,同时存在时,bankCityCode优 先 |
| bankCityCode | String(6) | N | 开户行所在城市编码,bankCityName、bankCityCode不能同时为空,同时存在时,bankCityCode优 先 |
| bankAccountNo | String(32) | Y | 收款方银行账号 |
| bankAccountName | String(100) | Y | 收款方银行账户名称 |
| bankAccountType | String(9) | Y | 收款方银行账户类型,收款方银行账户类型,此处必填corporate:对公账户;personal:对私账户 |
| bankCardType | String(6) | Y | 支持卡类型,支持卡类型,此处必填debit:借记卡;credit:信用卡;unit:单位结算卡,只能是对公账 户;bankbook存折 |
| certType | String(2) | N | 收款方证件类型,收款方证件类型 00:身份证,19营业执照 |
| certNo | String(60) | N | 收款方证件号码,收款方证件号码。使用DES加密,密钥Src用户号前8位,不足8位前补空格, 可空 ,cert_type不空则必填 |
| certExpire | String(8) | N | 收款方证件有效期,收款方证件有效期,格式yyyyMMdd,长期有效的居民身份证可为空 |
| bankPhone | String(11) | 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数据)
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| reqMsgId | String | N | 请求流水号 |
| status | String(2) | N | 交易状态 |
| statusDes | String(100) | N | 状态描述 |
| outBatchNo | String(16) | N | 商户批次号 |
| batchNo | String(30) | N | 批次流水号 |
| totalAmount | String(10) | N | 总金额 |
| totalNum | String(6) | N | 总笔数 |
6、业务响应码 网关公共响应码
| 响应码 | 响应码描述 | 解决方案 |
|---|---|---|
| 0000 | 请求成功 | |
| 9999 | 系统错误 | 支付中该状态为未知状态,请勿当成失败状态处理,请等待支付 通知或继续查询 |
| 5000 | 交易超时 | 请调用查询接⼝查询订单状态 |
| A029998 | 网关非法参数 | 检查请求参数,修改后重新发起请求 |
| B083001 | 订单重复 | 该笔订单已受理,请使用新订单号发起请求 |
| B083002 | 风控检查异常 | 请检查风控是否有异常,然后再重新发起 |
| B083003 | 路由失败 | 请联系客服或市场技术支持⼈员 |
| B083004 | 账户扣款失败 | 请联系客服或市场技术支持⼈员 |
| B083005 | 计费失败 | 请联系客服或市场技术支持⼈员 |
| B083006 | 处理失败 | 请重新发起代付受理请求 |
| B083007 | 商户日期获取失败 | 检查参数 |
| B083008 | 代理关系检查失败 | 比如委托关系不存在 |
| B083009 | 代理关系参数验证失败 | 比如代理密码解密失败,或者代理密码与委托商户号没有同时传或 者同时不传 |
| B083010 | 暂未查询到记录,请检查srcMercId/or derId/ | 该状态为未知状态,请勿当成失败状态处理 检查传⼊的订单号是 否正确,修改后重新发起请求或继续查询 |
| B083011 | 对账文件尚未生成 | 请耐心等待,该对账文件尚未生成,稍后重新发起请求 |
| B083012 | 该商户当天无交易 | 核查账单日期有无交易 |
| B083013 | 对账文件生成失败 | 请稍后再试,如还有问题,请联系银盛 |
| B083014 | 该标识对应的对账文件不存在 | 请核查标识是否最新,如还有问题,请联系银盛 |
| B083015 | 下载超时 | 请重新发起,标识已过期(过期时间:30s) |
| B083016 | 该对账文件过期,已清除 | |
| B083017 | 批次明细处理中 | 批次明细处理中,请稍后查询 |
| B083018 | 暂未查询到该批次记录 | 请检查out_batch_no/orderId/shopDate后重试 |
| B083019 | 批次信息不存在 | 请核查商户批次号或者银盛批次流水号,如还有问题,请联系银盛 |
| B083020 | 批量代收付交易类型错误 | 请核查确认交易类型是否正确 |
| B083021 | 该批次尚未处理完成 | 请耐心等待,该批次尚未处理完成 |
| B083022 | 该批次当天无交易 | 核查确认该批次当天有无交易 |