Testowanie webhooka Stripe lokalnie
Integracja webhooków Stripe często zmusza do wyzwalania prawdziwych płatności testowych, by sprawdzić swój handler. Z Webhook Toolkit generujesz prawidłowy podpisany event Stripe jednym kliknięciem, edytujesz payload i wysyłasz go bezpośrednio do swojego lokalnego endpointu. Twoja weryfikacja Stripe-Signature jest testowana natychmiast.
Zweryfikuj podpis po stronie serwera
Po stronie Node.js Twój handler musi zweryfikować header przed przetworzeniem eventu:
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(
rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET
);
if (event.type === 'payment_intent.succeeded') {
// ...
}Pamiętaj, aby przekazać raw body (niesparsowane) do constructEvent, w przeciwnym razie podpis nigdy się nie zgodzi. Aby odbierać prawdziwy event ze Stripe na swoim localhost, utwórz tunel Relay.
Getting signature verification failed instead of a clean 200? The Stripe signature validator recomputes the HMAC from your whsec, raw body and Stripe-Signature header and names the exact cause.
Najczęstsze pytania
Jak przetestować webhook Stripe lokalnie bez prawdziwej płatności?
Użyj powyższego generatora: wybierz event (np. payment_intent.succeeded), wklej swój signing secret whsec_…, podaj URL swojego lokalnego handlera (przez Relay lub endpoint Receiver) i kliknij Podpisz & wyślij. Header Stripe-Signature jest obliczany dokładnie tak jak przez Stripe.
Czy wygenerowany header Stripe-Signature jest prawidłowy?
Tak. Jest zgodny z oficjalnym schematem t=timestamp,v1=HMAC_SHA256(timestamp.payload, secret). stripe.webhooks.constructEvent() zweryfikuje go bez błędu, o ile używasz właściwego signing secret.
Czy mogę zmienić kwotę lub klienta?
Tak, payload jest w pełni edytowalny przed wysłaniem. Zmień kwotę, customer ID, status… i wyślij ponownie tyle razy, ile potrzeba.
Różnica względem CLI Stripe?
CLI Stripe działa tylko dla Stripe i wymaga instalacji. Webhook Toolkit obsługuje również GitHub, Slack, Twilio, Mailgun i Shopify, w przeglądarce, oraz przechwytuje/inspekuje odebrane żądania.