5.9. 退款处理
退款处理
在之前的章节里我们已经实现了微信和支付宝还款的功能,接下来我们将要实现分期付款功能的最后一个重要功能:退款。
1. 实现方案
在上一本课程中,我们的退款操作是同步的,当运营人员点击同意退款之后,后端接口会直接调用对应支付网关的退款接口,然后将退款结果返回给浏览器。
但是对于分期付款来说,由于有多笔支付,如果仍然采用同步的方式退款,一是可能耗时比较长;二是假如中途某笔退款失败,我们很难决定这个分期付款的退款到底是成功还是失败。
我们可以参考一下微信支付的思路,我们在做微信退款时,调用的微信支付接口并不会告诉我们退款成功没有,只是告诉我们退款申请收到了,等微信处理好之后再把结果通过后端回调告诉我们。
因此我们这边可以用一个异步队列来实现这个退款操作。
2. 创建异步任务
现在通过 make:job
命令创建一个任务:
$ php artisan make:job RefundInstallmentOrder
首先实现基本的逻辑:
app/Jobs/RefundInstallmentOrder.php
<?p...