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é.
- iOS (Swift)
- Android (Kotlin)
- React Native (JavaScript)
- Flutter (Dart)
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 appelstart(...) 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+.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 exemplemyapp://checkout/return. Enregistrez-le une fois par
plateforme :
- Android
- iOS
- Expo
android/app/build.gradle
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_urlobtenu au client. - Autorité : considérez
CheckoutResult.statuscomme 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
cancelledcomme 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
returnUrldoit correspondre à celui que vous avez enregistré. Sur Android, il s’agit du placeholder de manifestdodoCallbackScheme; sur iOS et React Native, il s’agit du type d’URLInfo.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 listenerLinkingReact Native. PLATFORM_ERRORsur Android : il s’agit le plus souvent d’une incompatibilité de schéma. Cela peut également se produire si votreMainActivitydéfinitandroid:taskAffinity=""(la valeur par défaut standardflutter 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.