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.

Erreurs

start rejette la requête avec une 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 promesse est perdue, mais la couche native conserve la session. Récupérez-la au prochain montage et réconciliez-la avec votre backend.

Contenu associé

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 6 août 2026