5.9. 退款处理

退款处理

在之前的章节里我们已经实现了微信和支付宝还款的功能,接下来我们将要实现分期付款功能的最后一个重要功能:退款。

1. 实现方案

在上一本课程中,我们的退款操作是同步的,当运营人员点击同意退款之后,后端接口会直接调用对应支付网关的退款接口,然后将退款结果返回给浏览器。

但是对于分期付款来说,由于有多笔支付,如果仍然采用同步的方式退款,一是可能耗时比较长;二是假如中途某笔退款失败,我们很难决定这个分期付款的退款到底是成功还是失败。

我们可以参考一下微信支付的思路,我们在做微信退款时,调用的微信支付接口并不会告诉我们退款成功没有,只是告诉我们退款申请收到了,等微信处理好之后再把结果通过后端回调告诉我们。

因此我们这边可以用一个异步队列来实现这个退款操作。

2. 创建异步任务

现在通过 make:job 命令创建一个任务:

$ php artisan make:job RefundInstallmentOrder

首先实现基本的逻辑:

app/Jobs/RefundInstallmentOrder.php

<...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

张汉为
uasemax
老师,请问关联关系什么时候加括号?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
Jovi
队列有问题,望大佬科普下
0 个点赞 | 1 个回复 | 教程 | 课程版本 5.7
18874127314
老师,这里用常量是不是更合适
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
Flourishing
老师,像这种有一笔没有退款成功的怎么处理呢?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5