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

Transmettre l’URL de retour

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

Signification du résultat

result.status est un indice d’interface, pas une preuve de paiement. Confirmez chaque paiement depuis votre backend via le webhook payment.succeeded / subscription.active.
CheckoutStatus
requis
L’une des valeurs suivantes : succeeded, failed, cancelled, pending, expired.
string
Défini lorsque l’URL de retour en contenait un. Affichez-le dans l’interface, mais ne l’utilisez pas pour accorder l’accès. Consultez Vérifier le paiement ci-dessous.
string
Défini pour les checkouts d’abonnement.
string[]
Défini lorsque le checkout inclut des produits avec des clés de licence.
string
Défini lorsque le checkout collecte 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 réussit 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 confirmation du paiement par l’un de ces moyens, jamais à partir de result.status seul.

Erreurs

start rejette avec un CheckoutError uniquement en cas de mauvaise utilisation ou de défaillance 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 : défaillance inattendue de la plateforme.

Sessions abandonnées

Si l’application ou le bundle JS est arrêté en cours de checkout, la promise 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 du checkout.
Dernière modification le 31 juillet 2026