流程
退款的时候,记账分两步:
-
先冻结
-
后解冻
同时扣款,其实就是这个时候才真正扣款。
退款的时候,为什么要先冻结后解冻?直接扣钱不行吗?也可以,但是退款一般分两个阶段:
-
先受理退款
-
然后真的发往渠道退款
为什么要这么做?为什么要拆分?因为拆分之后,受理退款的速度就更快了。另外,为了提高性能,尽量把可以异步的业务或者步骤,拆分之后异步处理。
先冻结
冻结的作用?
为什么要先冻结?冻结的目的是,先把商家的钱冻结住,不让商家提现,本质是为了解决在真正退款的时候,要确保商家余额有钱可退款。否则,就可能导致支付公司资金损失。
冻结的时候,需要依赖正向交易的记账必须成功吗?
不需要。
冻结的时候,直接就冻了,和正向交易的记账是否成功,木有关系。
也就是说,无论正向交易有没有记账记录,都会直接冻结。
后解冻
解冻的作用?
主要是两个点:
1.把刚才冻结的钱解冻
2.然后,真正扣款,所谓扣款就是从商户余额减钱
解冻的时候,需要依赖正向交易的记账必须成功吗?
需要依赖正向交易,那就是解冻的时候——会查询是否存在原记账记录:
1.如果不存在原记账记录,就抛出异常
2.如果存在原记账记录,无论记账状态是否成功,都解冻/扣款成功
流程图
先冻结
后解冻