GitHub Repository
Komplett källkod och installationsguide
Snabb installation
1. Förutsättningar
Du behöver:- Ett Netlify-konto
- Ett Neon-databaskonto
- En Dodo Payments API-nyckel från Developer → API Keys i instrumentpanelen
2. Installera beroenden
3. Konfigurera databasen
- Registrera dig för Neon och skapa ett projekt.
- Öppna SQL Editor.
- Kopiera hela innehållet i
schema.sqloch kör det. - Kopiera din anslutningssträng från Connection Details.
4. Ange initiala miljövariabler
Du anger
DODO_PAYMENTS_WEBHOOK_KEY efter distributionen, när du har din webhook-URL.5. Initiera och distribuera
6. Hämta din webhook-URL
Din webhook-URL är:7. Registrera webhooken i DodoPayments-instrumentpanelen
- Gå till Developer → Webhooks i Dodo Payments-instrumentpanelen.
- Klicka på Add endpoint.
- Ange din webhook-URL.
- Välj dessa händelser:
subscription.active,subscription.cancelled,subscription.renewed. - Klicka på Create endpoint och kopiera signeringshemligheten.
8. Ange webhook-nyckeln och distribuera igen
Så fungerar det
Webhook-hanteraren bearbetar prenumerationshändelser och lagrar dem i PostgreSQL:subscription.active— Skapar eller uppdaterar kund- och prenumerationspostersubscription.cancelled— Markerar prenumerationen som avslutadsubscription.renewed— Uppdaterar nästa faktureringsdatum
Viktiga funktioner
- Signaturverifiering — Använder Dodo Payments SDK för att verifiera webhookens äkthet
- Idempotens — Använder
webhook-id-headern för att förhindra duplicerad bearbetning - Händelseloggning — Lagrar alla händelser i tabellen
webhook_eventsför granskningsspår - Felhantering — Loggar fel och markerar händelser för nytt försök
Det här exemplet hanterar tre centrala prenumerationshändelser med ett minimalt antal fält. Du kan utöka det med stöd för ytterligare händelsetyper och fält utifrån dina behov.
Konfigurationsfiler
Databasschema
customers— E-postadress, namn och Dodo Payments-kund-IDsubscriptions— Status, belopp, nästa faktureringsdatum, kopplad till kunderwebhook_events— Händelselogg med webhook-ID för idempotens
Implementeringskod
Så fungerar det
Webhook-hanteraren:- Verifierar signaturen — Använder Dodo Payments SDK för att verifiera begäran med HMAC-SHA256
- Kontrollerar dubbletter — Använder
webhook-id-headern för att förhindra att samma händelse bearbetas två gånger - Loggar händelsen — Lagrar den råa webhooken i tabellen
webhook_eventsför granskningsspår - Bearbetar händelsen — Skapar eller uppdaterar kunder och prenumerationer i Neon
- Hanterar fel — Loggar fel och markerar händelser som obearbetade för nytt försök
Testning
Lokal utveckling:- Välj din webbplats och gå till Functions.
- Klicka på funktionen
webhook. - Visa loggar i realtid och anropshistorik.
- Gå till Developer → Webhooks.
- Lägg till en endpoint med din Netlify Functions-URL.
- Välj
subscription.active,subscription.cancelledochsubscription.renewed.