Skip to main content
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.
Le SDK iOS ouvre le checkout hébergé de Dodo dans 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 Info.plist :
Info.plist
Vous pouvez également l’ajouter via l’interface Info → URL Types de Xcode.

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.
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

result.status est un indice visuel, et non une preuve de paiement. Confirmez chaque paiement depuis votre backend, via le webhook payment.succeeded / subscription.active.
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.
Accordez l’accès après confirmation du paiement par l’un de ces mécanismes, jamais à partir de result.status seul.

Erreurs

start génère CheckoutError uniquement en cas de mauvaise utilisation ou de défaillance de la plateforme. Un paiement annulé ou refusé renvoie toujours un résultat, jamais une exception.
  • invalidCheckoutUrl (INVALID_CHECKOUT_URL) : URL de session qui n’est pas une URL de session checkout.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’app est arrêtée au cours du checkout, récupérez la session au prochain lancement et réconciliez-la avec votre backend.

Ressources associées

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.
Dernière modification le 31 juillet 2026