Stripe Webhook是GET请求(不是POST),始终为404响应

时间:2018-12-01 15:57:06

标签: laravel stripe-payments webhooks laravel-cashier

我正在开发环境中(在Stripe测试模式下)集成Stripe Webhooks,并确认所有请求都作为GET请求进入,而不是文档说明中的POST请求。我想念什么吗?

Laravel路线:

是:

Route::get(
    'stripe/webhook',
    '\Laravel\Cashier\Http\Controllers\WebhookController@handleWebhook'
);

否:

Route::post(
    'stripe/webhook',
    '\Laravel\Cashier\Http\Controllers\WebhookController@handleWebhook'
);

而且,由于某种原因,即使我的应用程序返回200响应,并且Stripe看到了,Stripe表示它失败并返回404响应:

Screenshot from dashboard.stripe.com

Screenshot from dashboard.stripe.com

非常感谢您的帮助或见识!

1 个答案:

答案 0 :(得分:0)

此问题的快速跟进和解决方案,以供将来参考:由于这是一个开发/暂存站点,因此受基本身份验证的保护,因此我(试图)在/ stripe / webhook路由上禁用了基本身份验证在Nginx配置中:

location /stripe/webhook {
    auth_basic "off";
}

但是,由于缺少“ try_files”指令的特殊性,因此由于某种原因将请求从POST转换为GET。这是更新且正确的配置:

location /stripe/webhook {
    try_files $uri $uri/ /index.php?$query_string;
    auth_basic "off";
}