相关疑难解决方法(0)

Stripe“未找到与有效负载的预期签名匹配的签名。”

所以我最近处理了一些条带代码,我决定是时候使用 webhook 了。我查看了stripe网页上的webhooks页面,复制了源代码,但不起作用。

client.post('/webhook', express.raw({ type: 'application/json' }), (request, response) => {
        const sig = request.headers['stripe-signature'];
        let event;
        try {
            event = exports.stripe.webhooks.constructEvent(request.body, sig, code);
        }
        catch (err) {
            response.status(400).send(`Webhook Error: ${err.message}`);
            return;
        }
        // Handle the event
        switch (event.type) {
            case 'payment_intent.succeeded':
                const paymentIntent = event.data.object;
                console.log(paymentIntent);
                break;
            // ... handle other event types
            default:
                console.log(`Unhandled event type ${event.type}`);
        }
        // Return a 200 response to acknowledge receipt of the event
        response.send();
    });
Run Code Online (Sandbox Code Playgroud)

我已经多次检查我的代码是否相同,但确实如此。有人能告诉我出了什么问题吗?如果是这样的话,我也在端口 3001 上监听。

node.js express stripe-payments

3
推荐指数
1
解决办法
4200
查看次数

从 Stripe 获取 webhook 异常

我正在尝试从 Stripe 设置一个 webhook 来处理该payment_intent.succeeded事件,但出现异常。这是我来自 Node 后端的代码(我已经提取了我希望的所有相关部分。如果还需要其他任何东西,请告诉我):

const stripeWebHookSecret = 'whsec_WA0Rh4vAD3z0rMWy4kv2p6XXXXXXXXXXX';

import express from 'express';
const app = express();
app.use(bodyParser.urlencoded({ extended:true }));
app.use(bodyParser.json());
app.use(session({ <some params here> }));

const openRouter = express.Router();

registerOpenPaymentRoutes(openRouter);

app.use('/open', openRouter);
Run Code Online (Sandbox Code Playgroud)

的实现registerOpenPaymentRoutes如下所示:

export const registerOpenPaymentRoutes = (router) => {
    router.post('/payment/intent/webhook', bodyParser.raw({type: 'application/json'}), (req, res) => {
        let signature = req.headers['stripe-signature'];
        try {
            let event = stripe.webhooks.constructEvent(req.body, signature, stripeWebHookSecret);
            switch(event.type){
                case 'payment_intent.succeeded':
                    let intent = event.data.object;
                    res.json({ message: 'Everything went smooth!', intent }); …
Run Code Online (Sandbox Code Playgroud)

webhooks node.js stripe-payments

1
推荐指数
1
解决办法
1948
查看次数

标签 统计

node.js ×2

stripe-payments ×2

express ×1

webhooks ×1