Skip to main content

Einführung

Verbinde Dodo Payments mit GoHighLevel (GHL), um über deine GHL-Funnels, Websites, E-Mails und SMS zu verkaufen und Bestellungen mit der GHL-Automatisierung abzuwickeln. GHL ist eine CRM- und Marketingplattform mit Funnels, Websites, E-Mail und SMS sowie Automatisierung (Workflows). GHL führt Dodo Payments nicht als integrierten Zahlungsdienstleister auf, daher verbindest du beide Systeme auf eine von drei Arten. Wähle eine Option danach aus, wie integriert der Checkout sein soll und wie viel Code du schreiben kannst. Jeder Ansatz wickelt die Erfüllung auf dieselbe Weise ab: Dodo Payments sendet Webhook-Ereignisse an einen GHL-Workflow für Inbound Webhook, der den Kontakt taggt, Zugriff gewährt und Bestätigungen versendet.

Wähle deinen Ansatz

Die drei Ansätze unterscheiden sich hinsichtlich des benötigten Codes und des Ortes, an dem der Kunde bezahlt:
Wenn du neu bei Dodo Payments bist, beginne mit Ansatz A (Payment Links). Dafür ist kein Code erforderlich, und der Ansatz funktioniert für jeden GHL-Nutzer. Für die Ansätze B und C ist ein Backend erforderlich, das Checkout-Sitzungen erstellt. Sie eignen sich daher für Teams, die mit Code vertraut sind.

Voraussetzungen

Bevor du beginnst, benötigst du:
  • Ein Dodo Payments-Konto mit mindestens einem Produkt.
  • Ein GoHighLevel-Konto mit einem Funnel, einer Website oder einem Workflow.
  • Zugriff auf Developer → Webhooks im Dodo Payments-Dashboard sowie auf Developer → API Keys, falls du einen API-Schlüssel benötigst.
  • Für die Ansätze B und C: ein kleines Backend oder einen serverlosen Endpunkt, der Checkout-Sitzungen erstellt.
GHL benötigt eine verbundene Domain, um einen Funnel zu veröffentlichen. Verwende während der Erstellung die Preview des Funnels zum Testen. Individuelles JavaScript (Ansätze B und C) wird im Allgemeinen nur auf der veröffentlichten Seite unter einer echten Domain ausgeführt, nicht in der Preview.

Erfüllung mit Webhooks (alle Ansätze)

Der Webhook-Workflow ist die Automatisierungsebene. Richte ihn einmal ein, und er funktioniert mit jedem Checkout-Ansatz.
1

Create the Workflow

Öffne in deinem GHL-Unterkonto im linken Menü Automation. Es wird auf der Registerkarte Workflows geöffnet. Klicke auf Create workflow und wähle anschließend Start from Scratch.
2

Add the Inbound Webhook Trigger

Klicke im Builder auf Add new trigger. Suche im Bereich Add trigger nach webhook und wähle Inbound webhook aus, das unter Triggers → Events aufgeführt ist. Kopiere die generierte Webhook URL.
3

Register the Webhook in Dodo Payments

Gehe im Dodo Payments-Dashboard zu Developer → Webhooks und klicke auf Add endpoint. Füge die GHL-Inbound-Webhook-URL in Endpoint URL ein und klicke auf Create endpoint. Übermittle GHL anschließend eine Beispiel-Payload, aus der Felder wie Kunden-E-Mail, Produkt, Betrag und Status zugeordnet werden können. Führe entweder einen Testkauf durch oder öffne die Registerkarte Testing des Endpunkts, wähle einen Ereignistyp aus und klicke auf Send example.
4

Add Fulfillment Actions

Füge im GHL-Workflow Aktionen für das Ereignis hinzu, etwa find/create contact by email, add a tag, grant course/membership access und send a confirmation email. Publish den Workflow anschließend.
Dodo Payments verarbeitet die Zahlungen, daher erscheinen sie nicht auf der GHL-Registerkarte Payments. Erfasse sie in GHL mit dem oben beschriebenen Webhook-Workflow. Gewähre den Zugriff über den Webhook, nicht über die Browser-Weiterleitung, da ein Kunde die Registerkarte schließen kann, bevor die Weiterleitung abgeschlossen ist.
Füge einen Dodo Payments-Payment-Link zu einer beliebigen GHL-Schaltfläche, einem Funnel-Call-to-Action, einer Schaltfläche auf einer Bestellseite, einer E-Mail oder einer SMS hinzu. Kunden bezahlen im gehosteten Checkout von Dodo Payments. Eine Übersicht der unterstützten Checkout-Funktionen findest du unter Checkout Features.
1

Create a Product and Copy Its Payment Link

Gehe im Dodo Payments-Dashboard zu Products und klicke auf Add Product. Lege name und price fest, wähle one-time oder subscription aus und speichere das Produkt. Klicke in der Zeile des Produkts auf Share und anschließend auf Copy payment link. Der Link hat das Format https://checkout.dodopayments.com/buy/{product_id}.
2

