Tester un webhook Stripe en local
Intégrer les webhooks Stripe oblige souvent à déclencher de vrais paiements en test pour vérifier son handler. Avec Webhook Toolkit, génère un event Stripe signé et valide en un clic, édite le payload, et envoie-le directement à ton endpoint local. Ta vérification de Stripe-Signature est testée instantanément.
Vérifier la signature côté serveur
Côté Node.js, ton handler doit valider le header avant de traiter l'event :
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(
rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET
);
if (event.type === 'payment_intent.succeeded') {
// ...
}Pense à passer le raw body (non parsé) à constructEvent, sinon la signature ne correspondra jamais. Pour recevoir un vrai event depuis Stripe sur ton localhost, crée un tunnel Relay.
Questions fréquentes
Comment tester un webhook Stripe en local sans vrai paiement ?
Utilise le générateur ci-dessus : choisis l'event (ex. payment_intent.succeeded), colle ton signing secret whsec_…, indique l'URL de ton handler local (via le Relay ou un endpoint Receiver) puis clique sur Signer & envoyer. Le header Stripe-Signature est calculé exactement comme par Stripe.
Le header Stripe-Signature généré est-il valide ?
Oui. Il suit le schéma officiel t=timestamp,v1=HMAC_SHA256(timestamp.payload, secret). stripe.webhooks.constructEvent() le validera sans erreur tant que tu utilises le bon signing secret.
Puis-je modifier le montant ou le customer ?
Oui, le payload est entièrement éditable avant l'envoi. Change le montant, le customer ID, le statut… puis renvoie autant de fois que nécessaire.
Différence avec la CLI Stripe ?
La CLI Stripe ne fonctionne que pour Stripe et nécessite une installation. Webhook Toolkit gère aussi GitHub, Slack, Twilio, Mailgun et Shopify, dans le navigateur, et capture/inspecte les requêtes reçues.