Zum Hauptinhalt springen

GitHub Repository

Vollständiger Quellcode und Einrichtungshandbuch

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 deine Verbindungszeichenfolge von Neon → Connection Details

4. Anfangsgeheimnisse konfigurieren

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

5. wrangler.toml aktualisieren

Bearbeite wrangler.toml und setze deinen Worker-Namen:

6. Bereitstellen

7. Holen Sie sich Ihre Webhook-URL

Ihre Webhook-URL ist:

8. Webhook im DodoPayments-Dashboard registrieren

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

9. 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 - Verwendung der dodopayments-Bibliothek
✅ Idempotenz - Verhindert doppelte Verarbeitung mit Webhook-IDs
✅ Ereignisprotokollierung - Vollständige Prüfnachweis in webhook_events Tabelle
✅ Fehlerbehandlung - Protokolliert und erneut versuchbar
Hinweis: Diese Implementierung zeigt die Verarbeitung von drei Kern-Abonnement-Ereignissen (subscription.active, subscription.cancelled, subscription.renewed) mit minimalen Feldern. Du kannst sie einfach erweitern, um weitere 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. Prüft die Signatur - Stellt sicher, dass die Anfrage von DodoPayments stammt, mithilfe von HMAC-SHA256
  2. Überprüft auf Duplikate - Verwendet die Webhook-ID, um die Verarbeitung desselben Ereignisses zweimal zu verhindern
  3. Protokolliert das Ereignis - Speichert den rohen Webhook in der webhook_events Tabelle für den Prüfnachweis
  4. Verarbeitet das Ereignis - Erstellt oder aktualisiert Kunden und Abonnements
  5. Behandelt Fehler - Protokolliert Ausfälle und markiert das Ereignis als nicht verarbeitet für einen erneuten Versuch

Testen

Lokale Entwicklung:
Konfigurieren im DodoPayments-Dashboard:
  1. Gehen Sie zu Entwicklern → Webhooks
  2. Fügen Sie einen Endpunkt mit Ihrer Worker-URL hinzu
  3. Aktivieren Sie: subscription.active, subscription.cancelled, subscription.renewed

Häufige Probleme

Ressourcen

Zuletzt geändert am 22. Mai 2026