GitHub Repository
Minimaler Go- + Dodo Payments-Boilerplate
Übersicht
Das Go-Boilerplate bietet einen produktionsbereiten Ausgangspunkt für die Integration von Dodo Payments in Ihr Go-Backend. Diese Vorlage umfasst die Handhabung von Checkout-Sitzungen, die Überprüfung von Webhooks, die Integration des Kundenportals und folgt den besten Praktiken von Go, um Ihnen zu helfen, schnell Zahlungen zu akzeptieren.Dieses Boilerplate verwendet Go 1.21+ mit Clean-Architecture-Mustern (
cmd, internal, templates), HTML-Vorlagen und das dodopayments-go SDK für eine nahtlose API-Integration.Funktionen
- Quick Setup – Schnellstart in unter 5 Minuten
- Payment Integration – Vorgefertigter Checkout-Flow mit dem
dodopayments-goSDK - Modern UI – Saubere, dunkel gestaltete Preisübersichtsseite mit HTML-Vorlagen
- Webhook Handling – Zahlungsereignisse sicher prüfen und verarbeiten
- Customer Portal – Selbstständige Abo-Verwaltung
- Go Best Practices – Saubere Architektur mit
cmd,internalundtemplates - Pre-filled Checkout – Zeigt, wie Kundendaten zur Verbesserung der UX übergeben werden
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:- Go 1.21+
- Dodo Payments-Konto (um API- und Webhook-Keys vom Dashboard abzurufen)
Schnellstart
Get API Credentials
Melden Sie sich bei Dodo Payments an und holen Sie sich Ihre Zugangsdaten aus dem Dashboard:
- API-Schlüssel: Dashboard → Entwickler → API-Schlüssel
- Webhook-Schlüssel: Dashboard → Entwickler → Webhooks
Configure Environment Variables
Erstellen Sie eine Aktualisieren Sie die Werte mit Ihren Dodo Payments-Anmeldeinformationen:
.env-Datei im Stammverzeichnis:.env
Add Your Products
Aktualisieren Sie
internal/lib/products.go mit Ihren tatsächlichen Produkt-IDs von Dodo Payments:Run the Development Server
Sie sollten eine dunkel gestaltete Preisübersichtsseite sehen, auf der Ihre Produkte zum Kauf bereitstehen.
Projektstruktur
API-Endpunkte
Das Boilerplate umfasst die folgenden vorkonfigurierten Endpunkte:| Endpunkt | Methode | Beschreibung |
|---|---|---|
/ | GET | Preisübersichtsseite mit Produktauflistung |
/api/checkout | POST | Erstellen Sie eine neue Checkout-Sitzung |
/api/webhook | POST | Verarbeiten Sie Dodo Payments Webhooks |
/api/customer-portal | POST | Generieren Sie eine Kundenportal-URL |
Anpassung
Produktinformationen aktualisieren
Bearbeiten Sieinternal/lib/products.go, um folgende Punkte anzupassen:
- Produkt-IDs (aus Ihrem Dodo-Dashboard)
- Preise
- Funktionen
- Beschreibungen
Kundendaten vorab ausfüllen
Intemplates/index.html ersetzen Sie die fest kodierten Kundendaten durch Ihre tatsächlichen Benutzerdaten:
Webhook-Ereignisse
Das Boilerplate zeigt die Verarbeitung von Webhook-Ereignissen ininternal/api/webhook.go. Unterstützte Ereignisse sind:
| Ereignis | Beschreibung |
|---|---|
subscription.active | Wird ausgelöst, wenn ein Abonnement aktiv wird |
payment.succeeded | Wird ausgelöst, wenn eine Zahlung erfolgreich ist |
- Benutzerberechtigungen in Ihrer Datenbank zu aktualisieren
- Bestätigungs-E-Mails zu senden
- Zugriff auf digitale Produkte bereitzustellen
- Analysen und Metriken zu verfolgen
Webhooks lokal testen
Für die lokale Entwicklung verwenden Sie Tools wie ngrok, um Ihren lokalen Server freizugeben:Bereitstellung
Für die Produktion bauen
Auf Vercel bereitstellen
[Docker
Erstellen Sie eineDockerfile:
Produktionsüberlegungen
Fehlersuche
Build errors or missing dependencies
Build errors or missing dependencies
Stellen Sie sicher, dass die Go-Module ordnungsgemäß heruntergeladen sind:
Checkout session creation fails
Checkout session creation fails
Häufige Ursachen:
- Ungültige Produkt-ID – prüfen Sie, ob sie in Ihrem Dodo-Dashboard vorhanden ist
- Falscher API-Schlüssel oder Umgebungswert in
.env - Überprüfen Sie die Serverprotokolle auf detaillierte Fehlermeldungen
Webhooks not receiving events
Webhooks not receiving events
Für lokale Tests verwenden Sie ngrok, um Ihren Server erreichbar zu machen:Aktualisieren Sie die Webhook-URL in Ihrem Dodo-Dashboard auf die ngrok-URL. Stellen Sie sicher, dass Sie Ihre
.env-Datei mit dem richtigen Webhook-Verifizierungsschlüssel aktualisieren.Templates not loading
Templates not loading
Stellen Sie sicher, dass Sie den Server vom Projektstammverzeichnis aus starten oder dass der Vorlagenpfad in Ihrem Code korrekt konfiguriert ist.
Erfahren Sie mehr
Go SDK
Komplette Go SDK-Dokumentation
Webhooks Documentation
Erfahren Sie alles über Webhook-Ereignisse und bewährte Verfahren
Checkout Sessions
Ein tiefer Einblick in die Konfiguration der Checkout-Sitzung
API Reference
Komplette Dodo Payments API-Dokumentation
Unterstützung
Brauchen Sie Hilfe mit dem Boilerplate?- Treten Sie unserer Discord-Community für Fragen und Diskussionen bei
- Überprüfen Sie das GitHub-Repository auf Probleme und Updates
- Kontaktieren Sie unser Support-Team für Unterstützung