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.
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.
Installation
1
Install the Package
- Android
- iOS
- Expo
Le package est autolinké et récupère Aucune configuration supplémentaire n’est nécessaire ; la dépendance native est résolue automatiquement.
com.dodopayments.api:checkout-android depuis Maven.2
Register a Callback URL Scheme
Votre application doit enregistrer un schéma d’URL pour recevoir l’URL de retour du checkout.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
Dans Remplacez
android/app/build.gradle :android/app/build.gradle
"myapp" par le schéma de votre application.Utilisation
Transfert de l’URL de retour
L’écouteurLinking 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
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.result.status seul.
Personnalisation de l’apparence
Personnalisez la barre d’outils, les boutons et le jeu de couleurs du navigateur de checkout viacustomization 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.
Android — Custom Tab
Android — Custom Tab
Color
Couleur d’arrière-plan de la barre d’outils.
Couleur de la barre de navigation.
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.
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.
iOS — SFSafariViewController
iOS — SFSafariViewController
'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 fullScreen — pageSheet 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 unecheckout.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.