Skip to main content
Voici le SDK officiel de checkout React Native de Dodo Payments, @dodopayments/react-native-checkout. Il ouvre le checkout hébergé de Dodo dans une vue de navigateur native et renvoie un résultat typé. Remarque : un ancien package sans rapport nommé dodopayments-react-native-sdk (non scoped) existe avec une API complètement différente. Cette page documente uniquement le package scoped officiel actuel.

Checkout Sessions API

Créez le checkout_url depuis votre backend. Ce SDK l’ouvrira.

Mobile Integration Guide

Découvrez comment cela s’intègre au flux de paiement mobile complet.
Le SDK React Native est un wrapper Turbo Module léger autour des mêmes cœurs natifs Swift et Kotlin. Il ouvre SFSafariViewController sur iOS et un Chrome Custom Tab sur Android, ne contient aucune clé API et n’appelle jamais directement l’API Dodo. Toute la logique du checkout s’exécute dans le navigateur ; le SDK gère simplement le cycle de vie de la vue et capture l’URL de retour.
Ce SDK nécessite New Architecture uniquement, React Native 0.76+, iOS 16+ et Android minSdk 24.

Installation

1

Install the Package

Le package est autolinké et récupère com.dodopayments.api:checkout-android depuis Maven.
Aucune configuration supplémentaire n’est nécessaire ; la dépendance native est résolue automatiquement.
2

Register a Callback URL Scheme

Votre application doit enregistrer un schéma d’URL pour recevoir l’URL de retour du checkout.
Dans android/app/build.gradle :
android/app/build.gradle
Remplacez "myapp" par le schéma de votre application.

Utilisation

Transfert de l’URL de retour

L’écouteur Linking est requis pour la gestion de l’URL de retour sur iOS. Sur Android, handleOpenURL est une opération sans effet qui résout false, car le cœur Android gère nativement sa redirection. Vous pouvez enregistrer l’écouteur sans condition sur les deux plateformes.

Signification du résultat

result.status est un indice d’interface, et non une preuve de paiement. Confirmez chaque paiement depuis votre backend, via le webhook payment.succeeded / subscription.active.
CheckoutStatus
requis
L’un des éléments suivants : succeeded, failed, cancelled, pending, expired.
string
Défini lorsque l’URL de retour en contient un. Affichez-le dans l’interface, mais ne l’utilisez pas pour accorder l’accès. Consultez la section Vérifier le paiement ci-dessous.
string
Défini pour les checkouts avec abonnement.
string[]
Défini lorsque le checkout inclut des produits avec clé de licence.
string
Défini lorsque le checkout recueille une adresse e-mail.
Record<string, string>
Chaque paramètre de requête de l’URL de retour, tel quel.

Vérifier le paiement

Webhooks

Dodo Payments appelle votre backend lorsqu’un paiement est réussi ou qu’un abonnement est activé.

Get Payment Detail

Recherchez paymentId avec votre clé secrète pour vérifier directement son statut.
Accordez l’accès après la confirmation du paiement par l’un de ces moyens, jamais à partir de result.status seul.

Personnalisation de l’apparence

Personnalisez la barre d’outils, les boutons et le jeu de couleurs du navigateur de checkout via customization sur start(...). Les options sont regroupées par plateforme, car l’onglet personnalisé d’Android et SFSafariViewController d’iOS exposent des contrôles natifs différents. Tous les champs sont facultatifs ; si vous omettez customization, l’apparence par défaut de chaque plateforme est utilisée.
Color
Couleur d’arrière-plan de la barre d’outils.
Color
Couleur de la barre de navigation.
Color
Couleur du séparateur au-dessus de la barre de navigation.
'default' | 'back'
default affiche l’icône système « X » ; back affiche à la place une flèche de retour.
'start' | 'end'
Indique de quel côté de la barre d’outils le bouton de fermeture apparaît.
boolean
Affiche l’icône de partage de la barre d’outils.
boolean
Affiche le titre de la page sous l’URL dans la barre d’outils.
boolean
Permet à la barre d’outils de se masquer automatiquement lorsque la page défile.
boolean
Affiche « Ajouter cette page aux favoris » dans le menu Plus d’options.
boolean
Affiche « Télécharger la page » dans le menu Plus d’options.
'system' | 'light' | 'dark'
Force l’apparence claire ou sombre, quel que soit le réglage système de l’appareil.
'done' | 'close' | 'cancel'
Libellé ou icône du bouton de fermeture.
'pageSheet' | 'fullScreen'
pageSheet se présente sous forme de carte avec balayage pour fermer ; fullScreen couvre tout l’écran.
boolean
Permet à la barre d’outils de se réduire lors du défilement. Visible uniquement lorsque presentationStyle est fullScreenpageSheet maintient les barres fixes, quel que soit ce réglage.
'system' | 'light' | 'dark'
Force l’apparence claire ou sombre, quel que soit le réglage système de l’appareil.

Erreurs

start rejette avec un CheckoutError uniquement en cas de mauvaise utilisation ou d’échec de la plateforme. Un paiement annulé ou refusé est toujours un résultat, jamais une exception.
  • INVALID_CHECKOUT_URL : URL de session qui n’est pas une checkout.dodopayments.com.
  • INVALID_RETURN_URL : URL absolue non valide.
  • ALREADY_IN_PROGRESS : un checkout est déjà en cours.
  • PLATFORM_ERROR : échec inattendu de la plateforme.

Sessions abandonnées

Si l’application ou le bundle JS est arrêté en cours de checkout, la promesse est perdue, mais la couche native conserve la session. Récupérez-la lors du prochain montage et réconciliez-la avec votre backend.

Voir aussi

Mobile Integration Guide

Le même contrat pour Android, iOS et Flutter.

Expo Boilerplate

Un exemple Expo complet avec intégration de checkout.
Dernière modification le 17 août 2026