Skip to main content
Der Inline-Checkout bettet ein sicheres Zahlungsformular direkt in dein Seitenlayout ein. Anders als der Overlay-Checkout, der als Modal geöffnet wird, wird der Inline-Checkout zu einem Teil deiner Seite. Du kontrollierst das Layout und kannst neben dem Checkout-Formular deine eigene Bestellübersicht anzeigen.
Inline-Checkout-Formular, eingebettet in eine Produktseite mit Bestellübersicht

Funktionsweise

Der Inline-Checkout rendert einen sicheren Dodo Payments-Frame in einem Container auf deiner Seite. Der Frame übernimmt die Erfassung von Kundeninformationen und Zahlungsdaten. Deine Seite zeigt Artikel, Summen und weitere Informationen an. Das SDK ermöglicht die Kommunikation zwischen deiner Seite und dem Checkout-Frame. Nach Abschluss des Checkouts erstellt Dodo Payments die Zahlung oder bei einem Abonnementprodukt das Abonnement und sendet einen Webhook, damit du den Zugriff bereitstellen kannst.
Der Inline-Checkout-Frame verarbeitet alle sensiblen Zahlungsinformationen sicher und gewährleistet die PCI-Konformität, ohne dass du eine zusätzliche Zertifizierung benötigst.

Was einen guten Inline-Checkout ausmacht

Kunden müssen wissen, bei wem sie kaufen, was sie kaufen und wie viel sie bezahlen. Deine Implementierung muss Folgendes enthalten:
Beispiel für einen Inline-Checkout mit gekennzeichneten erforderlichen Elementen

Example inline checkout layout showing required elements

  1. Informationen zu wiederkehrenden Zahlungen: Wenn die Zahlung wiederkehrend ist, zeige an, wie oft sie anfällt und welcher Gesamtbetrag bei der Verlängerung zu zahlen ist. Bei einem Testzeitraum muss dessen Dauer angezeigt werden.
  2. Artikelbeschreibungen: Eine Beschreibung dessen, was gekauft wird.
  3. Transaktionssummen: Zwischensumme, Gesamtsteuer und Gesamtsumme einschließlich Währung.
  4. Dodo Payments-Fußzeile: Der vollständige Inline-Checkout-Frame einschließlich der Fußzeile mit Informationen zu Dodo Payments, Verkaufsbedingungen und Datenschutzrichtlinie.
  5. Rückerstattungsrichtlinie: Ein Link zu deiner Rückerstattungsrichtlinie, falls sie von der standardmäßigen Rückerstattungsrichtlinie von Dodo Payments abweicht.
Zeige immer den vollständigen Inline-Checkout-Frame einschließlich der Fußzeile an. Das Entfernen oder Ausblenden rechtlicher Informationen verstößt gegen Compliance-Anforderungen.

Kundenablauf

Der Checkout-Ablauf hängt von der Konfiguration deiner Checkout-Session ab. Je nach Konfiguration sehen Kunden alle Informationen auf einer einzigen Seite oder über mehrere Schritte verteilt.
1

Customer opens checkout

Du öffnest den Inline-Checkout, indem du eine Checkout-URL übergibst. Verwende SDK-Ereignisse wie checkout.breakdown, um Informationen auf der Seite anzuzeigen und zu aktualisieren.Initiale Checkout-Seite mit Artikelliste und Zahlungsformular
2

Customer enters their details

Der Inline-Checkout fordert Kunden zunächst auf, ihre E-Mail-Adresse und ihr Land einzugeben sowie, sofern erforderlich, ihre Postleitzahl anzugeben. In diesem Schritt werden alle erforderlichen Informationen erfasst, um Steuern und verfügbare Zahlungsmethoden zu bestimmen.Du kannst Kundendaten vorausfüllen und gespeicherte Adressen anzeigen, um den Ablauf zu vereinfachen.
3

Customer selects payment method

Nach der Eingabe ihrer Daten werden Kunden die verfügbaren Zahlungsmethoden und das Zahlungsformular angezeigt. Je nach Standort können dazu Kredit- oder Debitkarte, PayPal, Apple Pay, Google Pay und weitere lokale Zahlungsmethoden gehören.Zeige verfügbare gespeicherte Zahlungsmethoden an, um den Checkout zu beschleunigen.Verfügbare Zahlungsmethoden und Formular für Kartendaten
4

Checkout completed

Dodo Payments leitet jede Zahlung an den besten Acquirer für den jeweiligen Verkauf weiter, um die größtmögliche Erfolgswahrscheinlichkeit zu erzielen. Kunden gelangen in einen Erfolgsablauf, den du erstellen kannst.Erfolgsbildschirm mit Bestätigungshäkchen
5

