Skip to main content

Quick Start

Lancez votre intégration de paiement mobile en 4 étapes simples

Platform Examples

Exemples de code complets pour Android, iOS, React Native et Flutter
Dodo Payments fournit un checkout SDK officiel pour Android, iOS, React Native, et Flutter. Chacun encapsule le pattern documenté ci-dessous (ouvrir l’URL de checkout, capturer le retour, analyser le résultat) derrière un seul appel start(...) typé, avec la récupération des sessions abandonnées intégrée. Utilisez une WebView manuelle uniquement si aucun de ces SDK ne convient à votre stack.

Prérequis

Avant d’intégrer Dodo Payments à votre application mobile, assurez-vous de disposer des éléments suivants :
  • Compte Dodo Payments : compte marchand actif avec accès à l’API
  • Identifiants API : clé API et clé secrète de webhook depuis votre tableau de bord
  • Projet d’application mobile : application Android, iOS, React Native ou Flutter
  • Serveur backend : pour gérer de manière sécurisée la création des sessions de checkout

Workflow d’intégration

L’intégration mobile suit un processus sécurisé en 4 étapes, au cours duquel votre backend gère les appels API et votre application mobile l’expérience utilisateur.
1

Backend: Create Checkout Session

Checkout Session API Docs

Découvrez comment créer une session de checkout dans votre backend avec Node.js, Python et d’autres langages. Consultez les exemples complets et les références des paramètres dans la documentation dédiée de l’API Checkout Sessions.
Sécurité : les sessions de checkout doivent être créées sur votre serveur backend, jamais dans l’application mobile. Cela protège vos clés API et garantit une validation appropriée.
2

Mobile: Get Checkout URL

Votre application mobile appelle votre backend pour obtenir l’URL de checkout. Authentifiez cette requête avec le propre jeton de session de l’utilisateur connecté.
Sécurité : les applications mobiles communiquent uniquement avec votre backend, jamais directement avec l’API Dodo Payments.
3

Mobile: Open Checkout in Browser

Ouvrez l’URL de checkout dans un navigateur intégré sécurisé pour traiter le paiement. Ou évitez entièrement la configuration manuelle avec le checkout SDK officiel pour votre plateforme.

Pick your mobile SDK

Étapes d’installation et instructions de configuration pour Android, iOS, React Native et Flutter.
4

Backend: Handle Payment Completion

Traitez la finalisation du paiement via des webhooks et des URL de redirection afin de confirmer le statut du paiement.

Choisissez votre SDK

Chaque SDK mobile expose le même contrat : un seul appel start(...) ouvre le checkout hébergé de Dodo dans la surface de navigateur native de la plateforme et renvoie un résultat typé CheckoutResult dont le status est succeeded, failed, cancelled, pending ou expired. Aucun d’eux ne contient de clé API ni n’appelle l’API Dodo Payments, et les quatre prennent en charge la récupération des sessions abandonnées.

Android

com.dodopayments.api:checkout-android ouvre un Chrome Custom Tab. Nécessite minSdk 23.

iOS

dodopayments-mobile-sdk-ios ouvre SFSafariViewController. Nécessite iOS 16+.

React Native

@dodopayments/react-native-checkout, un Turbo Module sur les deux cœurs natifs. Nécessite React Native 0.76+.

Flutter

dodopayments_checkout, un canal Pigeon sur les deux cœurs natifs. Nécessite Flutter 3.44+.
Le status que vous recevez est un indice d’interface, et non une preuve de paiement. Confirmez chaque paiement depuis votre backend via le webhook payment.succeeded / subscription.active, ou récupérez le paiement avec votre clé secrète.

Enregistrement d’un schéma d’URL de callback

Les quatre SDK redonnent le contrôle à votre application via un schéma d’URL personnalisé que vous choisissez, par exemple myapp://checkout/return. Enregistrez-le une fois par plateforme :
android/app/build.gradle
Le manifest du SDK déclare déjà sa propre activité de redirection ; il n’y a donc aucun manifest XML à ajouter.
Vous préférez le construire vous-même ? Ouvrez le checkout_url dans une WebView et interceptez la navigation vers votre return_url, puis lisez les paramètres de requête status et payment_id. Les SDK ci-dessus le font pour vous dans la surface de navigateur réelle de la plateforme, ce qui permet à Apple Pay et Google Pay de continuer à fonctionner.

Bonnes pratiques

  • Sécurité : ne déployez jamais de clé API dans votre application. Créez les sessions de checkout sur votre backend et transmettez uniquement le checkout_url obtenu au client.
  • Autorité : considérez CheckoutResult.status comme un indice d’interface. N’accordez l’accès qu’après confirmation du paiement par votre backend.
  • Expérience utilisateur : affichez un état de chargement pendant que votre backend crée la session et traitez cancelled comme un résultat normal plutôt que comme une erreur.
  • Tests : utilisez le mode test et des cartes de test, puis vérifiez l’aller-retour de l’URL de retour sur un appareil réel ainsi que sur un simulateur.

Dépannage

Problèmes courants

  • Le callback n’arrive jamais : le schéma dans returnUrl doit correspondre à celui que vous avez enregistré. Sur Android, il s’agit du placeholder de manifest dodoCallbackScheme ; sur iOS et React Native, il s’agit du type d’URL Info.plist.
  • Le checkout revient au navigateur au lieu de revenir à votre application (iOS) : vous n’avez pas transmis l’URL entrante. Appelez DodoCheckout.handleOpenURL(url) depuis .onOpenURL, scene(_:openURLContexts:) ou un listener Linking React Native.
  • PLATFORM_ERROR sur Android : il s’agit le plus souvent d’une incompatibilité de schéma. Cela peut également se produire si votre MainActivity définit android:taskAffinity="" (la valeur par défaut standard flutter create), ce qui peut faire perdre le checkout en cours à certains builds OEM.
  • ALREADY_IN_PROGRESS : un checkout est toujours ouvert. Attendez la fin du précédent ou fermez-le avant d’en démarrer un autre.
  • Le build échoue avec un placeholder non résolu : vous avez ajouté le SDK Android, mais vous n’avez jamais défini manifestPlaceholders["dodoCallbackScheme"].
  • Le paiement a réussi, mais l’accès n’a pas été accordé : c’est attendu si vous vous basez sur le résultat mobile. Accordez l’accès depuis le webhook payment.succeeded / subscription.active à la place.

Ressources supplémentaires

Pour toute question ou demande d’assistance, contactez support@dodopayments.com.
Dernière modification le 31 juillet 2026