Skip to main content
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

Ajoutez un type d’URL pour votre schéma dans ios/Runner/Info.plist :
ios/Runner/Info.plist
Transmettez ensuite les URL entrantes (par exemple via 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

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’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.
Accordez l’accès après confirmation du paiement par l’un de ces moyens, jamais à partir de 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 session checkout.dodopayments.com non 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.
Dernière modification le 31 juillet 2026