Add the Link to Your GHL Button

Bearbeite deinen Funnel oder deine Website-Seite und wähle die Buy / Checkout button aus. Lege als Aktion Open URL / Website fest und füge deinen Payment-Link ein.
3

Set a Success Page (Optional)

Damit Kunden nach der Zahlung zu deinem Funnel zurückkehren, trage die GHL-Dankeseite im Produkt unter Share in Redirect URL ein, bevor du den Link kopierst. Der Link enthält sie anschließend als Parameter redirect_url.
Query-Parameter von Payment-Links können Kundendaten vorausfüllen und sperren oder Tracking hinzufügen. Übergebe beispielsweise eine Funnel- oder Angebots-ID als metadata_*-Parameter und lies sie aus dem Webhook wieder aus. Unter Static Payment Links findest du alle Parameter.

Ansatz B: Overlay Checkout (individueller Code)

Ansatz B öffnet den Dodo Payments-Checkout als Modal-Overlay auf deiner GHL-Seite und verwendet dafür das Checkout SDK von einem CDN. Dafür ist ein Backend erforderlich, das eine Checkout-Sitzung erstellt und checkoutUrl zurückgibt.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Dieser Schritt ist erforderlich. Das SDK benötigt eine URL für eine Checkout-Sitzung, und zum Erstellen einer Sitzung ist dein geheimer API-Schlüssel erforderlich. GHL hostet nur Seiten und kann diesen serverseitigen Aufruf nicht für dich ausführen. Rufe die Create Checkout Session API niemals im Browser auf, da dadurch dein geheimer Schlüssel im Quelltext der Seite offengelegt wird. Overlay- und Inline-Checkout funktionieren daher nicht allein mit GHL: Du benötigst ein von dir kontrolliertes Backend, das die Sitzung erstellt und nur die URL zurückgibt.Jedes kleine Backend ist geeignet: eine serverlose Funktion (Cloudflare Workers, Vercel Functions, AWS Lambda, Supabase Edge Functions und ähnliche) oder ein Endpunkt auf einem bereits von dir betriebenen Server. Die Logik ist auf jeder Plattform gleich: Empfange die Anfrage, rufe die Dodo Payments API mit deinem geheimen Schlüssel auf und gib checkout_url zurück.Beispielhafte Handler-Logik, die du an deine Plattform anpassen kannst:
Speichere deinen API-Schlüssel als Secret in der Umgebungsvariable DODO_PAYMENTS_API_KEY auf der Plattform, auf der du bereitstellst, und committe ihn niemals in den Code. Erlaube Anfragen von deiner GHL-Domain (CORS) und stelle den Endpunkt unter einer von dir kontrollierten Domain bereit, zum Beispiel https://api.example.com/create-checkout. Wenn du in den Live-Modus wechselst, ändere die URL zu https://live.dodopayments.com/checkouts.
2

Add a Custom Code Element in the GHL Page Builder

Öffne deinen Funnel-Schritt oder deine Website-Seite im GHL-Seiten-Builder und gehe anschließend wie folgt vor:
  1. Klicke oben links im Builder auf das +-Symbol, um Quick Add zu öffnen.
  2. Wähle Elements aus der Kategorienliste auf der linken Seite aus.
  3. Suche Custom Code (wird auch als HTML angezeigt) und ziehe es auf die Seite.
  4. Füge den folgenden Code in den Code-Editor des Elements ein und speichere ihn.
3

Publish and Test on Your Domain

Individuelles JavaScript wird auf der veröffentlichten Seite unter deiner verbundenen Domain ausgeführt und möglicherweise nicht in der Preview. Veröffentliche die Seite und klicke anschließend auf Pay Now, um zu bestätigen, dass das Overlay geöffnet wird.

Ansatz C: Inline-Checkout (eingebettet)

Ansatz C bettet das Checkout-Formular in deine GHL-Seite ein, ohne Weiterleitung und ohne Popup. Es verwendet dasselbe SDK mit einem Container-Element, in das der Checkout eingebunden wird. Wie Ansatz B benötigt es ein Backend zum Erstellen der Sitzung.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Dieser Schritt ist erforderlich, ebenso wie beim Overlay-Checkout. Zum Erstellen einer Sitzung ist dein geheimer API-Schlüssel erforderlich, daher muss dies auf einem Server geschehen und kann nicht allein von GHL erledigt werden. Verwende den Backend-Endpunkt aus dem Abschnitt Overlay Checkout weiter oben erneut: eine beliebige kleine serverlose Funktion oder einen von dir kontrollierten Server, der die Create Checkout Session API aufruft und { checkoutUrl } zurückgibt.
2

Add a Container and SDK via Custom Code

Im GHL-Seiten-Builder:
  1. Klicke oben links im Builder auf das +-Symbol, um Quick Add zu öffnen.
  2. Wähle Elements aus der Kategorienliste auf der linken Seite aus.
  3. Suche Custom Code (wird auch als HTML angezeigt) und ziehe es an die Stelle auf der Seite, an der das Checkout-Formular erscheinen soll.
  4. Füge den folgenden Code in den Code-Editor des Elements ein und speichere ihn.
