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

Laravel应用集成Lemon Squeezy时POST请求出现404错误,Webhook未同步本地数据库

Laravel应用集成Lemon Squeezy时POST请求出现404错误,Webhook未同步本地数据库

我之前也碰到过类似的问题,咱们一步步来排查解决:

  • 检查路由配置与前缀
    首先确认你是在routes/api.php中注册的Webhook路由(Webhook请求通常走API路由),比如官方文档里的写法:

    Route::post('/webhooks/lemon-squeezy', [LemonSqueezyController::class, 'handleWebhook']);
    

    注意Laravel的API路由默认带/api前缀,所以你在Lemon Squeezy后台配置的Webhook URL应该是https://你的域名/api/webhooks/lemon-squeezy,很多人会漏加这个前缀导致404。你可以执行php artisan route:list命令,查看路由列表里是否存在这个POST路由,路径是否完全匹配。

  • 排除CSRF令牌验证
    Laravel的Web中间件默认会验证CSRF令牌,但Lemon Squeezy的Webhook请求不会携带你的应用CSRF令牌,所以必须把Webhook路由排除在外。打开app/Http/Middleware/VerifyCsrfToken.php,在$except数组中添加你的Webhook路径:

    protected $except = [
        '/api/webhooks/lemon-squeezy',
    ];
    
  • 清除路由缓存
    如果你之前运行过php artisan route:cache,修改路由后必须清除缓存才能让新路由生效。执行以下命令:

    php artisan route:clear
    
  • 本地环境的URL重写问题
    如果你在本地测试(比如用Valet、XAMPP或WAMP),要确保服务器配置了正确的URL重写规则:

    • Apache需要开启mod_rewrite模块,并且项目根目录的.htaccess文件配置正确(Laravel默认自带的就行);
    • Nginx需要配置对应的重写规则,把所有请求转发到index.php;
      嫌麻烦的话,可以直接用Laravel内置服务器php artisan serve,它默认支持正确的路由解析。
  • 查看日志定位问题
    打开storage/logs/laravel.log文件,搜索404相关的日志条目,里面会记录请求的具体路径,你可以对比这个路径和你配置的路由是否一致,这通常能快速定位问题。

我当时就是因为漏加了API前缀,导致Lemon Squeezy的Webhook请求找不到对应的路由,调整URL后就正常同步数据库了。

备注:内容来源于stack exchange,提问作者mathews

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:40:26