使用Firebase Functions Node.js监听Stripe Webhooks

i7uaboj4  于 2023-11-21  发布在  Node.js
关注(0)|答案(1)|浏览(98)

我一直在尝试使用Firebase函数收听Stripe webhooks:
下面是我的代码:

import * as bodyParser from 'body-parser'
import * as express from 'express';
const app = express();
app.use(bodyParser.raw({ type: '*/*' }));
const stripe = new stripeM("test_token");;
const stripeWHEndpointSecret = 'secret';

app.post('*', (req, res) => {
    const sig = req.headers["stripe-signature"];
    console.log(sig);
    try {
        const event = stripe.webhooks.constructEvent(req.body, sig, stripeWHEndpointSecret);
        console.log(event);

    }
    catch (err) {
        console.log(util.inspect(err));
        res.status(400).end();
    }   
    res.json({received: true});
});
export const stripeWebhooksListener = functions.https.onRequest(app);

字符串
我一直得到这个错误:SyntaxError:Unexpected token o in JSON at position 1
现在我明白这是一个解析req.body的问题,因为它可能是以块的形式到达的。但是,我认为使用Express和body-parser应该可以解决这个问题。
任何帮助将不胜感激
Stripe官方文档介绍如何做到这一点:https://stripe.com/docs/webhooks/signatures

zzlelutf

zzlelutf1#

以下是我使用req.rawBody的情况:

const event = stripe.webhooks.constructEvent(req.rawBody, sig, stripeWHEndpointSecret);

字符串

相关问题