
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.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:
Example inline checkout layout showing required elements
- 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.
- Artikelbeschreibungen: Eine Beschreibung dessen, was gekauft wird.
- Transaktionssummen: Zwischensumme, Gesamtsteuer und Gesamtsumme einschließlich Währung.
- Dodo Payments-Fußzeile: Der vollständige Inline-Checkout-Frame einschließlich der Fußzeile mit Informationen zu Dodo Payments, Verkaufsbedingungen und Datenschutzrichtlinie.
- Rückerstattungsrichtlinie: Ein Link zu deiner Rückerstattungsrichtlinie, falls sie von der standardmäßigen Rückerstattungsrichtlinie von Dodo Payments abweicht.
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.Customer opens checkout
checkout.breakdown, um Informationen auf der Seite anzuzeigen und zu aktualisieren.
Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates the payment or subscription

Schnellstart
Installiere das SDK, initialisiere es für den Inline-Modus und öffne den Checkout in einem Container-Element:Schrittweise Integration
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline' an. Höre auf das Ereignis checkout.breakdown, um deine Benutzeroberfläche mit Steuer- und Gesamtbetragsberechnungen in Echtzeit zu aktualisieren:Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() mit der checkoutUrl und der elementId deines Containers auf:Test Your Integration
- Starte deinen Entwicklungsserver:
- 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
onEvent-Callback ein Konsolenprotokoll hinzugefügt hast, solltest du im Browserkonsolenfenster protokollierte checkout.breakdown-Ereignisse sehen.Go Live
- Ändere den Modus in
'live':
- Aktualisiere deine Checkout-URLs, sodass sie Live-Checkout-Sessions aus deinem Backend verwenden
- 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 Ereignissescheckout.breakdown synchron hältst:
API-Referenz
Initialisieren
RufeInitialize 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 denonEvent-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 Ereignischeckout.breakdown stellt Preis- und Steuerinformationen bereit:
- 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.NumberFormatformatierst. Währungen ohne Dezimalstellen wie JPY haben keine kleinere Einheit und dürfen daher nicht geteilt werden. - Umgang mit Anfangszuständen: Beim ersten Laden des Checkouts können
taxunddiscountden Wert0odernullhaben, 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. - „Endsumme“ im Vergleich zur „Gesamtsumme“: Während
totaldie standardmäßige Preisberechnung liefert, istfinalTotaldie maßgebliche Quelle für die Transaktion. WennfinalTotalvorhanden ist, entspricht der Wert exakt dem Betrag, der der Karte des Kunden belastet wird. - 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
- Rufe die API zum Aktualisieren der Zahlungsmethode auf, um ein
payment_linkzu erhalten:
- Übergib das zurückgegebene
payment_linkalscheckoutUrl, um den Inline-Checkout zu öffnen:
Für pausierte Abonnements
Beim Aktualisieren der Zahlungsmethode für ein Abonnement mit dem Statuson_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.
Fehlerbehandlung
Implementiere immer eine Fehlerbehandlung in deinemonEvent-Callback:
Best Practices
- 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.
- Synchronisierung: Verwende das Ereignis
checkout.breakdown, um deine benutzerdefinierte Bestellübersicht oder Preistabellen mit der Anzeige im Checkout-Frame synchron zu halten. - Skeleton-Zustände: Zeige in deinem Container einen Ladeindikator an, bis das Ereignis
checkout.openedausgelöst wird. - Bereinigung: Rufe
DodoPayments.Checkout.close()auf, wenn deine Komponente ausgehängt wird, um iframe und Event-Listener zu bereinigen.
#0d0d0d als Hintergrundfarbe, um eine optimale visuelle Integration mit dem Inline-Checkout-Frame zu erzielen.Validierung des Zahlungsstatus
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:- Webhook-Ereignisse überwachen – Dodo Payments sendet Webhooks für Änderungen des Zahlungsstatus
- Polling-Mechanismus implementieren – Dein Frontend sollte deinen Server regelmäßig nach Statusaktualisierungen abfragen
- 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:payment.succeeded oder payment.failed sendet. Weitere Informationen findest du in unserer Webhooks-Dokumentation.
Fehlerbehebung
Checkout frame is not appearing
Checkout frame is not appearing
- Überprüfe, ob
elementIdmit derideinesdivübereinstimmt, das tatsächlich im DOM vorhanden ist - Stelle sicher, dass
displayType: 'inline'anInitializeübergeben wurde - Überprüfe, ob
checkoutUrlgültig ist
Taxes are not updating in my UI
Taxes are not updating in my UI
- Stelle sicher, dass du auf das Ereignis
checkout.breakdownhö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
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com, und klicke anschließend auf Continue.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream oder text/plain ausgeliefert werden.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Öffne den Checkout auf einem Apple-Gerät
- Überprüfe, ob die Apple-Pay-Schaltfläche angezeigt wird
- 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+