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 → Anslutningsuppgifter

4. Konfigurera initiala hemligheter

Obs: Vi kommer att ställa in DODO_PAYMENTS_WEBHOOK_KEY efter driftsättning när du har din webhook-URL.

5. Uppdatera wrangler.toml

Redigera wrangler.toml och ange ditt worker-namn:

6. Distribuera

7. Hämta din webhook-URL

Din webhook-URL är:

8. Registrera Webhook i DodoPayments Dashboard

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

9. Ställ in Webhook-nyckel och distribuera på nytt

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

Signaturverifiering – Använder dodopayments-biblioteket
Idempotens – Förhindrar dubbel bearbetning med webhook-ID:n
Händelseloggar – Fullständig revisionsspår i webhook_events-tabellen
Felhantering – Loggas och kan försöka igen
Obs: Denna implementation visar hantering av tre centrala prenumerationshändelser (subscription.active, subscription.cancelled, subscription.renewed) med minimala fält. Du kan enkelt utöka den för att stödja ytterligare händelsetyper och fält baserat på dina krav.

Konfigurationsfiler

Databasstruktur

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 förfrågan kommer från DodoPayments med HMAC-SHA256
  2. Kontrollerar dubbletter – Använder webhook-ID för att förhindra bearbetning av samma händelse två gånger
  3. Loggar händelsen – Sparar rå webhook i webhook_events-tabellen för revisionsspår
  4. Bearbetar händelsen – Skapar eller uppdaterar kunder och prenumerationer
  5. Hanterar fel – Loggar misslyckanden och markerar händelsen som obearbetad för upprepning

Testning

Lokal utveckling:
Konfigurera i DodoPayments Dashboard:
  1. Gå till Utvecklare → Webhooks
  2. Lägg till endpoint med din Worker-URL
  3. Aktivera: subscription.active, subscription.cancelled, subscription.renewed

Vanliga problem

Resurser

Senast ändrad 22 maj 2026