Dies ist das offizielle Dodo Payments React Native Checkout SDK,
@dodopayments/react-native-checkout. Es öffnet den gehosteten Checkout von Dodo in einer nativen Browseransicht und gibt ein typisiertes Ergebnis zurück. Hinweis: Es gibt ein älteres, nicht verwandtes Paket namens dodopayments-react-native-sdk (unscoped) mit einer vollständig anderen API. Diese Seite dokumentiert ausschließlich das aktuelle offizielle Scoped-Paket.Checkout Sessions API
Erstelle die checkout_url, die dieses SDK öffnet, in deinem Backend.
Mobile Integration Guide
Erfahre, wie dies in den vollständigen mobilen Zahlungsablauf passt.
SFSafariViewController auf iOS und einen Chrome Custom Tab auf Android, enthält keinen API-Schlüssel und ruft die Dodo API niemals direkt auf. Die gesamte Checkout-Logik läuft im Browser; das SDK verwaltet lediglich den Lebenszyklus der Ansicht und erfasst die Return-URL.
Installation
1
Install the Package
- Android
- iOS
- Expo
Das Paket wird automatisch verknüpft und ruft Keine zusätzliche Einrichtung erforderlich; die native Abhängigkeit wird automatisch aufgelöst.
com.dodopayments.api:checkout-android aus Maven ab.2
Register a Callback URL Scheme
Deine App muss ein URL-Schema registrieren, um die Return-URL vom Checkout zu empfangen.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
In Ersetze
android/app/build.gradle:android/app/build.gradle
"myapp" durch das Schema deiner App.Verwendung
Weiterleiten der Rückgabe-URL
DerLinking-Listener ist für die Verarbeitung der Rückgabe-URL unter iOS erforderlich. Unter Android ist handleOpenURL ein No-op, das false auflöst, da der Android-Kern die Weiterleitung nativ verarbeitet. Es ist sicher, den Listener auf beiden Plattformen bedingungslos zu registrieren.
Bedeutung des Ergebnisses
CheckoutStatus
erforderlich
Einer von
succeeded, failed, cancelled, pending, expired.string
Wird gesetzt, wenn die Rückgabe-URL einen solchen Wert enthielt. Zeige ihn in der UI an, verwende ihn aber nicht, um Zugriff zu gewähren. Siehe „Zahlung verifizieren“ weiter unten.
string
Wird für Subscription-Checkouts gesetzt.
string[]
Wird gesetzt, wenn der Checkout Produkte mit Lizenzschlüsseln enthält.
string
Wird gesetzt, wenn der Checkout eine E-Mail erfasst.
Record<string, string>
Jeder Abfrageparameter aus der Rückgabe-URL unverändert.
Zahlung verifizieren
Webhooks
Dodo Payments ruft dein Backend auf, wenn eine Zahlung erfolgreich ist oder ein Subscription aktiviert wird.
Get Payment Detail
Rufe
paymentId mit deinem Secret Key ab, um den Status direkt zu prüfen.result.status.
Anpassung des Erscheinungsbilds
Passe die Symbolleiste, Schaltflächen und das Farbschema des Checkout-Browsers übercustomization auf start(...) an. Die Optionen sind nach Plattform gruppiert, da
Androids Custom Tab und iOS’ SFSafariViewController unterschiedliche
native Steuerelemente bereitstellen. Alle Felder sind optional. Wenn customization weggelassen wird, verwendet jede
Plattform das standardmäßige Erscheinungsbild.
Android — Custom Tab
Android — Custom Tab
Color
Hintergrundfarbe der Symbolleiste.
Farbe der Navigationsleiste.
Farbe der Trennlinie über der Navigationsleiste.
'default' | 'back'
default zeigt das System-„X“-Symbol an; back zeichnet stattdessen einen Zurück-Pfeil.'start' | 'end'
Auf welcher Seite der Symbolleiste die Schaltfläche zum Schließen angezeigt wird.
Zeigt das Teilen-Symbol der Symbolleiste an.
boolean
Zeigt den Seitentitel unter der URL in der Symbolleiste an.
boolean
Ermöglicht das automatische Ausblenden der Symbolleiste beim Scrollen der Seite.
boolean
Zeigt „Diese Seite als Lesezeichen speichern“ im Überlaufmenü an.
boolean
Zeigt „Seite herunterladen“ im Überlaufmenü an.
'system' | 'light' | 'dark'
Erzwingt unabhängig von der Systemeinstellung des Geräts ein helles oder dunkles Erscheinungsbild.
iOS — SFSafariViewController
iOS — SFSafariViewController
'done' | 'close' | 'cancel'
Beschriftung oder Symbol für die Schaltfläche zum Verwerfen.
'pageSheet' | 'fullScreen'
pageSheet wird als Karte mit Wischen zum Verwerfen angezeigt; fullScreen bedeckt den gesamten Bildschirm.boolean
Ermöglicht das Einklappen der Symbolleiste beim Scrollen. Wird nur angezeigt, wenn
presentationStyle fullScreen ist — pageSheet hält die Leisten unabhängig von dieser Einstellung fixiert.'system' | 'light' | 'dark'
Erzwingt unabhängig von der Systemeinstellung des Geräts ein helles oder dunkles Erscheinungsbild.
Fehler
start bricht nur bei fehlerhafter Verwendung oder einem Plattformfehler mit einem CheckoutError ab. Eine abgebrochene oder abgelehnte Zahlung ist immer ein Ergebnis und niemals eine Exception.
INVALID_CHECKOUT_URL: keinecheckout.dodopayments.com-Session-URL.INVALID_RETURN_URL: keine gültige absolute URL.ALREADY_IN_PROGRESS: Ein Checkout läuft bereits.PLATFORM_ERROR: unerwarteter Plattformfehler.
Verlassene Sessions
Wenn die App oder das JS-Bundle während des Checkouts beendet wird, geht das Promise verloren, aber die native Ebene behält die Session bei. Stelle sie beim nächsten Mount wieder her und gleiche sie mit deinem Backend ab.Verwandte Themen
Mobile Integration Guide
Derselbe Vertrag für Android, iOS und Flutter.
Expo Boilerplate
Ein vollständiges Expo-Beispiel mit Checkout-Integration.