Il s’agit du SDK officiel de checkout iOS de Dodo Payments pour Swift. Il ouvre le checkout hébergé de Dodo dans une vue de navigateur native et renvoie un résultat typé.
Checkout Sessions API
Créez le checkout_url que ce SDK ouvre depuis votre backend.
Mobile Integration Guide
Découvrez comment cela s’intègre dans le flux de paiement mobile complet.
SFSafariViewController, ne contient aucune clé API et n’appelle jamais directement l’API Dodo. Toute la logique du checkout s’exécute dans le navigateur ; le SDK gère simplement le cycle de vie de la vue et capture l’URL de retour.
Nécessite iOS 16+ et Swift 6.
Installation
1
Add the Package
Dans Xcode, accédez à File → Add Package Dependencies et saisissez :Sélectionnez la version 1.0.0 ou une version ultérieure.Vous pouvez également l’ajouter à votre
Package.swift :Package.swift
2
Register a Callback URL Scheme
Votre app doit enregistrer un schéma d’URL pour recevoir l’URL de retour du checkout. Ajoutez ceci à votre Vous pouvez également l’ajouter via l’interface Info → URL Types de Xcode.
Info.plist :Info.plist
Utilisation
Transmettre l’URL de retour
SFSafariViewController ne dispose d’aucun mécanisme intégré au processus pour intercepter sa propre URL de retour. Votre app doit transmettre les URL entrantes au SDK.
- SwiftUI
- SceneDelegate
Vous pouvez transmettre chaque URL en toute sécurité.
handleOpenURL agit uniquement sur les URL correspondant à votre returnUrl enregistré et renvoie false pour toute autre URL.Signification du résultat
CheckoutStatus
requis
L’un de
succeeded, failed, cancelled, pending, expired.String?
Défini lorsque l’URL de retour en incluait 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.
[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.
[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
Consultez
paymentId avec votre clé secrète pour vérifier directement son statut.result.status seul.
Personnalisation de l’apparence
Personnalisez le bouton de fermeture de la feuille, le style de présentation et le jeu de couleurs viacustomization sur start(...). Tous les champs sont facultatifs ; si vous omettez
customization, l’apparence par défaut d’iOS SFSafariViewController est utilisée.
DismissButtonStyle
Libellé ou icône du bouton de fermeture :
done, close ou cancel.PresentationStyle
pageSheet s’affiche sous forme de carte avec un balayage pour fermer ; fullScreen couvre tout l’écran.Bool
Permet à la barre d’outils de se réduire lors du défilement. Visible uniquement lorsque
presentationStyle vaut fullScreen — pageSheet maintient les barres fixes quelle que soit la valeur de ce paramètre.ColorScheme
Force l’utilisation d’une apparence claire ou sombre, indépendamment du paramètre système de l’appareil :
system, light ou dark.Erreurs
start déclenche CheckoutError 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 qui n’est pas unecheckout.dodopayments.com.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 cours de 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, React Native et Flutter.
React Native SDK
Encapsule ce même cœur Swift sur iOS.