8.8. 管理后台 - 同意退款(支付宝)

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

支付宝退款

上一节我们完成了拒绝退款的逻辑,这一节我们要实现同意退款的逻辑。

1. 生成退款订单号

不管是支付宝还是微信,在申请退款的时候都需要我们提交一个唯一字符串作为退款订单号,之后可以通过退款订单号来查询退款进度,退款的回调也会带上退款订单号。

我们选择在 Order 模型中写这个逻辑:

app\Models\Order.php

use Ramsey\Uuid\Uuid;
.
.
.
    public static function getAvailableRefundNo()
    {
        do {
            // Uuid类可以用来生成大概率不重复的字符串
            $no = Uuid::uuid4()->getHex();
            // 为了避免重复我们在生成之后在数据库中查询看看是否已经存在相同的退款订单号
        } while (self::query()->where('refund_no', $no)->exists());

        return $no;
    }

2. 控制器

接下来我们要完善一下我们之前在 OrdersController 里的 handleRefund() 方法,由于调用退款的逻辑比较多,因此我们单独拆出一个方法 _refundOrder()

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

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

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
贡献者:1
讨论数量: 1

xiaohang89
后台发起退款的时候,出现了服务器 500 错误。
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5