Ta emot realtidsnotifikationer när händelser inträffar i Dodo Payments. Automatisera arbetsflöden och håll dina system synkroniserade med omedelbar händelseleverans.
Webhooks ger realtidsnotifikationer när specifika händelser inträffar i ditt Dodo Payments-konto. Använd webhooks för att automatisera arbetsflöden, uppdatera din databas, skicka notifikationer och hålla dina system synkroniserade.
Vår webhook-implementation följer Standard Webhooks specifikationen, vilket säkerställer kompatibilitet med branschens bästa praxis och befintliga webhook-bibliotek.
Navigera till DodoPayments Dashboard och gå till Settings > Webhooks.
2
Skapa Webhook Endpoint
Klicka på Add Webhook för att skapa en ny webhook-endpoint.
3
Lägg till Endpoint-URL
Ange URL:en där du vill ta emot webhook-händelser.
4
Välj händelser att ta emot
Välj de specifika händelser som din webhook-endpoint ska lyssna på genom att välja dem från händelselistan.
Endast valda händelser kommer att utlösa webhooks till din endpoint, vilket hjälper dig att undvika onödig trafik och bearbetning.
5
Hämta hemlig nyckel
Hämta din webhook Secret Key från inställningssidan. Du kommer att använda detta för att verifiera äktheten av mottagna webhooks.
Håll din webhook hemliga nyckel säker och exponera den aldrig i klientkod eller offentliga arkiv.
6
Rotera hemlig (valfritt)
Om det behövs kan du rotera din webhook-hemlighet för ökad säkerhet. Klicka på Rotera hemlig-knappen i dina webhook-inställningar.
Att rotera hemligheten kommer att utlöpa den och ersätta den med en ny. Den gamla hemligheten kommer endast att vara giltig under de kommande 24 timmarna. Efter det kommer försök att verifiera med den gamla hemligheten att misslyckas.
Använd hemlig rotation periodiskt eller omedelbart om du misstänker att din nuvarande hemlighet har blivit komprometterad.
Gränssnittet visar alla tillgängliga webhook-händelser organiserade i en hierarkisk struktur. Händelser grupperas efter kategori (t.ex. dispute, payment, subscription).
2
Sök och filtrera
Använd sökfältet för att snabbt hitta specifika händelser genom att skriva händelsenamn eller nyckelord.
3
Välj händelser
Markera rutorna bredvid de händelser du vill ta emot. Du kan:
Välja individuella underhändelser (t.ex. dispute.accepted, dispute.challenged)
Välja förälderhändelser för att ta emot alla relaterade underhändelser
Blanda och matcha specifika händelser baserat på dina behov
4
Granska händelsedetaljer
Hovra över informationsikonen (ⓘ) bredvid varje händelse för att se en beskrivning av när den händelsen utlöses.
5
Spara konfiguration
Klicka på Spara för att tillämpa dina ändringar, eller Avbryt för att avvisa modifieringar.
Om du avmarkerar alla händelser kommer din webhook-endpoint inte att ta emot några notifikationer. Se till att välja minst de händelser som din applikation behöver för att fungera korrekt.
Webhooks har en 15-sekunders tidsgräns för både anslutnings- och läsningsoperationer. Se till att din endpoint svarar snabbt för att undvika tidsgränser.
Bearbeta webhooks asynkront genom att omedelbart bekräfta mottagandet med en 200 statuskod, och hantera den faktiska bearbetningen i bakgrunden.
Om en webhook-leverans misslyckas, försöker Dodo Payments automatiskt igen med exponentiell backoff för att förhindra att ditt system överbelastas.
Försök
Fördröjning
Beskrivning
1
Omedelbart
Första omförsöket sker direkt
2
5 sekunder
Andra försöket efter kort fördröjning
3
5 minuter
Tredje försöket med ökad backoff
4
30 minuter
Fjärde försöket fortsätter backoff
5
2 timmar
Femte försöket med förlängd fördröjning
6
5 timmar
Sjätte försöket med längre fördröjning
7
10 timmar
Sjunde försöket med maximal fördröjning
8
10 timmar
Sista försöket - webhook markerad som misslyckad om den misslyckas
Maximalt 8 omförsök per webhook-händelse. Till exempel, om en webhook misslyckas tre gånger innan den lyckas, är den totala leveranstiden cirka 35 minuter och 5 sekunder från det första försöket.
Använd Dodo Payments-dashboarden för att manuellt försöka om individuella meddelanden eller återhämta alla misslyckade meddelanden i bulk när som helst.
Varje webhook-händelse inkluderar en unik webhook-id header. Använd denna identifierare för att implementera idempotens och förhindra duplicerad bearbetning.
Kopiera
Fråga AI
// Example: Storing webhook IDs to prevent duplicate processingconst processedWebhooks = new Set();app.post('/webhook', (req, res) => { const webhookId = req.headers['webhook-id']; if (processedWebhooks.has(webhookId)) { return res.status(200).json({ received: true }); } processedWebhooks.add(webhookId); // Process the webhook...});
Implementera alltid idempotenskontroller. På grund av omförsök kan du få samma händelse flera gånger.
Webhook-händelser kan anlända i oordning på grund av omförsök eller nätverksförhållanden. Utforma ditt system för att hantera händelser i vilken sekvens som helst.
Du kommer att få den senaste payloaden vid leveranstidpunkten, oavsett när webhook-händelsen ursprungligen avges.
Varje webhook-förfrågan inkluderar en webhook-signature header, en HMAC SHA256 signatur av webhook-payloaden och tidsstämpeln, signerad med din hemliga nyckel.
Om du inte använder en SDK kan du verifiera signaturer själv enligt Standard Webhooks-specifikationen:
Bygg det signerade meddelandet genom att sammanfoga webhook-id, webhook-timestamp, och den exakta råa strängifierade payload, separerade med punkter (.).
Beräkna HMAC SHA256 av den strängen med din webhook-hemliga nyckel från Dashboard.
Jämför den beräknade signaturen med webhook-signature header. Om de matchar är webhooken äkta.
Här är en komplett Express.js-implementering som visar webhook-verifiering och hantering:
Kopiera
Fråga AI
import { Webhook } from "standardwebhooks";import express from "express";const app = express();app.use(express.json());const webhook = new Webhook(process.env.DODO_WEBHOOK_SECRET);app.post('/webhook/dodo-payments', async (req, res) => { try { // Extract webhook headers const webhookHeaders = { "webhook-id": req.headers["webhook-id"] as string, "webhook-signature": req.headers["webhook-signature"] as string, "webhook-timestamp": req.headers["webhook-timestamp"] as string, }; // Verify the webhook signature const payload = JSON.stringify(req.body); await webhook.verify(payload, webhookHeaders); // Acknowledge receipt immediately res.status(200).json({ received: true }); // Process webhook asynchronously processWebhookAsync(req.body).catch(console.error); } catch (error) { console.error('Webhook verification failed:', error); res.status(400).json({ error: 'Invalid signature' }); }});async function processWebhookAsync(data: any) { // Handle the webhook event based on type switch (data.type) { case 'payment.succeeded': await handlePaymentSucceeded(data); break; case 'subscription.created': await handleSubscriptionCreated(data); break; // Add more event handlers... }}
Testa din webhook-hanterare noggrant med hjälp av testgränssnittet på dashboarden innan du bearbetar produktionshändelser. Detta hjälper till att identifiera och åtgärda problem tidigt.
Lägg till anpassade HTTP-headers till alla webhook-förfrågningar som skickas till din endpoint. Detta är användbart för autentisering, routing eller för att lägga till metadata till dina webhook-förfrågningar.
1
Lägg till anpassad header
I sektionen “Anpassade headers”, ange en Nyckel och Värde för din anpassade header.
2
Lägg till flera headers
Klicka på +-knappen för att lägga till ytterligare anpassade headers vid behov.
3
Spara konfiguration
Dina anpassade headers kommer att inkluderas i alla webhook-förfrågningar till denna endpoint.
Håll dig informerad om din webhook-hälsa med automatiska e-postnotifikationer. När webhook-leveranser börjar misslyckas eller din endpoint slutar svara, får du e-postaviseringar så att du snabbt kan åtgärda problem och hålla dina integrationer igång smidigt.
Gå till din Dodo Payments Dashboard och navigera till Dashboard → Webhooks → Aviseringar.
2
Aktivera e-postnotifikationer
Växla på E-postnotifikationer för att börja ta emot aviseringar om problem med webhook-leveranser.
3
Konfigurera e-postadress
Ange e-postadressen där du vill ta emot webhook-aviseringar. Vi skickar notifikationer till denna adress när vissa händelser inträffar med din webhook-konfiguration, såsom leveransproblem som kan påverka dina integrationer.
Aktivera e-postaviseringar för att fånga problem med webhook-leveranser tidigt och upprätthålla pålitliga integrationer. Du kommer att meddelas när leveranser misslyckas eller din endpoint blir oresponsiv.
Redo att distribuera din webhook-hanterare till produktion? Vi tillhandahåller plattformsspecifika guider för att hjälpa dig att distribuera webhooks till populära molnleverantörer med bästa praxis för varje plattform.