我正在使用ngrok在本地测试Stripe webhooks,以便可以将webhooks发送到localhost上的端点。
我想测试将客户和付款信息保存到我的数据库,但是,似乎中间件没有附加req.user(由Passport设置),就像它在任何其他路由上一样。这使得在访问经过身份验证的用户方面不太方便。
我可以在收到Stripe令牌的路由上进行数据库工作,但大量有用的信息是作为webhook发送的。另一种选择是在该阶段保存费用ID或客户ID,然后在稍后阶段查找用户,但这似乎是不必要的工作。
我有点困惑,为什么会这样,除非我遗漏了一些非常明显的东西。
router.post('/stripe/webhook', (req, res) => {
console.log(req.user); //undefined
res.sendStatus(200);
});
你可以找到Stripe webhook mechanism here的细节
你需要解析持有有效载荷JSON的body
的request
接收端点示例:
app.post("/my/webhook/url", function(request, response) {
// Retrieve the request's body and parse it as JSON
var event_json = JSON.parse(request.body);
// Do something with event_json
response.send(200);
});
您可以通过测试JSON测试您的接收端点,您可以在条带的Event API
中找到它!并且您使用许多应用程序(如POSTMAN)发送测试JSON(还有一个Chrome应用程序)