7.3. 订单的支付宝支付
接下来我们需要实现订单的支付功能。
1. 控制器
首先创建一个 PaymentController
控制器:
$ php artisan make:controller PaymentController
在 PaymentController
中添加一个 payByAlipay
方法:
app/Http/Controllers/PaymentController.php
use App\Models\Order;
use App\Exceptions\InvalidRequestException;
.
.
.
public function payByAlipay(Order $order, Request $request)
{
// 判断订单是否属于当前用户
$this->authorize('own', $order);
// 订单已支付或者已关闭
if ($order->paid_at || $order->closed) {
throw new InvalidRequestException('订单状态不正确');
}
// 调用支付宝的网页支付
return app('alipay')->web([
'out_trade_no' => $order->no, // 订单编号,需保证在商户端不重复
'total_amount' => $order->total_amount, // 订单金额,单...