Zum Hauptinhalt springen

GitHub Repository

Vollständiger Quellcode und Installationsanleitung
Sehen Sie sich das komplette Starter-Kit für Supabase an
Ein minimales Subscription-Starter-Kit, das mit Next.js, Supabase und Dodo Payments erstellt wurde. Dieses Boilerplate hilft Ihnen, schnell ein abonnementbasiertes SaaS mit Authentifizierung, Zahlungen und Webhooks einzurichten.
Dodo Payments Supabase Subscription Starter

Schnelle Einrichtung

1. Voraussetzungen

2. Authentifizieren & Verknüpfen

Hole dir deinen Projekt-Ref aus dem Supabase Dashboard → Projekteinstellungen

3. Datenbankeinrichtung

  1. Gehen Sie zu Ihrem Supabase Dashboard
  2. Öffnen Sie den SQL-Editor
  3. Erstellen Sie eine neue Abfrage
  4. Kopieren und fügen Sie den gesamten Inhalt von schema.sql ein
  5. Führen Sie die Abfrage aus

4. Setze Anfangsgeheimnisse

Supabase stellt SUPABASE_URL und SUPABASE_SERVICE_ROLE_KEY zur Laufzeit automatisch bereit.
Hinweis: Wir setzen DODO_PAYMENTS_WEBHOOK_KEY nach der Bereitstellung, sobald Sie Ihre Webhook-URL haben.

5. Bereitstellen

Die Funktion ist bereits in functions/webhook/index.ts eingerichtet – einfach bereitstellen:

6. Hole dir deine Webhook-URL

Deine Webhook-URL ist:

7. Registriere Webhook im DodoPayments Dashboard

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

8. Setze Webhook-Schlüssel & Neu bereitstellen

Was es tut

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

Hauptmerkmale

Signaturverifikation – Verwendet die dodopayments-Bibliothek
Idempotenz – Verhindert doppelte Verarbeitung mit Webhook-IDs
Ereignisprotokollierung – Vollständige Audit-Trail in der webhook_events-Tabelle
Fehlerbehandlung – Protokolliert und erneut versuchbar
Hinweis: Diese Implementierung demonstriert die Verarbeitung von drei zentralen Subscription-Ereignissen (subscription.active, subscription.cancelled, subscription.renewed) mit minimalen Feldern. Sie können sie leicht erweitern, um zusätzliche Ereignistypen und Felder entsprechend 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

Wie es funktioniert

Die auf Deno basierende Edge Function:
  1. Überprüft die Signatur – Verwendet die dodopayments-Bibliothek für HMAC-SHA256-Verifikation
  2. Prüft Idempotenz – Sucht nach der Webhook-ID, um doppelte Verarbeitung zu verhindern
  3. Protokolliert das Ereignis – Speichert rohe Webhook-Daten in der webhook_events-Tabelle
  4. Verarbeitet Aktualisierungen – Erstellt oder aktualisiert Kunden und Abonnements über den Supabase-Client
  5. Handhabt Fehler – Protokolliert Ausfälle und markiert das Ereignis zur Wiederholung

Testen

Lokale Entwicklung:
Das --no-verify-jwt-Flag ist erforderlich, da Webhooks keine JWT-Tokens enthalten. Die Sicherheit wird durch die Überprüfung der Webhook-Signatur bereitgestellt.
Protokolle anzeigen:
Oder im Supabase Dashboard → Edge Functions → webhook → Protokoll-Tab Konfigurieren im DodoPayments Dashboard:
  1. Gehe zu Entwickler → Webhooks
  2. Füge den Endpunkt mit deiner Supabase-URL hinzu
  3. Aktiviere: subscription.active, subscription.cancelled, subscription.renewed

Häufige Probleme

Ressourcen

Zuletzt geändert am 22. Mai 2026