Il s’agit du package Flutter officiel de Dodo Payments (
dodopayments_checkout
sur pub.dev). Un package distinct développé par la communauté existe également, consultez
Projets communautaires.Checkout Sessions API
Créez la checkout_url que ce SDK ouvre depuis votre backend.
Mobile Integration Guide
Découvrez comment cela s’intègre au flux de paiement mobile complet.
dodopayments_checkout ouvre le checkout hébergé de Dodo dans
SFSafariViewController sur iOS et dans un Chrome Custom Tab sur Android — les mêmes
cœurs natifs que ceux utilisés par les SDK autonomes iOS et
Android. Toute la logique du checkout réside dans
ces cœurs natifs ; la couche Dart transmet l’appel via un canal typé
Pigeon. Elle ne contient aucune clé API et
n’appelle jamais l’API Dodo Payments.
Nécessite Flutter 3.44+ / Dart 3.12+, iOS 16+ et Android minSdk 23.
Installation
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
Ajoutez un type d’URL pour votre schéma dans Transmettez ensuite les URL entrantes (par exemple via
ios/Runner/Info.plist :ios/Runner/Info.plist
app_links) au SDK, car
SFSafariViewController ne peut pas intercepter sa propre URL de retour :Vous pouvez transmettre toutes les URL ici sans risque.
handleOpenURL agit uniquement sur les URL
correspondant à votre returnUrl enregistré et résout false pour toute autre URL.Utilisation
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 d’abonnement.
List<String>?
Défini lorsque le checkout inclut des produits avec clé de licence.
String?
Défini lorsque le checkout collecte une adresse e-mail.
Map<String, String>
Chaque paramètre de requête de l’URL de retour, mot pour mot.
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.
Erreurs
start lève CheckoutException 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.
invalidCheckoutUrl(INVALID_CHECKOUT_URL) : URL de sessioncheckout.dodopayments.comnon valide.invalidReturnUrl(INVALID_RETURN_URL) : URL absolue non valide.alreadyInProgress(ALREADY_IN_PROGRESS) : un checkout est déjà en cours.platformError(PLATFORM_ERROR) : défaillance inattendue de la plateforme.
Sessions abandonnées
Si l’application est arrêtée en plein checkout, récupérez la session au prochain lancement et
réconciliez-la avec votre backend.
Articles associés
Mobile Integration Guide
Le même contrat pour Android, iOS et React Native.
Community Projects
Un package Flutter distinct développé par la communauté existe également.