Zum Hauptinhalt springen

GitHub Repository

Vollständiger Quellcode und Einrichtungsanleitung

Schnelle Einrichtung

1. Voraussetzungen

2. Abhängigkeiten installieren

3. Datenbankeinrichtung

  1. Registrieren Sie sich bei Neon
  2. Erstellen Sie ein neues Projekt
  3. Öffnen Sie den SQL-Editor
  4. Kopieren und fügen Sie den Inhalt von schema.sql ein
  5. Führen Sie die Abfrage aus
  6. Rufen Sie Ihre Verbindungszeichenfolge bei Neon → Connection Details ab

4. Setzen Sie die anfänglichen Umgebungsvariablen

Über Vercel CLI:
Hinweis: Wir setzen DODO_PAYMENTS_WEBHOOK_KEY nach der Bereitstellung, sobald Sie Ihre Webhook-URL haben.

5. Bereitstellen

6. Holen Sie sich Ihre Webhook-URL

Ihre Webhook-URL ist:

7. Webhook im DodoPayments-Dashboard registrieren

  1. Gehen Sie zum DodoPayments Dashboard → Developer → Webhooks
  2. Erstellen Sie einen neuen Webhook-Endpunkt
  3. Konfigurieren Sie Ihre Webhook-URL als Endpunkt
  4. Aktivieren Sie diese Abonnementereignisse:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Kopieren Sie das Signing Secret

8. Webhook-Schlüssel setzen & 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

Signaturüberprüfung - Verwendung der dodopayments-Bibliothek
Idempotenz - Verhindert doppelte Verarbeitung mit Webhook-IDs
Ereignisprotokollierung - Vollständiger Audit-Trail in der Tabelle webhook_events
Fehlerbehandlung - Protokolliert und erneut ausführbar
Hinweis: Diese Implementierung zeigt die Verarbeitung von drei zentralen Abonnementereignissen (subscription.active, subscription.cancelled, subscription.renewed) mit minimalen Feldern. Sie können sie problemlos erweitern, um weitere Ereignistypen und Felder je nach Ihren 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. Deaktiviert die Body-Verarbeitung - Damit auf den Roh-Body zur Signaturprüfung zugegriffen werden kann
  2. Überprüft die Signatur - Stellt sicher, dass die Anfrage von DodoPayments stammt, indem HMAC-SHA256 verwendet wird
  3. Prüft auf Duplikate - Nutzt die Webhook-ID, um die doppelte Verarbeitung desselben Ereignisses zu verhindern
  4. Protokolliert das Ereignis - Speichert den Roh-Webhook in der Tabelle webhook_events für den Audit-Trail
  5. Verarbeitet das Ereignis - Erstellt oder aktualisiert Kunden und Abonnements in Neon
  6. Behandelt Fehler - Protokolliert Fehler und markiert das Ereignis als nicht verarbeitet zur Wiederholung

Testen

Lokale Entwicklung:
Protokolle im Vercel-Dashboard anzeigen:
  1. Wählen Sie Ihr Projekt aus
  2. Gehen Sie zu Bereitstellungen → letzte Bereitstellung
  3. Klicken Sie auf FunktionenProtokolle
Im DodoPayments-Dashboard konfigurieren:
  1. Gehen Sie zu Entwicklern → Webhooks
  2. Fügen Sie den Endpunkt mit Ihrer Vercel Functions-URL hinzu
  3. Aktivieren: subscription.active, subscription.cancelled, subscription.renewed

Häufige Probleme

Ressourcen

Zuletzt geändert am 22. Mai 2026