Il s’agit du SDK officiel de checkout Android (
com.dodopayments.api:checkout-android),
pour ouvrir le checkout hébergé de Dodo. Il est distinct du
SDK Kotlin backend, qui appelle l’API Dodo
Payments depuis votre serveur.Checkout Sessions API
Créez le
checkout_url que ce SDK ouvreMobile Integration Guide
Bonnes pratiques pour les parcours de checkout mobile
androidx.browser.customtabs. Il ne contient aucun code réseau et ne stocke aucune clé API. Vous transmettez un checkoutUrl provenant de la session de checkout de votre backend, et le SDK renvoie un CheckoutResult typé lorsque l’utilisateur termine ou abandonne le parcours.
Prérequis : minSdk 23, Kotlin, Java 17.
Installation
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
Définissez votre schéma de callback comme placeholder de manifeste Gradle. Le manifeste propre à la bibliothèque déclare déjà le filtre d’intention de l’activité de redirection à l’aide du token La valeur doit correspondre au schéma dans
${dodoCallbackScheme}. Cette propriété constitue donc toute la configuration nécessaire : vous n’ajoutez aucun fichier XML au manifeste :build.gradle.kts
CheckoutParams.returnUrl (par exemple myapp://checkout/return).Si vous omettez complètement le placeholder, le build échoue immédiatement avec une erreur de placeholder non résolu, au lieu d’échouer silencieusement au moment du checkout. Si vous le définissez, mais qu’il ne correspond pas au schéma de
returnUrl, DodoCheckout.start lève PLATFORM_ERROR avant d’afficher quoi que ce soit.Utilisation
Le SDK prend en charge deux styles d’appel.- Launcher (Recommended)
- Suspend Function
Enregistrez le contrat avec
registerForActivityResult, puis lancez-le :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 utilisateur, 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 des clés de licence.
String?
Défini lorsque le checkout recueille 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
Écoutez les événements de paiement en temps réel
Get Payment Detail
Interrogez le statut du paiement à la demande
CheckoutResult.status.
Personnalisation de l’apparence
Personnalisez la barre d’outils, les boutons et le schéma de couleurs de l’onglet Custom viacustomization sur CheckoutParams. Tous les champs sont facultatifs ; si vous omettez
customization, l’apparence par défaut de l’onglet Custom d’Android est utilisée.
Int?
Couleur d’arrière-plan de la barre d’outils, sous forme d’entier ARGB
Color.Couleur de la barre de navigation.
Couleur du séparateur au-dessus de la barre de navigation.
CloseButtonStyle
DEFAULT affiche l’icône système « X » ; BACK affiche plutôt une flèche de retour.CloseButtonPosition
Côté de la barre d’outils où apparaît le bouton de fermeture :
START ou END.Affiche l’icône de partage de la barre d’outils.
Boolean
Affiche le titre de la page sous l’URL dans la barre d’outils.
Boolean
Permet à la barre d’outils de se masquer automatiquement lors du défilement de la page.
Boolean
Affiche « Ajouter cette page aux favoris » dans le menu de débordement.
Boolean
Affiche « Télécharger la page » dans le menu de débordement.
ColorScheme
Force l’apparence claire ou sombre, indépendamment du réglage système de l’appareil :
SYSTEM, LIGHT ou DARK.Erreurs
DodoCheckout.start lève CheckoutError uniquement en cas de mauvaise utilisation ou
d’échec de la plateforme. Lisez le code depuis CheckoutError.code :
INVALID_CHECKOUT_URL: il ne s’agit pas d’une URL de sessioncheckout.dodopayments.com.INVALID_RETURN_URL: il ne s’agit pas d’une URL absolue valide.ALREADY_IN_PROGRESS: un checkout est déjà en cours.PLATFORM_ERROR: échec inattendu de la plateforme, notamment unreturnUrldont le schéma ne correspond pas à votre espace réservédodoCallbackScheme.
CANCELLED ou
FAILED), et ne lève jamais d’erreur. Avec le style launcher, les erreurs de validation
sont propagées en dehors de launcher.launch(...).
Sessions abandonnées
Si l’application est arrêtée ou si l’utilisateur l’arrête de force pendant le checkout, le SDK stocke la session localement. Au prochain lancement de l’application, vérifiez l’existence d’une session abandonnée et réconciliez-la avec votre backend :abandoned.createdAt est un timestamp epoch exprimé en millisecondes.
Articles associés
Mobile Integration Guide
Bonnes pratiques pour les parcours de checkout mobiles
Kotlin SDK
SDK backend pour les opérations côté serveur