Skip to main content

GitHub Repository

Vollständiger Quellcode und Einrichtungsanleitung

Schnelle Einrichtung

1. Voraussetzungen

Sie benötigen:

2. Abhängigkeiten installieren

3. Datenbank einrichten

  1. Registrieren Sie sich bei Neon und erstellen Sie ein Projekt.
  2. Öffnen Sie den SQL Editor.
  3. Kopieren Sie den gesamten Inhalt von schema.sql und führen Sie ihn aus.
  4. Kopieren Sie Ihre Verbindungszeichenfolge aus Connection Details.

4. Initiale Environment Variables festlegen

Sie legen DODO_PAYMENTS_WEBHOOK_KEY nach der Bereitstellung fest, sobald Sie Ihre Webhook-URL haben.

5. Initialisieren und bereitstellen

6. Ihre Webhook-URL abrufen

Ihre Webhook-URL lautet:

7. Webhook im DodoPayments-Dashboard registrieren

  1. Gehen Sie im Dodo Payments-Dashboard zu Developer → Webhooks.
  2. Klicken Sie auf Add endpoint.
  3. Geben Sie Ihre Webhook-URL ein.
  4. Wählen Sie diese Ereignisse aus: subscription.active, subscription.cancelled, subscription.renewed.
  5. Klicken Sie auf Create endpoint und kopieren Sie das Signaturgeheimnis.

8. Webhook-Schlüssel festlegen und erneut bereitstellen

Funktionsweise

Der Webhook-Handler verarbeitet Subscription-Ereignisse und speichert sie in PostgreSQL:
  • subscription.active — Erstellt Kunden- und Subscription-Datensätze oder aktualisiert sie
  • subscription.cancelled — Markiert die Subscription als gekündigt
  • subscription.renewed — Aktualisiert das nächste Abrechnungsdatum

Hauptfunktionen

  • Signaturüberprüfung — Verwendet das Dodo Payments SDK, um die Authentizität des Webhooks zu überprüfen
  • Idempotenz — Verwendet den webhook-id-Header, um doppelte Verarbeitung zu verhindern
  • Ereignisprotokollierung — Speichert alle Ereignisse zur Nachvollziehbarkeit in der Tabelle webhook_events
  • Fehlerbehandlung — Protokolliert Fehler und markiert Ereignisse für einen erneuten Versuch
Dieses Beispiel verarbeitet drei zentrale Subscription-Ereignisse mit minimalen Feldern. Sie können es entsprechend Ihren Anforderungen erweitern, um zusätzliche Ereignistypen und Felder zu unterstützen.

Konfigurationsdateien

Datenbankschema

Erstellte Tabellen:
  • customers — E-Mail-Adresse, Name und Dodo Payments-Kunden-ID
  • subscriptions — Status, Betrag, nächstes Abrechnungsdatum, mit Kunden verknüpft
  • webhook_events — Ereignisprotokoll mit Webhook-ID für Idempotenz

Implementierungscode

Funktionsweise

Der Webhook-Handler:
  1. Überprüft die Signatur — Verwendet das Dodo Payments SDK, um die Anfrage mit HMAC-SHA256 zu überprüfen
  2. Prüft auf Duplikate — Verwendet den webhook-id-Header, um die Verarbeitung desselben Ereignisses zweimal zu verhindern
  3. Protokolliert das Ereignis — Speichert den rohen Webhook zur Nachvollziehbarkeit in der Tabelle webhook_events
  4. Verarbeitet das Ereignis — Erstellt Kunden und Subscriptions in Neon oder aktualisiert sie
  5. Behandelt Fehler — Protokolliert Fehler und markiert Ereignisse als nicht verarbeitet, damit sie erneut versucht werden können

Testen

Lokale Entwicklung:
Logs im Netlify-Dashboard anzeigen:
  1. Wählen Sie Ihre Site aus und gehen Sie zu Functions.
  2. Klicken Sie auf die Funktion webhook.
  3. Sehen Sie sich Echtzeit-Logs und den Aufrufverlauf an.
Im Dodo Payments-Dashboard konfigurieren:
  1. Gehen Sie zu Developer → Webhooks.
  2. Fügen Sie einen Endpunkt mit Ihrer Netlify Functions-URL hinzu.
  3. Wählen Sie subscription.active, subscription.cancelled und subscription.renewed aus.

Häufige Probleme

Ressourcen

Zuletzt geändert am 26. September 2026