Node.js: ошибка чередования Не найдено подписей, соответствующих ожидаемой подписи для полезной нагрузки. - PullRequest
0 голосов
/ 26 марта 2020

Ошибка:

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

Я пробовал req.rawBody, но результат тот же. Я также попробовал все решения, доступные для переполнения стека и github.

сервер. js

// use express body parser
app.use(bodyParse.json());

чередование. js

router
  .route('/payment/hook')
  .post(bodyParser.raw({
    type: 'application/json'
  }), paymentsController.transactionHook);

paymentController. js

transactionHook: async(req, res, next) => {
    const sig = req.headers['stripe-signature'];
    let event;

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

    } catch (err) {
        return res.status(400).json({ message: err.message, detail: err.detail });
      }
  }

Response

Response

1 Ответ

3 голосов
/ 26 марта 2020

Использование bodyParser.json() изменит тело так, что подписи не поддаются проверке. Вы должны убедиться, что это промежуточное ПО не применяется для вашей конечной точки webhook /hook.

Один из способов сделать это с помощью Express - просто определить конечную точку webhook до применения промежуточного программного обеспечения (в последовательности построения ваших маршрутов).

...