Как исправить ошибку платежей Stripe? Не найдено ни одной подписи, соответствующей ожидаемой подписи для полезной нагрузки. - PullRequest
0 голосов
/ 08 января 2020

Почему я ловлю эту ошибку?

Я видел подобные вопросы здесь, но, похоже, они не решают мою проблему.

Ошибка: не найдено подписей, соответствующих ожидаемой подписи для полезной нагрузки. Вы передаете необработанное тело запроса, полученное от Stripe? https://github.com/stripe/stripe-node#webhook -подпись

Вот мои index.ts с удаленными ключами.

import * as functions from 'firebase-functions';

import * as Stripe from 'stripe';
const stripe = new Stripe('sk_test_*****************************');
const endpointSecret = 'whsec_******************************';

import * as express from 'express';
import * as cors from 'cors';


const bodyParser = require('body-parser')

const app = express();
app.use(cors({origin: true}));


app.post('/webhook', bodyParser.raw({type: 'application/json'}), async(req, res) => {

  const sig = req.headers['stripe-signature'] as string;
  let event;

    try {
      event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);
    } catch (err) {

      console.log("ERROR!!!1");
      console.log(err);
      return res.status(400).send(`Webhook Error: ${err.message}`);
    }

    console.log('Success:', event.id);

    // Handle the checkout.session.completed event
    if (event.type === 'checkout.session.completed') {

      const session = event.data.object;
      console.log("MADE IT!!!");
      console.log(session);
      return;

      // Fulfill the purchase...
      //handleCheckoutSession(session);
    }

    return;

});

export const payments = functions.https.onRequest(app);

1 Ответ

0 голосов
/ 08 января 2020

req.body является проанализированным JSON телом. Вместо этого вы захотите req.rawBody.toString(), что должно подтвердить.

...