5.9. 退款处理

退款处理

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

1. 实现方案

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

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

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

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

2. 创建异步任务

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

$ php artisan make:job RefundInstallmentOrder

首先实现基本的逻辑:

app/Jobs/RefundInstallmentOrder.php

<?p...

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

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

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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