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