无法获取 Express 中 Stripe webhook 签名的原始请求正文

问题描述 投票:0回答:1

我已经寻找这个问题的解决方案大约三周了。我看到其他人也遇到过这个问题,我已经尝试过为他们提供的解决方案,但它们似乎对我不起作用。我正在使用 Firebase 云函数,并通过云函数传递 Express 实例,如下所示

module.exports = onRequest(app);

这是我构建签名条纹事件的代码。我收到

Webhook signature verification failed
错误。代码:

app.post('/', express.raw({type: "*/*"}), (req, res) => {
    const endpointSecret = "whsec_...";
    let event;

    const signature = req.headers['stripe-signature'];
    try {
    event = stripe.webhooks.constructEvent(
        req.body,
        signature,
        endpointSecret
    );
    } catch (err) {
        logger.error(`Webhook signature verification failed.`, err.message);
        return res.sendStatus(400);

    ...
}

Firebase 是否会在将数据传递出去之前解析数据?我需要在那里配置什么吗?这简直要了我的命。

node.js express stripe-payments
1个回答
0
投票

使用 bodyParser 将 rawbody 发送到 stripe webhook

app.use(bodyParser.raw({ type: 'application/json' }));

我目前正在实施 payemnt 网关。

© www.soinside.com 2019 - 2024. All rights reserved.