Menu

5.6. 分期还款(支付宝)

分期还款

前面几个章节我们完成了分期付款的创建和展示,接下来我们需要实现分期付款的核心功能:支付。

1. 实现思路

分期还款的支付与商品订单的支付是类似的,需要拉起支付 + 支付回调两个步骤。

由于分期还款的支付回调逻辑与普通商品订单支付回调逻辑是独立的,需要用另外的支付回调地址,因此我们需要在拉起支付的时候用还款回调地址覆盖掉之前在 AppServiceProvider 中设置的商品订单支付回调地址。

对于支付回调,需要判断当前还款的是第几期:如果是第一期,则需要将分期付款的状态修改为『还款中』,将对应的商品订单的支付状态标记为『已支付』,并触发一个商品订单已支付的事件;如果是最后一期则需要将分期付款的状态改为『已还清』。

2. 拉起支付

首先我们来实现拉起支付宝支付的逻辑:

app/Http/Controllers/InstallmentsController.php

use App\Exceptions\InvalidRequestException;
.
.
.
    public function payByAlipay(Installment $installment)
    {
        if ($installment->order->closed) {
            th...

本文章首发在 Laravel China 社区

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

上一篇 下一篇
讨论数量: 7

Oyxiaoxi
抱歉,暂时无法查询到付款结果?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Oyxiaoxi
该订单已付款,可登录支付宝查看交易记录?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
simplewater
回调地址不对,是我配置有问题吗
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
windtalker
三期的可以完整跑完,六期的有问题
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
yangwb1
分期付款,点支付宝付款直接关闭订单
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
Damian
回调地址不一致?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
phpdi
支付回调,这里需要加事务的吧
3 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
刻意练习,每日精进。
0
点赞
203
浏览
7
讨论

作者
leo