Laravel 接入支付宝支付异步通知返回 419 异常的原因及解决办法

admin 阅读:96 2024-03-03

使用 Laravel 接入支付宝支付,异步通知没有接收到,检查了下访问记录,发现支付宝在 post 我们设置的回调 URI 时报了 419 错误。

这是因为 Laravel 的 CSRF 保护功能拒绝了支付宝回调的 post 请求。

解决办法就是将接受异步通知的路由 URI 添加到 AppHttpMiddlewareVerifyCsrfToken 中间件的 $except 属性来排除路由:

<?php

namespace AppHttpMiddleware;

use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array<int, string>
     */
    protected $except = [
        //支付宝支付回调地址
        'payment/alipay/notify',
    ];
}

 

声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!