Guide de migration du SDK Terminal
Découvrez comment migrer vers la version 5.0.0 du SDK Stripe Terminal.
Les SDK Stripe Terminal pour iOS et Android ont été mis à jour avec un certain nombre de changements majeurs au niveau des API et du comportement, dont certains nécessitent que vous mettiez à jour votre intégration avec le SDK Stripe Terminal. Nous apportons régulièrement des modifications aux mises à jour de versions majeures susceptibles d’affecter le fonctionnement ou le comportement de votre intégration, afin d’améliorer la cohérence entre nos SDK et de simplifier la logique et l’intégration de votre application. Ce guide vous présente les dernières modifications pour vous aider à mettre à niveau votre intégration.
Remarque
Vous créez une nouvelle intégration à Stripe Terminal ? Consultez la page Conception d’une intégration pour savoir quelles sont les premières étapes.
Migrer vers la version 5.0.0
Voici les éléments à retenir concernant les SDK de Stripe Terminal pour iOS et Android :
- Intégration simplifiée des paiements
- Traitez les paiements, configurez les intentions et effectuez les remboursements à l’aide d’un seul appel de méthode combinant les étapes de collecte et de confirmation.
- Prend en charge les variantes asynchrones modernes de Swift et les coroutines Kotlin pour simplifier les flux asynchrones complexes
- Concurrence Swift (async/await) pour iOS et Kotlin Coroutines pour Android.
- Annulation par le client activée par défaut
- Sur les lecteurs pris en charge, les clients peuvent désormais annuler les transactions par défaut pendant les flux de paiement, de configuration, de remboursement et de collecte de données.
- Amélioration de l’observabilité de la reconnexion automatique du lecteur mobile et du lecteur Tap to Pay
- Gestion améliorée de la reconnexion automatique des lecteurs avec davantage d’états de connexion pour les lecteurs mobiles (Bluetooth et USB) et les lecteurs Tap to Pay.
- Découvrez la prise en charge des cartes acceptées pour Tap to Pay sur Android Aperçu public
- Acceptez les paiements par carte Discover avec Tap to Pay sur Android.
- Mises à jour vers les versions minimales des plateformes prises en charge pour iOS 14.0 et iOS 15.0
Si votre application utilise actuellement une version du SDK Terminal iOS antérieure à la version 5.0.0, vous devez effectuer plusieurs modifications pour la mettre à niveau. Pour obtenir la liste détaillée des modifications apportées entre les versions 4.x et 5.0.0, consultez le journal des modifications du SDK.
Mettez à jour votre version minimale prise en charge vers iOS 15 ou une version plus récente
Nous mettons régulièrement à jour la version minimale prise en charge de nos SDK afin de rationaliser nos efforts de support aux développeurs.
Les versions 4.X existantes du SDK Terminal iOS continueront de prendre en charge les appareils exécutant iOS 14 et versions ultérieures.
Intégration simplifiée des paiements
Mise à jour vers le traitement des paiements unifié
Le SDK v5 comprend des méthodes qui combinent les étapes collecter et confirmer en une seule opération. Bien que les méthodes collectPaymentMethod et confirmPaymentIntent existantes continuent de fonctionner, nous vous recommandons d’utiliser les méthodes unifiées pour des intégrations plus simples.
Traitement des paiements avec processPaymentIntent
Remplacer les étapes collecter et confirmer en deux temps par un appel de méthode processPaymentIntent unique.
_Avant _
_Après _
Traitement des remboursements avec processRefund
Les méthodes collectRefundPaymentMethod et confirmRefund sont désormais obsolètes. Utilisez plutôt processRefund.
_Avant _
_Après _
Traitement des SetupIntents avec processSetupIntent
Remplacer les étapes collecter et confirmer en deux temps par un appel de méthode processSetupIntent unique.
_Avant _
_Après _
Prise en charge de la variante asynchrone Swift
Le SDK fournit désormais des variantes asynchrones pour les méthodes Terminal. Vous pouvez écrire un code plus propre et séquentiel au lieu d’imbriquer des gestionnaires de complétion.
_Avant _
let cancelable = Terminal.shared.collectPaymentMethod(paymentIntent, collectConfig: collectConfig) { collectedPaymentIntent, collectError in guard let collectedPaymentIntent = collectedPaymentIntent else { // Payment method collection failed return } Terminal.shared.confirmPaymentIntent(collectedPaymentIntent) { confirmedPaymentIntent, confirmError in // Handle confirmation } }
_Après _
let collectTask = Task { do { let collectedIntent = try await Terminal.shared.collectPaymentMethod(paymentIntent, collectConfig: collectConfig) let confirmedIntent = try await Terminal.shared.confirmPaymentIntent(collectedIntent) // Payment successful } catch { // Handle error } } // Use collectTask.cancel() to cancel the operation when needed
Plateforme et initialisation
Mise à jour Initialisation du terminal
La méthode setTokenProvider a été supprimée. Vous devez maintenant initialiser le SDK avec la méthode statique Terminal. avant d’accéder au singleton Terminal..
_Avant _
_Après _
Détection et connexion du lecteur
Mise à jour de l’initialisation de DiscoveryConfiguration
Vous ne pouvez plus initialiser les objets DiscoveryConfiguration directement avec Init ou New. Vous devez désormais utiliser leurs classes de génération associées.
_Avant _
_Après _
Gérer les changements d’état de reconnexion
Une nouvelle valeur . a été ajoutée à l’énumération ConnectionStatus. Lors d’une reconnexion, Terminal. aura désormais une valeur null jusqu’à ce que la reconnexion aboutisse.
_Avant _
_Après _
Acceptation des paiements et recouvrement des données
L’annulation par le client est désormais activée par défaut.
Sur les lecteurs pris en charge, la possibilité pour les clients d’annuler des transactions est désormais activée par défaut. La propriété customerCancellation est passée d’un état Bool à la nouvelle énumération SCPCustomerCancellation.
_Avant _
_Après _
Mises à jour des paramètres remboursement Interac
Si vous créez des SCPRefundParameters pour un remboursement Interac à l’aide d’un ID PaymentIntent, vous devez désormais également transmettre la clé secrète du client de la PaymentIntent. Vous pouvez également continuer à utiliser l’ID de facturation, qui ne nécessite pas la clé secrète du client.
_Avant _
_Après _