#stripe-payments #webhooks
#stripe-платежи #webhooks
Вопрос:
router.post(
"/",
bodyParser.raw({ type: "application/json" }),
async (req, res) => {
// Retrieve the event by verifying the signature using the raw body and secret.
let event;
const signature = req.headers["stripe-signature"]
const endPointSecret = "whsec_***"
console.log(signature)
console.log(req.body)
try {
event = stripe.webhooks.constructEvent(
req.body,
signature,
endPointSecret
);
} catch (err) {
console.log(err);
return res.sendStatus(400);
}
// Extract the object from the event.
const dataObject = event.data.object;
console.log(dataObject)
res.sendStatus(200)
}
);
Я тестирую Webhook на локальном хосте, прослушивая и пересылая событие изИнтерфейс командной строки Stripe
на локальный хост. И я использую endpoint secret (из командной строки командной строки stripe, предоставленной после команды "stripe listen").Все еще ошибка проверки подписи!!
Комментарии:
1. Настроено ли у вас какое-либо другое
bodyParser
промежуточное программное обеспечение? Вам необходимо убедиться, что ваш маршрут webhook использует только синтаксический анализатор исходного текста, как в этом примере: github.com/stripe/stripe-node/blob/master/examples /…2. app.use((req, res, next) => { if (req.originalUrl === ‘/stripe-webhook’) { next(); } else { express.json()(req , res , next) } });