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

Laravel Cashier-Paddle支付成功后未写入本地数据库问题

Laravel Cashier-Paddle Webhook 失败排查(Windows环境)

1. 验证Webhook URL的可达性

  • 手动访问Expose提供的公网URL,确认返回200状态码。可用curl -I [你的Webhook URL](Windows命令行)或Postman测试,检查是否能正常转发到本地Laravel服务。
  • 确认Expose代理未断开,且正确映射到本地服务端口(默认8000),本地服务重启后需同步重启Expose。

2. 检查Webhook签名验证

  • 确保.env文件中PADDLE_WEBHOOK_SECRET与Paddle沙箱控制台的Webhook Secret完全一致,无空格、换行符等格式错误。
  • 临时替换默认Webhook路由,验证请求是否到达Laravel:
    Route::post('/paddle/webhook', function (Illuminate\Http\Request $request) {
        \Illuminate\Support\Facades\Log::info('Paddle Webhook Received', $request->all());
        return response()->json(['status' => 'ok']);
    })->name('paddle.webhook');
    
    查看storage/logs/laravel.log是否有日志记录,无记录则说明请求未到达本地服务。

3. Windows环境特殊问题排查

  • 防火墙/杀毒软件拦截:临时关闭Windows Defender防火墙或第三方杀毒软件,测试Webhook是否能正常接收。
  • HTTPS证书问题:Paddle默认要求HTTPS请求,确认Expose提供的证书有效;沙箱环境可暂时允许HTTP请求(仅测试用)。
  • 目录权限:确保Laravel的storage目录有读写权限,右键项目目录给当前用户或IIS_IUSRS组添加权限。

4. 数据库写入问题(若请求已到达Laravel)

  • 检查billable模型(默认User)是否正确引入Cashier Trait:
    use Laravel\Cashier\Billable;
    
    class User extends Authenticatable
    {
        use Billable;
        // ...
    }
    
  • 确认Cashier迁移已执行:php artisan migrate,检查数据库是否存在paddle_id、trial_ends_at等必填字段。
  • 查看laravel.log中的数据库错误日志,排查字段缺失、关联错误等问题。

5. Paddle控制台配置检查

  • 确认Webhook事件订阅已勾选Customer Created、Payment Succeeded等相关事件,未订阅的事件Paddle不会发送通知。
  • 查看Paddle Webhook日志的错误详情:
    • Connection Timeout:排查Expose代理、网络环境、防火墙拦截问题;
    • 403 Forbidden:重点检查PADDLE_WEBHOOK_SECRET配置是否匹配;
    • 500 Internal Server Error:查看Laravel日志中的错误栈,定位服务内部问题。

内容的提问来源于stack exchange,提问作者Arqam Saleem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:00:16