Een Stripe-webhook lokaal testen
Het integreren van Stripe-webhooks dwingt je vaak om echte testbetalingen te triggeren om je handler te controleren. Met Webhook Toolkit genereer je een geldig gesigneerd Stripe-event met één klik, bewerk je de payload en stuur je het rechtstreeks naar je lokale endpoint. Je Stripe-Signature-verificatie wordt meteen getest.
De signatuur server-side verifiëren
Aan de Node.js-kant moet je handler de header valideren voordat hij het event verwerkt:
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(
rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET
);
if (event.type === 'payment_intent.succeeded') {
// ...
}Vergeet niet de raw body (ongeparst) door te geven aan constructEvent, anders zal de signatuur nooit kloppen. Om een echt event van Stripe op je localhost te ontvangen, maak je een Relay-tunnel aan.
Veelgestelde vragen
Hoe test ik een Stripe-webhook lokaal zonder echte betaling?
Gebruik de generator hierboven: kies het event (bijv. payment_intent.succeeded), plak je signing secret whsec_…, geef de URL van je lokale handler op (via de Relay of een Receiver-endpoint) en klik op Signeer & verstuur. De Stripe-Signature-header wordt exact zo berekend als Stripe dat doet.
Is de gegenereerde Stripe-Signature-header geldig?
Ja. Hij volgt het officiële schema t=timestamp,v1=HMAC_SHA256(timestamp.payload, secret). stripe.webhooks.constructEvent() valideert hem zonder fout zolang je het juiste signing secret gebruikt.
Kan ik het bedrag of de customer wijzigen?
Ja, de payload is volledig bewerkbaar voor het versturen. Wijzig het bedrag, het customer ID, de status… en verstuur zo vaak als nodig opnieuw.
Verschil met de Stripe CLI?
De Stripe CLI werkt alleen voor Stripe en vereist een installatie. Webhook Toolkit ondersteunt ook GitHub, Slack, Twilio, Mailgun en Shopify, in de browser, en vangt/inspecteert de binnenkomende requests.