5.9. 退款处理

本教程最新版为 8.x,当前版本已放弃维护,请阅读最新版本!

退款处理

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

1. 实现方案

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

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

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

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

2. 创建异步任务

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

$ php artisan make:job RefundInstallmentOrder

首先实现基本的逻辑:

app/Jobs/RefundInstallmentOrder.php

<?p...

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

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

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

ValleyUp
支付宝退款报错:撤销或退款金额与订单金额不一致
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
liunian-zy
支付宝沙箱回调问题
1 个点赞 | 2 个回复 | 分享 | 课程版本 6.x
18874127314
老师,这里用常量是不是更合适
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
张汉为
uasemax
老师,请问关联关系什么时候加括号?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
gyp719
分期付款退款问题。
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
Jovi
队列有问题,望大佬科普下
0 个点赞 | 1 个回复 | 教程 | 课程版本 5.7
Flourishing
老师,像这种有一笔没有退款成功的怎么处理呢?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5