我已经按照Laravel文档添加了Stripe webhook,并在我的Stripe webhook设置中创建了一个端点,但我仍然收到Stripe的电子邮件,说他们不能向webhook提供数据。
下面是我为webhook添加到项目中的代码。
无中间件路由:
Route::post(
'stripe/webhook',
'\Laravel\Cashier\Http\Controllers\WebhookController@handleWebhook'
);
在verifyCsfToken.php中:
protected $except = [
'stripe/*',
];
是我遗漏了什么,还是这是一个常见的问题?
2条答案
按热度按时间ffdz8vbo1#
官方文件说:
Cascycle会自动处理失败的订阅取消,但如果您想要处理其他Stripe webhook事件,只需扩展Webhook控制器即可。你的方法名应该符合Cascraft的预期约定,具体来说,方法应该以handle和你希望处理的Stripe webhook的“camel case”名称为前缀。例如,如果你想处理invoice.payment_successed webhook,你应该在控制器中添加一个payment_succeeded方法。
我相信你正在尝试处理自定义webhook,这就是它不工作的原因。
jdgnovmf2#
除了@Artyom Sokolov的回答,我想说,有两个事件:WebhookReceived和WebhookHandled。
WebhookReceived将立即被触发,而WebhookHandled将在使用您创建的方法处理时被触发(检查Artyom的答案)
您的侦听器可以侦听WebhookReceived事件,但有时可能需要侦听器在收银员完成工作时开始工作。
另外,请检查webhook.events数组的URL/cashier.php文件