Skip to main content

GitHub Repository

Komplett källkod och installationsguide

Snabb installation

1. Förutsättningar

Du behöver:

2. Installera beroenden

3. Databasinställningar

  1. Registrera dig på 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. Distribuera

6. Hämta din webhook-URL

Din webhook-URL är:

7. Registrera webhook i DodoPayments Dashboard

  1. Gå till Developer → Webhooks i Dodo Payments-dashboarden.
  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. Ställ in webhook-nyckel och distribuera på nytt

Vad det gör

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

Nyckelfunktioner

  • Signaturverifiering — Använder Dodo Payments SDK för att verifiera webhookens äkthet
  • Idempotency — 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 för att stödja ytterligare händelsetyper och fält utifrån dina behov.

Konfigurationsfiler

Databasstruktur

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 idempotency

Implementeringskod

Hur det fungerar

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

Testning

Lokal utveckling:
Visa loggar i Vercel-dashboarden:
  1. Välj ditt projekt.
  2. Gå till Deployments → den senaste distributionen.
  3. Klicka på Functions → Logs.
Konfigurera i Dodo Payments-dashboarden:
  1. Gå till Developer → Webhooks.
  2. Lägg till en endpoint med URL:en till dina Vercel Functions.
  3. Välj subscription.active, subscription.cancelled och subscription.renewed.

Vanliga problem

Resurser

Senast ändrad 26 september 2026