Dodo Payments creates the payment or subscription

Dodo Payments erstellt die Zahlung oder bei einem Abonnementprodukt das Abonnement und sendet einen Webhook, damit du den Zugriff bereitstellen kannst. Die vom Kunden verwendete Zahlungsmethode wird für Verlängerungen oder Änderungen am Abonnement gespeichert.Erstelltes Abonnement mit Webhook-Benachrichtigung

Schnellstart

Installiere das SDK, initialisiere es für den Inline-Modus und öffne den Checkout in einem Container-Element:
Stelle sicher, dass sich auf deiner Seite ein Container-Element mit der entsprechenden id befindet: <div id="dodo-inline-checkout"></div>.

Schrittweise Integration

1

Install the SDK

Installiere das Paket über npm, yarn oder pnpm:
2

Initialize the SDK for Inline Display

Initialisiere das SDK und gib displayType: 'inline' an. Höre auf das Ereignis checkout.breakdown, um deine Benutzeroberfläche mit Steuer- und Gesamtbetragsberechnungen in Echtzeit zu aktualisieren:
3

Create a Container Element

Füge deinem HTML ein Element hinzu, in das der Checkout-Frame eingefügt wird:
4

Open the Checkout

Rufe DodoPayments.Checkout.open() mit der checkoutUrl und der elementId deines Containers auf:
5

Test Your Integration

  1. Starte deinen Entwicklungsserver:
  1. Teste den Checkout-Ablauf:
    • Gib deine E-Mail-Adresse und Adressdaten im Inline-Frame ein
    • Überprüfe, ob deine benutzerdefinierte Bestellübersicht in Echtzeit aktualisiert wird
    • Teste den Zahlungsvorgang mit Testdaten
    • Bestätige, dass Weiterleitungen ordnungsgemäß funktionieren
Wenn du im onEvent-Callback ein Konsolenprotokoll hinzugefügt hast, solltest du im Browserkonsolenfenster protokollierte checkout.breakdown-Ereignisse sehen.
6

Go Live

Wenn du für die Produktion bereit bist:
  1. Ändere den Modus in 'live':
  1. Aktualisiere deine Checkout-URLs, sodass sie Live-Checkout-Sessions aus deinem Backend verwenden
  2. Teste den vollständigen Ablauf in der Produktion

Vollständiges React-Beispiel

Dieses Beispiel zeigt, wie du neben dem Inline-Checkout eine benutzerdefinierte Bestellübersicht implementierst und beide mithilfe des Ereignisses checkout.breakdown synchron hältst:

API-Referenz

Initialisieren

Rufe Initialize einmal auf, um das SDK einzurichten:

Checkout öffnen

Öffne den Checkout-Frame in einem Container:

Checkout schließen

Entferne den Checkout-Frame programmgesteuert und bereinige die Event-Listener:

Status prüfen

Prüfe, ob der Checkout-Frame derzeit eingefügt ist:

Ereignisse

Das SDK stellt über den onEvent-Callback Ereignisse in Echtzeit bereit. Für den Inline-Checkout ist checkout.breakdown besonders nützlich, um deine Benutzeroberfläche zu synchronisieren:

Daten zur Checkout-Aufschlüsselung

Das Ereignis checkout.breakdown stellt Preis- und Steuerinformationen bereit:
Das Ereignis wird beim Laden des Checkout-Frames und erneut bei jeder Neuberechnung des Preises ausgelöst, beispielsweise wenn der Kunde ein Land auswählt oder eine Postleitzahl eingibt, die die Steuer ändert. Felddetails: Integrationstipps:
  1. Währungsformatierung: Preise sind Ganzzahlen in der kleinsten Währungseinheit, beispielsweise Cent bei USD. Teile bei Währungen mit zwei Dezimalstellen den Wert durch 100, bevor du ihn mit Intl.NumberFormat formatierst. Währungen ohne Dezimalstellen wie JPY haben keine kleinere Einheit und dürfen daher nicht geteilt werden.
  2. Umgang mit Anfangszuständen: Beim ersten Laden des Checkouts können tax und discount den Wert 0 oder null haben, bis der Benutzer seine Rechnungsdaten eingibt oder einen Code anwendet. Behandle diese Zustände angemessen, z. B. durch Anzeige eines Gedankenstrichs — oder Ausblenden der Zeile.
  3. „Endsumme“ im Vergleich zur „Gesamtsumme“: Während total die standardmäßige Preisberechnung liefert, ist finalTotal die maßgebliche Quelle für die Transaktion. Wenn finalTotal vorhanden ist, entspricht der Wert exakt dem Betrag, der der Karte des Kunden belastet wird.
  4. Feedback in Echtzeit: Verwende das Feld tax, um Benutzern zu zeigen, dass Steuern in Echtzeit berechnet werden. Dadurch wirkt deine Checkout-Seite dynamisch und der Adressschritt wird reibungsloser.

