Hoppa till huvudinnehåll

GitHub Repository

Komplett källkod och installationsguide

Snabb installation

1. Förutsättningar

2. Installera beroenden

3. Databasinställning

  1. Registrera dig på Neon
  2. Skapa ett nytt projekt
  3. Öppna SQL-redigeraren
  4. Kopiera och klistra in innehållet från schema.sql
  5. Kör frågan
  6. Hämta din anslutningssträng från Neon → Connection Details

4. Ställ in initiala miljövariabler

Note: Vi kommer att ställa in DODO_PAYMENTS_WEBHOOK_KEY efter distribution när du har din webhook-URL.

5. Initiera och distribuera

6. Hämta din webhook-URL

Din webhook-URL är:

7. Registrera webhook i DodoPayments Dashboard

  1. Gå till DodoPayments Dashboard → Developer → Webhooks
  2. Skapa en ny webhook-slutpunkt
  3. Konfigurera din webhook-URL som slutpunkt
  4. Aktivera dessa prenumerationsevent:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Kopiera Signing Secret

8. Ställ in webhook-nyckel och distribuera igen

Vad det gör

Behandlar prenumerationsevenemang och lagrar dem i PostgreSQL:
  • subscription.active - Skapar/uppdaterar kund- och prenumerationsposter
  • subscription.cancelled - Markerar prenumerationen som avbruten
  • subscription.renewed - Uppdaterar nästa faktureringsdatum

Nyckelfunktioner

Signature verification – Använder dodopayments-biblioteket
Idempotency – Förhindrar dubbelbehandling med webhook-ID:n
Event logging – Fullständig revisionsspår i webhook_events tabell
Error handling – Loggas och kan försöka igen
Note: Denna implementation visar hur man hanterar tre centrala prenumerationsevent (subscription.active, subscription.cancelled, subscription.renewed) med minimala fält. Du kan enkelt utöka den för att stödja ytterligare eventtyper och fält baserat på dina behov.

Konfigurationsfiler

Databasschema

Skapade tabeller:
  • customers - E-post, namn, dodo_customer_id
  • subscriptions - Status, belopp, next_billing_date, kopplad till kunder
  • webhook_events - Händelselogg med webhook_id för idempotens

Implementeringskod

Hur det fungerar

Webhook-hanteraren:
  1. Verifierar signaturen - Säkerställer att begäran kommer från DodoPayments med HMAC-SHA256
  2. Kontrollerar dubbletter - Använder webhook-ID för att förhindra att samma event behandlas två gånger
  3. Loggar eventet - Sparar den råa webhooken i webhook_events tabell för revisionsspår
  4. Bearbetar eventet - Skapar eller uppdaterar kunder och prenumerationer i Neon
  5. Hanterar fel - Loggar misslyckanden och markerar eventet som obearbetat för omförsök

Testning

Lokal utveckling:
Visa loggar i Netlify Dashboard:
  1. Välj din webbplats → Functions-fliken
  2. Klicka på webhook funktionen
  3. Visa loggar i realtid och anropshistorik
Konfigurera i DodoPayments Dashboard:
  1. Gå till Utvecklare → Webhooks
  2. Lägg till endpoint med din Netlify Functions-URL
  3. Aktivera: subscription.active, subscription.cancelled, subscription.renewed

Vanliga problem

Resurser

Senast ändrad 22 maj 2026