关于支付模块中分账
分账:给参与方分钱(分润)
由于资金最终是交由有资质的结算中心(如支付宝,微信支付,电子银行等),所以分账系统最终还是需要调用资金结算平台提供的分账API。如果对接的金额结算平台没有提供分账的API,则无法进行分账的业务处理。资金结算平台提供的分账接口通常不涉及分账比例,而是需要传入确定金额,所以分账规则的维护就是业务系统要做的事了。说白了,分账业务就是代理各大结算平台的API,系统的价值就看大家在代理时,谁的增强服务做的好(提供多维度统计、稳定易用、功能丰富等等)。
对比了支付宝和微信的分账API,说一下不同点:
- 微信的分账接口中有“资金冻结”的概念,如果在支付时标记某单交易需分账,则此单金额会被冻结(即使没有维护分账用户列表),需要手动调用解冻API。在调用分账接口执行分账指令时,支付宝接口会自动判断是否存在分账用户。
- 分账后,如果订单发生退款。支付宝只有一个退款接口,通过参数配置退款、退分账和补差。微信支付则涉及“退款”和“分账回退”两个接口。这个分账后退款的场景中,如果接口调用参数只关注退款,分账后减少的金额需要由收款方补上,即订单100,分账后商户得到60,退款时商户补上40 。如果接口调用时明确退回分账金额,则在调用API时需要明确从哪个分账收入方退,退多少分账金额,这里是较为繁琐的地方(即使对于每一笔需要分账的交易都有对应的分账记录表),且微信支付中,如果分账对象为个人,分账也无法退还。从资金结算平台的接口设计来看,涉及分账后的退款,无法退回的分账皆由收款商户来承担。
总结:涉及到分销成功后订单发生退款的场景,从分润放收回的金额将<=用户的付款金额,这部分差额的承担需要注意。