Skip to main content
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.
Das React Native SDK ist ein schlanker Turbo-Module-Wrapper über denselben nativen Swift- und Kotlin-Kern. Es öffnet 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.
Dieses SDK erfordert ausschließlich New Architecture, React Native 0.76+, iOS 16+ und Android minSdk 24.

Installation

1

Install the Package

Das Paket wird automatisch verknüpft und ruft com.dodopayments.api:checkout-android aus Maven ab.
Keine zusätzliche Einrichtung erforderlich; die native Abhängigkeit wird automatisch aufgelöst.
2

Register a Callback URL Scheme

Deine App muss ein URL-Schema registrieren, um die Return-URL vom Checkout zu empfangen.
In android/app/build.gradle:
android/app/build.gradle
Ersetze "myapp" durch das Schema deiner App.

Verwendung

Weiterleiten der Rückgabe-URL

Der Linking-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

result.status ist ein UI-Hinweis und kein Zahlungsnachweis. Bestätige jede Zahlung über dein Backend mittels des payment.succeeded / subscription.active-Webhooks.
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.
Gewähre Zugriff erst, nachdem einer dieser Mechanismen die Zahlung bestätigt hat, niemals allein aufgrund von result.status.

Anpassung des Erscheinungsbilds

Passe die Symbolleiste, Schaltflächen und das Farbschema des Checkout-Browsers über customization 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.
Color
Hintergrundfarbe der Symbolleiste.
Color
Farbe der Navigationsleiste.
Color
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.
boolean
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.
'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: keine checkout.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.
Zuletzt geändert am 17. August 2026