7.5. 订单的微信支付
微信支付
接下来我们来实现微信支付的入口。
1. 控制器
接下来我们来实现微信支付的入口,与支付宝类似,在 PaymentController
中新增一个 payByWechat()
方法:
app/Http/Controllers/PaymentController.php
.
.
.
public function payByWechat(Order $order, Request $request) {
// 校验权限
$this->authorize('own', $order);
// 校验订单状态
if ($order->paid_at || $order->closed) {
throw new InvalidRequestException('订单状态不正确');
}
// scan 方法为拉起微信扫码支付
return app('wechat_pay')->scan([
'out_trade_no' => $order->no, // 商户订单流水号,与支付宝 out_trade_no 一样
'total_fee' => $order->total_amount * 100, // 与支付宝不同,微信支付的金额单位是分。
'body' => '支付 Laravel Shop 的订单:'.$order->no, // 订单描述
]);
}
.
.
.
<...>