Skip to main content

GitHub Repository

Komplett källkod och installationsguide

Snabb installation

1. Förutsättningar

Du behöver:

2. Installera beroenden

3. Konfigurera databasen

  1. Registrera dig för Neon och skapa ett projekt.
  2. Öppna SQL Editor.
  3. Kopiera hela innehållet i schema.sql och kör det.
  4. 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

  1. Gå till Developer → Webhooks i Dodo Payments-instrumentpanelen.
  2. Klicka på Add endpoint.
  3. Ange din webhook-URL.
  4. Välj dessa händelser: subscription.active, subscription.cancelled, subscription.renewed.
  5. 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 prenumerationsposter
  • subscription.cancelled — Markerar prenumerationen som avslutad
  • subscription.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_events fö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

Skapade tabeller:
  • customers — E-postadress, namn och Dodo Payments-kund-ID
  • subscriptions — Status, belopp, nästa faktureringsdatum, kopplad till kunder
  • webhook_events — Händelselogg med webhook-ID för idempotens

Implementeringskod

Så fungerar det

Webhook-hanteraren:
  1. Verifierar signaturen — Använder Dodo Payments SDK för att verifiera begäran med HMAC-SHA256
  2. Kontrollerar dubbletter — Använder webhook-id-headern för att förhindra att samma händelse bearbetas två gånger
  3. Loggar händelsen — Lagrar den råa webhooken i tabellen webhook_events för granskningsspår
  4. Bearbetar händelsen — Skapar eller uppdaterar kunder och prenumerationer i Neon
  5. Hanterar fel — Loggar fel och markerar händelser som obearbetade för nytt försök

Testning

Lokal utveckling:
Visa loggar i Netlify-instrumentpanelen:
  1. Välj din webbplats och gå till Functions.
  2. Klicka på funktionen webhook.
  3. Visa loggar i realtid och anropshistorik.
Konfigurera i Dodo Payments-instrumentpanelen:
  1. Gå till Developer → Webhooks.
  2. Lägg till en endpoint med din Netlify Functions-URL.
  3. Välj subscription.active, subscription.cancelled och subscription.renewed.

Vanliga problem

Resurser

Senast ändrad 26 september 2026