CDN-Implementierung

Für eine schnelle Integration ohne Build-Schritt kannst du das SDK über CDN laden:

Zahlungsmethode aktualisieren

Der Inline-Checkout unterstützt die Aktualisierung von Zahlungsmethoden für Abonnements. Wenn ein Kunde seine Zahlungsmethode für ein aktives Abonnement aktualisieren oder ein pausiertes Abonnement reaktivieren muss, kannst du den Aktualisierungsablauf direkt in deinem Seitenlayout rendern.

Funktionsweise

  1. Rufe die API zum Aktualisieren der Zahlungsmethode auf, um ein payment_link zu erhalten:
  1. Übergib das zurückgegebene payment_link als checkoutUrl, um den Inline-Checkout zu öffnen:
Der Inline-Frame rendert ausschließlich das Formular zur Erfassung der Zahlungsmethode. Kunden können neue Kartendaten eingeben oder eine gespeicherte Zahlungsmethode auswählen, ohne deine Seite zu verlassen.

Für pausierte Abonnements

Beim Aktualisieren der Zahlungsmethode für ein Abonnement mit dem Status on_hold erstellt Dodo Payments automatisch eine Belastung für alle noch offenen Beträge. Überwache die Webhooks payment.succeeded und subscription.active, um die Reaktivierung zu bestätigen.
Du kannst auch eine bereits gespeicherte Zahlungsmethode verwenden, anstatt neue Daten zu erfassen. Übergib dazu type: 'existing' mit einem payment_method_id an die API zum Aktualisieren der Zahlungsmethode.

Fehlerbehandlung

Implementiere immer eine Fehlerbehandlung in deinem onEvent-Callback:
Behandle immer das Ereignis checkout.error, um bei auftretenden Fehlern eine gute Benutzererfahrung zu gewährleisten.

Best Practices

  1. Responsives Design: Stelle sicher, dass dein Container-Element ausreichend breit und hoch ist. Das iframe wird normalerweise so erweitert, dass es seinen Container ausfüllt.
  2. Synchronisierung: Verwende das Ereignis checkout.breakdown, um deine benutzerdefinierte Bestellübersicht oder Preistabellen mit der Anzeige im Checkout-Frame synchron zu halten.
  3. Skeleton-Zustände: Zeige in deinem Container einen Ladeindikator an, bis das Ereignis checkout.opened ausgelöst wird.
  4. Bereinigung: Rufe DodoPayments.Checkout.close() auf, wenn deine Komponente ausgehängt wird, um iframe und Event-Listener zu bereinigen.
Verwende bei Implementierungen im Dark Mode #0d0d0d als Hintergrundfarbe, um eine optimale visuelle Integration mit dem Inline-Checkout-Frame zu erzielen.

Validierung des Zahlungsstatus

Verlasse dich nicht ausschließlich auf Inline-Checkout-Ereignisse, um den Erfolg oder Fehlschlag einer Zahlung zu bestimmen. Implementiere immer eine serverseitige Validierung mit Webhooks und/oder Polling.

Warum serverseitige Validierung unverzichtbar ist

Inline-Checkout-Ereignisse liefern zwar Feedback in Echtzeit, sollten aber nicht deine einzige Quelle für den Zahlungsstatus sein. Netzwerkprobleme, Browserabstürze oder das Schließen der Seite durch Benutzer können dazu führen, dass Ereignisse verpasst werden. Für eine zuverlässige Zahlungsvalidierung gilt:
  1. Webhook-Ereignisse überwachen – Dodo Payments sendet Webhooks für Änderungen des Zahlungsstatus
  2. Polling-Mechanismus implementieren – Dein Frontend sollte deinen Server regelmäßig nach Statusaktualisierungen abfragen
  3. Beide Ansätze kombinieren – Verwende Webhooks als primäre Quelle und Polling als Fallback

Empfohlene Architektur

Implementierungsschritte

