为了解决平台的资金“二清”问题,支付机构和银行开始推出各自的“分账系统”。尽管在实现方式上均有不同,但最终的效果还是大都一致。因此本人以自己在支付机构从0-1的打造“分账系统”,来分享自己的分账系统项目方法论。
1. 是否有建立标准规范?
- 参数名的命名规范;
- 请求、应答、异步通知接口的参数规范;
- 响应码的规范,是否有统一响应码,是否有一个意思但是不同的响应码;
- 单位、字符长度的规范性;
- 加密方式的规范性。
2. 是否有建立监督机制?
- 需求是否合理,是否经过讨论?
- 技术实现上是否灵活,是否有多人评估?
- 接口文档的样例是否真实验证过,还只是随机修改参数?
- 代码上线前,是否有代码复核机制?
- 上线之后是否建立全面预警机制?
- 上线之后是否有跟进商户反馈,来促进产品迭代?
- 是否进行培训,是否建立一套运营机制?
一、分账方入网
1. 接口添加
- 是否有接口请求记录?
- 是否有日志查询?
2. 系统认证
- 一旦添加分账方是否一定创建认证订单?
- 而认证完成是否一定更新商户状态?
- 更新失败了怎么办?
- 认证失败是否会将失败原因回传给商户?
3. 打款验证专户资金不足怎么办?
- 是否有预警机制?
- 一旦金额不足,商户状态和商户认证状态是怎样的?
- 目前每次认证的打款金额都是0.01元,而不是随机0-1元打款是否合理?
4. 修改接口
- 以相同信息重新请求是否会重新调取认证接口?
- 修改接口是否对所有添加的版本做了兼容?
5. 异步通知
- 商户对接异步通知,是否一定会发送异步通知?
- 认证失败是否有异步通知,以及失败原因?
二、分账请求
1. 实时分账
- 实时分账是否会出现支付完成但未创建分账可能性?
- 是否出现一直认证不成功的情况?即已创建
- 出现不成功/已创建的情况,系统有做补偿措施没?预警机制?
- 商户对接异步,是否一定会到异步,收不到怎么办?
2. 延迟分账
- 延迟接口请求是否有请求记录查看,日志是否有记录
- 延迟接口请求通过是否一定创建分账订单,没创建怎么办,并发请求呢?
- 创建订单是否一定会分账成功,不成功怎么办?
- 账务处理完成,通知订单状态扭转若失败怎么办?预警机制是否有?
- 延迟接口是否有预留30天内自动分账的功能?(央行规定在途时间不得超过30)对每个行业都适用吗?
- 延迟分账对外全套接口是否足够完整,是否标准?
- 延迟分账的并发请求峰值。
3. 多次分账
- 多次分账请求接口是否规范,是否有日志追踪?
- 代码层面、对外接口是否进行多人复核检测?
- 接口是否足够规范?
- 多次分账接口请求是否一定创建分账订单,没创建怎么办?
- 并发请求,汇聚是否能够支撑住?
- 请求超时怎么处理?客户如果同一笔订单多次请求超时,但是有一笔直接返回已分账,那么如何帮助客户查询是那一笔分账成功?
三、结算
- 自动结算,是否每日定时清算后会自动处理?没有处理怎么办?
- 如果跑批失败,或者本来10分钟完成提到银行卡,结果耗了一整天的时间,这些会怎么办?是否有告警机制,快速处理的补偿机制?
- 如果结算订单创建,但并未请求打款(请求未通过),系统是否有补发功能?预警功能?
- 如果一笔订单一直处于打款中,如何处理?是否有预警通知,因为我们对外有承诺时间的。
- 结算请求接口,假设请求失败,则请求失败的失败原因是否足够合理?
- 结算失败,是否有异步通知?错误原因返回,返回码是否经过加工处理?
- 接口结算的对外全套接口是否足够完整,是否标准?
四、退款
1. 正常退款
- 退款支持的并发请求峰值是多少?如果超过并发峰值会怎么样?
- 分账退款请求是否有日志记录?
- 同一笔订单,其支付订单的退款成功,而分账订单的分账退款,是否会出现一笔成功,一笔失败/处理中的情况?如果出现了会怎么办
- 退款完成,是否会出现更新支付退款状态,但未更新分账退款状态。
- 更新退款状态,但是账务金额不足会怎么办,是否有监控?
- 多次退款,能否一下子查出的该订单所有的退款记录
- 分账退款金额是否一定要小于分账金额? 超额退款是否可行?
2. 异常退款
- 入账异常,是否会通知商户,是否提供查询接口? (目前已彻底解决入账异常问题,解决的方式是以贷记卡进行试算,如果平台分账金额小于手续费,则拦截交易)
- 重复支付、入账异常、失败交易等不同类的自动退款模式,假设系统退款发起失败,是否有补偿机制,邮件预警机制?
五、账户
- 目前分账方账户结构为3层,用户根本看不懂;是否可以简化?
- 能否定制化推出个人类型账户、普通商家账户、VIP商家账户?
- 简化账户模式,如何才能不影响已对接使用的商户?
- 账户支付模式的要素,以及前提是什么?
本文素材来自互联网