支付回调,这里需要加事务的吧

// 更新对应的还款计划
        $item->update([
            'paid_at'        => Carbon::now(), // 支付时间
            'payment_method' => 'alipay', // 支付方式
            'payment_no'     => $data->trade_no, // 支付宝订单号
        ]);

        // 如果这是第一笔还款
        if ($item->sequence === 0) {
            // 将分期付款的状态改为还款中
            $installment->update(['status' => Installment::STATUS_REPAYING]);
            // 将分期付款对应的商品订单状态改为已支付
            $installment->order->update([
                'paid_at'        => Carbon::now(),
                'payment_method' => 'installment', // 支付方式为分期付款
                'payment_no'     => $no, // 支付订单号为分期付款的流水号
            ]);
            // 触发商品订单已支付的事件
            event(new OrderPaid($installment->order));
        }

        // 如果这是最后一笔还款
        if ($item->sequence === $installment->count - 1) {
            // 将分期付款状态改为已结清
            $installment->update(['status' => Installment::STATUS_FINISHED]);
        }

这个位置不加事务会有问题吧?

还有一个问题是用事件去触发监听,但是某个监听逻辑出现更新异常怎么办,事件不能被重新触发,如果重新触发,又会影响到同一个事件下的其他监听,这个怎么处理啊

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

你说的对,课程和 Github 上面的代码都做了对应的调整

6年前 评论
讨论数量: 1
leo

你说的对,课程和 Github 上面的代码都做了对应的调整

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!