3

Verify Your Domain for Wallets (Apple Pay)

Um Apple Pay im Inline-Checkout anzubieten, verifizieren Sie Ihre Domain. Gehen Sie im Dodo Payments-Dashboard zu Settings → Payment Methods und klicken Sie in der Zeile Apple Pay auf Manage domains. Laden Sie die Domain-Association-Datei herunter, hosten Sie sie auf Ihrer Domain und registrieren Sie die Domain. Apple Pay ist im Overlay-Checkout (Ansatz B) nicht verfügbar.Eine von GHL gehostete Domain kann die Domain-Association-Datei nicht hosten. Apple Pay im Inline-Checkout erfordert eine Domain, die Sie kontrollieren und die /.well-known/apple-developer-merchantid-domain-association bereitstellen kann. Verwenden Sie auf von GHL gehosteten Seiten den gehosteten Checkout aus Payment Links (Ansatz A) oder verzichten Sie auf Apple Pay.
Der Inline-Checkout ist die aufwendigste Option in GHL. Er erfordert benutzerdefinierten Code, ein Backend, eine veröffentlichte Seite auf einer echten Domain und für Apple Pay eine Domain-Verifizierung. Wenn Sie kein vollständig eingebettetes Formular benötigen, verwenden Sie stattdessen Ansatz A oder B.

Zu verarbeitende Events

Abonnieren Sie den GHL-Endpunkt für die Events, auf die Ihr Workflow reagiert. Die Tabelle schlägt für jedes Event eine GHL-Aktion vor: Zahlungs- und Abonnement-Events enthalten die E-Mail-Adresse des Kunden in data.customer.email. Verwenden Sie die GHL-Aktion find/create contact by email, um die Zahlung dem richtigen Kontakt zuzuordnen. Eine Übersicht über alle Events finden Sie im Webhook Event Guide.

Testen und Live-Schaltung

1

Test in Test Mode

Lassen Sie den Schalter Live Mode in der Dodo Payments-Seitenleiste deaktiviert, damit Sie im Testmodus arbeiten. Führen Sie mit der Testkarte 4242 4242 4242 4242 (Ablaufdatum 06/32, CVV 123) einen Kauf durch und bestätigen Sie, dass der GHL-Workflow ausgeführt und das Tag oder der Zugriff angewendet wird.
2

Go Live

Aktivieren Sie den Schalter Live Mode und fügen Sie die GHL Inbound Webhook URL als Endpunkt im Live-Modus hinzu. Welche weiteren Änderungen erforderlich sind, hängt von Ihrem Ansatz ab:
  • Payment Links (A): Ersetzen Sie den Link durch den Live-Payment-Link des Produkts.
  • Overlay-Checkout (B): Richten Sie Ihr Backend mit Ihrem Live-API-Key auf https://live.dodopayments.com/checkouts und setzen Sie mode im Aufruf Initialize des SDK auf "live".
  • Inline-Checkout (C): Nehmen Sie dieselben Änderungen wie beim Overlay-Checkout vor, da derselbe Backend-Endpunkt und dieselbe SDK-Initialisierung verwendet werden.
Führen Sie anschließend einen echten Kauf vollständig von Anfang bis Ende durch, um die Einrichtung zu bestätigen.

Tipps

Betrachten Sie den Webhook als maßgebliche Quelle für die Gewährung von Zugriff. Reagieren Sie auf payment.succeeded oder subscription.active, nicht auf die Browser-Weiterleitung.
Ein GHL Inbound Webhook kann den webhook-signature-Header nicht verifizieren. Damit nur echte Dodo Payments-Events die Bereitstellung in GHL auslösen, richten Sie den Dodo Payments-Webhook-Endpunkt auf Ihr eigenes Backend, verifizieren Sie dort jedes Event (Webhooks) und leiten Sie es anschließend an die GHL Inbound Webhook URL weiter.

Fehlerbehebung

Prüfen Sie, ob der Dodo Payments-Webhook-Endpunkt auf die richtige GHL Inbound Webhook URL verweist, der Workflow veröffentlicht ist und der Trigger eine Beispiel-Payload erfasst hat, damit das Feld-Mapping vorhanden ist.
Benutzerdefiniertes JavaScript wird normalerweise nur auf der veröffentlichten Seite auf einer echten Domain ausgeführt, nicht in der Vorschau. Bestätigen Sie, dass die Seite veröffentlicht ist, das SDK <script> geladen wurde und checkoutUrl eine gültige Session-URL aus Ihrem Backend ist.
Prüfen Sie, ob Ihr Workflow find/create contact by email verwendet und das E-Mail-Feld aus der Webhook-Payload zugeordnet ist.
Das ist erwartungsgemäß. Dodo Payments verarbeitet die Zahlungen. Erfassen Sie sie daher über den Webhook-Workflow in GHL.
Zuletzt geändert am 28. September 2026