一. 项目背景
代付系统即出款系统,完成公司对外的资金支付行为,是基础原子性服务。
1.主要功能
(1) 受理代付请求
(2) 生成代付批次,完成代付通道出款
(3) 接收通道方代付结果
(4) 异步通知业务方代付结果
(5) 查询代付流水
(6) 代付异常处理
(7) 对账与调账
对账:与通道方的流水勾兑
调账:通常为银行退单,银行在日结账务核对后的差错退款。
2. 主要运用场景包括
(1)对私代付:代发工资、用户提现等;
(2)对公代付:支付代理商分润款项等。
下图为系统架构图(红配绿,画的有点丑,见谅),招行银企直连是代付通道之一。
代付系统架构图二. 招行银企直连对接
1. 基本介绍
官网文档:https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/Main.aspx
接口文档:https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx
示例代码:https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/DownLoad.aspx?Code
2. 对接过程
(1) 搭建前置机
官方教程:https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/Guide.aspx?Solution
注意事项:
a.前置机必须是windows 系统,建议使用Intel i5 CPU或更高性能处理器,4G及以上内存,50G以上的空闲硬盘空间。
b. 由于测试服务器需要配置招行测试环境的host,生产服务器和测试服务器不能是同一台服务器。
c. 生产服务器必须是实体机,需要插招行的银企直连U-key, 并且生产服务器必须要有公网地址。
(2) 接口对接
功能与招行的接口映射关系如下:
a. 对公代付 ----> 3.6 直接支付
b. 对公代付结果查询接口 ----> 3.9 批量查询支付信息
c. 对私代付 -----> 21.2.1.网银贷记
d. 对私代付结果查询接口 -----> 21.1.4.取企业银行处理结果
e. 退单接口 -----> 1.4.取新的通知
由于都是一些细节问题,所以以QA的方式列出来常见问题,信息都来自于招行技术:
Q:招行企业直连通道支持全部银行吗,包括各种地方农商行?
A:直接支付(走人行大小额系统)支持全部银行,网银贷记接口(走人行超级网银系统)仅支持部分银行。
Q:接口的报文编码格式是什么?
A:全部接口默认报文编码格式均为GBK
Q: 招行接口的金额单位是什么?
A:元
Q:招行企业直连通道能实时返回代付结果吗?
A:可以实时返回代付受理结果,但最终代付结果还是异步的,超级网银通常5分钟可返回结果,大额对公通常2个小时返回结果,小额对公通常1个小时返回结果(实际对公代付不需要这么久,平均20分钟左右)。
Q:招行直接支付接口和网银贷记的单批次笔数限制?
A:直接支付接口单批次笔数限制为1500笔,网银贷记为单批次最多30笔,另外直接支付查询结果接口笔数限制为30笔,网银贷记结果查询接口限制为1笔。
Q:可以设置单笔限额吗?
A:可以在招行网银中设置
Q:怎么获取退单消息?
A:退单消息一般2个工作日内返回,会主动通过1.4 接口通知,可以定义定时任务轮循该接口,每个通知只会通知一次。(注: 所有的代付结果都优先查询接口为准,通知接口次之)
Q: 怎么区分直接支付的大额和小额?
A: STLCHN参数区分,普通是小额,快速是大额
Q:招行接口调用频率限制和并发性能?
A:具体参考https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/Guide.aspx?FrontEnd#t5说明
调用频率控制按接口种类区别控制:
经办类请求:两次经办类请求最小调用间隔为1秒;
查询类请求:两次查询类请求最小调用间隔为2秒;(这一点有点坑,大数据量的代付批次查询很慢,暂时没有想到什么优化方法)
通知类请求:两次通知类请求最小调用间隔为5秒。
Q: 直接支付的必填开户行地区需要精确到哪一层级
A: 开户行地区最好精确到 省-市-区/县,如果只有省或省-市也是OK的,具体看收款银行的限制。
Q: 招行测试环境是否可以mock代付
A:支持的,可以复现各种异常情况,基本与生产环境无差异
Q: 网银贷记的接口文档与实际返回结果不一致呢?
A:目前招行官网接口文档存在较大错误,与实际返回结果不一致,我们已经与招行技术反馈过,目前还没有修复(2019-02-01),可以暂时参照如下参数。
网银贷记返回结果修正版Q:怎么获取网银贷记的协议号
A: 网银贷记的信息可以通过 21.1.3.业务交易明细查询 接口查询,包括协议号。
暂时只回忆起这些问题,如果还有其他疑问可留言,将及时更新。
(3) 测试环境部署
必备条件:
a. 招行提供的测试环境账户,账户需要开通直接支付和网银贷记权限
b. 招行银企直连的测试服务器有时间问题,导致代付成功的订单查询不到代付结果,招行有提供一个修改前置机时间的工具,可联系招行技术提供。
测试环境修改日期工具(4) 生产环境发布
注意要点:
a. 招行有一种退单是查询交易显示成功,但是网银里显示已退款。经排查,具体原因如下:
代付请求流程是这样的: 出款方-> 招行->人行-> 收款行
退单有3种情况:
(1) 招行校验信息失败:出款方-> 招行(招行拒绝代付请求),代付订单显示失败
(2) 收款行校验信息失败: 出款方-> 招行->人行-> 收款行(收款行拒绝代付请求),代付订单显示失败
(3) 收款行校验行内转账失败:出款方-> 招行->人行-> 收款行(收款行接收代付请求), 收款行(行内转账失败,发起反向原路退款)->人行->招行->出款方 ,代付订单显示成功
出现上述情况就是命中了第3种退单,这种退单的补单方式可以让业务方完善银行信息后重新发起一笔代付。
网友评论