Код: Выделить всё
router.post(
'/webhook',
express.raw({ type: 'application/json' }),
webhookCreate
);
< /code>
exports.webhookCreate = async (req, res) => {
const sig = req.headers['stripe-signature'];
const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET
try {
const event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);
if (event.type === 'checkout.session.completed') {
const session = event.data.object;
console.log('✅ Checkout session completed:', session.id);
}
res.json({ received: true });
} catch (err) {
console.error(❌ Webhook signature verification failed:, err.message);
res.status(400).send(Webhook Error: ${err.message});
}
};
< /code>
Но когда я запускаю тестовое событие с помощью Cli Stripe: < /p>
stripe trigger checkout.session.completed
< /code>
Я получаю эту ошибку: < /p>
❌webhook Ошибка: Не было предоставлено значение заголовка STRIPE-SIGNATURE. />
Что я попробовал:
[list]
[*] Использование express.raw ({type: 'application/json'}) [*] С помощью полосы прослушивания-отдача к Localhost: 3011/api/stripe/webhook
[*] Обновление моего .env с последним Whsec _... из полосы Cli.
[/list]
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-express
Мобильная версия