1. Auf Checkout-Ereignisse hören – Wenn der Benutzer auf „Zahlen“ klickt, beginne mit der Vorbereitung der Statusüberprüfung:
2. Deinen Server abfragen – Erstelle einen Endpunkt, der den Zahlungsstatus in deiner Datenbank überprüft, der durch Webhooks aktualisiert wird:
3. Webhooks serverseitig verarbeiten – Aktualisiere deine Datenbank, wenn Dodo Webhooks payment.succeeded oder payment.failed sendet. Weitere Informationen findest du in unserer Webhooks-Dokumentation.

Fehlerbehebung

  • Überprüfe, ob elementId mit der id eines div übereinstimmt, das tatsächlich im DOM vorhanden ist
  • Stelle sicher, dass displayType: 'inline' an Initialize übergeben wurde
  • Überprüfe, ob checkoutUrl gültig ist
  • Stelle sicher, dass du auf das Ereignis checkout.breakdown hörst
  • Steuern werden erst berechnet, nachdem der Benutzer im Checkout-Frame ein gültiges Land und eine gültige Postleitzahl eingegeben hat

Digitale Wallets

Ausführliche Informationen zur Einrichtung von Apple Pay, Google Pay und anderen digitalen Wallets findest du auf der Seite Digitale Wallets.

Apple Pay schnell einrichten

Eine Domainverifizierung ist nur für den Inline-Checkout (eingebettet) erforderlich. Für den Hosted Checkout ist sie nicht erforderlich.
Apple Pay ist für den Overlay-Checkout nicht verfügbar.
Apple Pay wird für jede Domain über das Dashboard verifiziert.
1

Open Wallet domains

Gehe zu Settings → Payment Methods und klicke in der Zeile Apple Pay auf Manage domains.
Schaltfläche „Manage domains“ in der Apple-Pay-Zeile der Einstellungen für Zahlungsmethoden

Open Wallet domains from the Apple Pay row

2

Download the domain association file

Lade im Bereich „Wallet domains“ die Zuordnungsdatei herunter.
Bereich „Wallet domains“ mit der Schaltfläche „Download file“

Download the Apple Pay domain association file

3

Register your domain

Klicke auf Register domain, gib die Domain ein, auf der du den Inline-Checkout einbettest, z. B. shop.example.com, und klicke anschließend auf Continue.
Formular zur Registrierung einer Domain mit eingegebener Domain

Register the domain where you embed inline checkout

4

Host the file on your domain

Stelle sie hier bereit:
Die Datei muss über HTTPS bereitgestellt werden, ohne Weiterleitungen erreichbar sein und mit Content-Type: application/octet-stream oder text/plain ausgeliefert werden.
5

Verify the domain

Klicke auf Verify domain. Dodo Payments bestätigt, dass die Datei erreichbar ist, und übermittelt deine Domain an Apple.
Bildschirm zur Domainverifizierung mit dem Host-Pfad der Zuordnungsdatei und der Schaltfläche „Verify domain“

Verify the hosted association file

6

Confirm it's active

Wenn der Status Active anzeigt, ist Apple Pay für diese Domain aktiviert. Verwende den Schalter Enabled, um Apple Pay pro Domain ein- oder auszuschalten.
Liste der Wallet-Domains mit Domains mit dem Apple-Pay-Status „Active“ und Schaltern „Enabled“

Verified domains show an Active status

7

Test the integration

  1. Öffne den Checkout auf einem Apple-Gerät
  2. Überprüfe, ob die Apple-Pay-Schaltfläche angezeigt wird
  3. Führe eine Testtransaktion durch

Browserunterstützung

Das Dodo Payments Checkout SDK unterstützt:
  • Chrome (aktuellste Version)
  • Firefox (aktuellste Version)
  • Safari (aktuellste Version)
  • Edge (aktuellste Version)
  • IE11+

Inline-Checkout im Vergleich zum Overlay-Checkout

Wähle den passenden Checkout-Typ für deinen Anwendungsfall:
Verwende den Inline-Checkout, wenn du maximale Kontrolle über das Checkout-Erlebnis und ein einheitliches Branding möchtest. Verwende den Overlay-Checkout für eine schnellere Integration mit minimalen Änderungen an deinen bestehenden Seiten.

Verwandte Ressourcen

Overlay Checkout

Verwende den Overlay-Checkout für eine schnelle modalbasierte Integration.

Checkout Sessions API

Erstelle Checkout-Sessions für deine Checkout-Erlebnisse.

Webhooks

Verarbeite Zahlungsereignisse serverseitig mit Webhooks.

Integration Guide

Vollständiger Leitfaden zur Integration von Dodo Payments.
Weitere Unterstützung erhältst du in unserer Discord-Community oder bei unserem Entwickler-Supportteam.
Zuletzt geändert am 26. September 2026