我正在开发环境中(在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响应:
非常感谢您的帮助或见识!
答案 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";
}