Stripe-Webhook lokal testen
Beim Integrieren von Stripe-Webhooks muss man oft echte Test-Zahlungen auslösen, um seinen Handler zu prüfen. Mit Webhook Toolkit generierst du ein signiertes und gültiges Stripe-Event mit einem Klick, bearbeitest den Payload und sendest ihn direkt an deinen lokalen Endpoint. Deine Stripe-Signature-Prüfung wird sofort getestet.
Signatur serverseitig prüfen
Auf der Node.js-Seite muss dein Handler den Header validieren, bevor er das Event verarbeitet:
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(
rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET
);
if (event.type === 'payment_intent.succeeded') {
// ...
}Denk daran, den raw body (ungeparst) an constructEvent zu übergeben, sonst stimmt die Signatur nie. Um ein echtes Event von Stripe auf deinem localhost zu empfangen, erstelle einen Relay-Tunnel.
Häufige Fragen
Wie teste ich einen Stripe-Webhook lokal ohne echte Zahlung?
Nutze den Generator oben: Wähle das Event (z. B. payment_intent.succeeded), füge dein Signing Secret whsec_… ein, gib die URL deines lokalen Handlers an (über das Relay oder einen Receiver-Endpoint) und klicke auf Signieren & senden. Der Stripe-Signature-Header wird exakt so berechnet wie von Stripe.
Ist der generierte Stripe-Signature-Header gültig?
Ja. Er folgt dem offiziellen Schema t=timestamp,v1=HMAC_SHA256(timestamp.payload, secret). stripe.webhooks.constructEvent() validiert ihn fehlerfrei, solange du das richtige Signing Secret verwendest.
Kann ich den Betrag oder den Customer ändern?
Ja, der Payload ist vor dem Senden komplett bearbeitbar. Ändere Betrag, Customer-ID, Status… und sende dann so oft wie nötig erneut.
Unterschied zur Stripe-CLI?
Die Stripe-CLI funktioniert nur für Stripe und erfordert eine Installation. Webhook Toolkit unterstützt auch GitHub, Slack, Twilio, Mailgun und Shopify, direkt im Browser, und fängt empfangene Requests ein bzw. inspiziert sie.