预授权完成之账务处理

252 阅读3分钟

应用场景

住酒店,刚住进去的时候,付了500(包含住宿300 + 押金200),这个是预授权支付,是先冻结。

然后退房的时候,才会真正扣款:即给商家加300,退200给消费者。本文主要讲的就是退房的时候这一步操作,这一步操作叫预授权完成。

流程

预授权完成,有两个大的步骤

1.先加钱500

2.再减钱200


第一个问题,为什么要先加后减?为什么不直接加300?

因为预授权业务比较特殊,就是你支付的时候,只是支付了一个大概的价钱,并不是最终的支付价格。

为什么呢?比如你住酒店,房费300,押金200,这个是确定的,但是你可能又消费了一瓶水,或者一顿酒店里的早餐。那么这个时候,酒店在你入住的时候,并不知道你会消费多少钱,而是在里退房的时候一起算钱。

再比如,坐地铁,也会先冻结20块钱,这个是最大值,但是实际消费的时候,可能消费了2块钱,也可能消费了5块钱,然后出站的时候,才知道你消费了几块钱。这个时候,就会出现先冻结了你20块钱,然后再根据你消费了几块钱,再计算要退多少钱。

意思大概就是这个意思,我们这里的例子,就简单一点,以酒店为例子,而且只包含房费500 + 押金200。


为什么要加钱500?

加钱500,是因为在预授权支付的时候没有记账,所以在预授权完成的时候就要记账。

比如,预授权支付了500,预授权完成的时候就要先入账500给商家。


为什么要减钱200?

减钱200是因为要退款200给消费者,因为你要退押金给他。

流程图

第一个阶段-预授权支付

第二个阶段-预授权完成

减钱200是要退款的

减钱200,核心有两点

1.记账

从商户余额扣款200,给消费者。

怎么给消费者?调用渠道退款。

2.调用渠道退款

退钱给消费者,是需要经过银联渠道的,所以记账之后,必须调用渠道退款接口退款,才能把钱退给消费者银行卡。

部分退款还要退手续费

因为预授权完成,一般都是部分退款,所以还需要退手续费给商家。因为一开始,支付公司多收了商家手续费,即一开始是按订单金额来收商家的手续费。所以,现在退款了一部分的钱给消费者,商家就没有收到那么多钱,就要把手续费的一部分要退给商家。

退手续费,只需要记账即可,即给商家加钱。

同步还是异步?

加钱500和减钱200都是同步。

退手续费是异步:先创建任务表记录,后job轮询。