Zum Hauptinhalt springen

GitHub Repository

Vollständiger Quellcode und Einrichtungsanleitung

Schnelle Einrichtung

1. Voraussetzungen

2. Abhängigkeiten installieren

3. Datenbankeinrichtung

  1. Melde dich bei Neon an
  2. Erstelle ein neues Projekt
  3. Öffne den SQL-Editor
  4. Kopiere und füge den Inhalt von schema.sql ein
  5. Führe die Abfrage aus
  6. Hole deinen Verbindungsstring von Neon → Connection Details

4. Setzen Sie die anfänglichen Umgebungsvariablen

Hinweis: Wir setzen DODO_PAYMENTS_WEBHOOK_KEY nach der Bereitstellung, sobald du deine Webhook-URL hast.

5. Initialisieren & Bereitstellen

6. Holen Sie sich Ihre Webhook-URL

Ihre Webhook-URL ist:

7. Webhook im DodoPayments Dashboard registrieren

  1. Gehe zum DodoPayments Dashboard → Developer → Webhooks
  2. Erstelle einen neuen Webhook-Endpunkt
  3. Konfiguriere deine Webhook-URL als Endpunkt
  4. Aktiviere diese Abonnementereignisse:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Kopiere das Signing Secret

8. Webhook-Schlüssel festlegen & erneut bereitstellen

Was es tut

Verarbeitet Abonnementereignisse und speichert sie in PostgreSQL:
  • subscription.active - Erstellt/aktualisiert Kunden- und Abonnementdatensätze
  • subscription.cancelled - Markiert das Abonnement als storniert
  • subscription.renewed - Aktualisiert das nächste Abrechnungsdatum

Hauptmerkmale

Signaturprüfung – Mit der dodopayments-Bibliothek
Idempotenz – Verhindert doppelte Verarbeitung durch Webhook-IDs
Ereignisprotokollierung – Vollständige Prüfspur in webhook_events Tabelle
Fehlerbehandlung – Protokolliert und erneut ausführbar
Hinweis: Diese Implementierung zeigt die Handhabung von drei Kern-Abonnementereignissen (subscription.active, subscription.cancelled, subscription.renewed) mit minimalen Feldern. Du kannst sie problemlos erweitern, um zusätzliche Ereignistypen und Felder gemäß deinen Anforderungen zu unterstützen.

Konfigurationsdateien

Datenbankschema

Erstellte Tabellen:
  • customers - E-Mail, Name, dodo_customer_id
  • subscriptions - Status, Betrag, next_billing_date, verknüpft mit Kunden
  • webhook_events - Ereignisprotokoll mit webhook_id für Idempotenz

Implementierungscode

So funktioniert es

Der Webhook-Handler:
  1. Überprüft die Signatur – Stellt sicher, dass die Anfrage von DodoPayments stammt, mithilfe von HMAC-SHA256
  2. Prüft auf Duplikate – Verwendet die Webhook-ID, um zu verhindern, dass dasselbe Ereignis zweimal verarbeitet wird
  3. Protokolliert das Ereignis – Speichert den rohen Webhook in webhook_events Tabelle für die Prüfspur
  4. Verarbeitet das Ereignis – Erstellt oder aktualisiert Kunden und Abonnements in Neon
  5. Behandelt Fehler – Protokolliert Fehler und markiert das Ereignis als nicht verarbeitet zur erneuten Ausführung

Testen

Lokale Entwicklung:
Protokolle im Netlify Dashboard ansehen:
  1. Wähle deine Website aus → Reiter Functions
  2. Klicke auf die webhook Funktion
  3. Sieh dir Echtzeitprotokolle und Aufrufhistorie an
Im DodoPayments Dashboard konfigurieren:
  1. Gehen Sie zu Entwicklern → Webhooks
  2. Fügen Sie den Endpunkt mit Ihrer Netlify Functions-URL hinzu
  3. Aktivieren: subscription.active, subscription.cancelled, subscription.renewed

Häufige Probleme

Ressourcen

Zuletzt geändert am 22. Mai 2026