You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel本地项目支付回调后出现419 CSRF令牌不匹配错误

解决Laravel本地项目支付回调419 CSRF令牌不匹配问题

出现这个问题的核心原因是:支付平台发起的回调请求属于外部第三方请求,不会携带Laravel生成的CSRF令牌,而Laravel的VerifyCsrfToken中间件会校验所有非GET请求的令牌合法性,因此触发419错误。

直接有效的解决方案如下:

  • 将回调路由加入CSRF白名单
    打开app/Http/Middleware/VerifyCsrfToken.php文件,找到$except属性数组,把你的支付回调路由(比如/verify)添加进去:

    protected $except = [
        '/verify',
        // 如果有其他回调路由也可以一并添加
    ];
    

    注意路由路径要和你在routes/web.php或routes/api.php中定义的完全一致,比如带前缀的话要写全(比如/api/pay/verify)。

  • 确认请求方法匹配
    检查支付平台的回调请求方法是GET还是POST:

    • 如果是GET请求,Laravel默认不会校验CSRF令牌,此时419大概率是路由定义错误或会话问题;
    • 如果是POST请求,必须通过上述白名单方式跳过CSRF校验,这是第三方回调场景的标准处理方式。
  • 本地环境额外注意
    确保本地服务能被支付平台正常访问(比如使用ngrok等工具暴露本地端口),但这不是419错误的直接原因,只是保证回调能到达你的项目。

内容的提问来源于stack exchange,提问作者niloufar padkan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:13:13