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 Android Terminal 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 les logs de modifications du SDK.
Intégration simplifiée des paiements
Mise à jour vers le traitement des paiements unifié
Le SDK v5 introduit des méthodes simplifiées 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 nouvelles 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 des coroutines Kotlin
Pour les développeurs Kotlin, un nouveau module facultatif stripeterminal-ktx fournit des wrappers de fonctions de suspension pour les API Terminal asynchrones.
Remarque
Ajoutez cette dépendance : implementation(« com.
_Avant _
Terminal.getInstance().discoverReaders(config, object : DiscoveryListener { override fun onUpdateDiscoveredReaders(readers: List<Reader>) { val selectedReader = readers[0] Terminal.getInstance().connectReader(selectedReader, connectionConfig, object : ReaderCallback { override fun onSuccess(reader: Reader) { // Handle successful connection } override fun onFailure(e: TerminalException) { // Handle connection failure } }) } })
_Après _
// Add dependency: implementation("com.stripe:stripeterminal-ktx:5.0.0") coroutineScope { try { val readers = Terminal.getInstance().discoverReaders(discoveryConfig) .filter { it.isNotEmpty() } .first() val selectedReader = readers.first() val reader = Terminal.getInstance().connectReader(selectedReader, connectConfig) // Handle successful connection } catch(e: TerminalException) { // Handle failures on discovery or connect } }
Plateforme et initialisation
Mise à jour Initialisation du terminal
La méthode Terminal. a été renommée Terminal.. Elle nécessite désormais un paramètre OfflineListener annulable.
_Avant _
_Après _
Détection et connexion du lecteur
Gérer les changements d’état de reconnexion
Une nouvelle valeur RECONNECTING a été ajoutée à l’énumération ConnectionStatus. Lors de la connexion initiale, Terminal. aura la valeur null jusqu’à ce que la tentative de connexion aboutisse.
_Avant _
_Après _
Connexion simplifiée avec easyConnect
Pour les lecteurs intelligents, Tap to Pay et les intégrations d’applications sur appareils, vous pouvez désormais utiliser Terminal., qui combine la détection et la connexion en un seul appel de méthode.
_Avant _
_Après _
Filtrage de détection lecteur Internet
La détection de lecteur Internet prend désormais en charge le filtrage par ID de lecteur ou numéro de série. Définissez la propriété discoveryFilter sur InternetDiscoveryConfiguration, pour découvrir un lecteur spécifique.
_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 Android, la possibilité pour les clients d’annuler des transactions est désormais activée par défaut. Vous pouvez désactiver cette fonctionnalité en définissant customerCancellation sur DISABLE_.
_Avant _
_Après _
Mises à jour des paramètres remboursement Interac
Si vous créez des RefundParameters 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 _
Mettre à jour votre intégration Apps on Devices
Les coordonnées Maven de la fonctionnalité Apps on Devices sont désormais com.. Mettez à jour vos dépendances pour pointer vers le nouvel artefact. Stripe ne mettra plus à jour l’ancien artefact handoffclient.
Nous avons renommé toutes les classes Handoff en AppsOnDevices afin de mieux décrire les fonctionnalités associées.
_Avant _
_Après _
Renommer les classes Handoff en AppsOnDevices
Nous avons renommé toutes les classes Handoff en AppsOnDevices pour la configuration de découverte, la configuration de connexion, les écouteurs et les fournisseurs de tokens.
_Avant _
_Après _
Mise à jour de l’intégration Tap to Pay sur Android
Exigences du système
Tap to Pay sur Android 5.0.0 et ses versions ultérieures nécessitent que votre appareil Android fonctionne sous Android 13 ou toute version ultérieure.
Cette version exige également que le KeyStore de votre appareil Android prenne en charge les contrats de clés garantis par le matériel. Cela est vérifié automatiquement pour vous par supportsReadersOfType(), mais peut également être vérifié en s’assurant que la version FEATURE_ de votre appareil est 100 ou supérieure. Cette exigence dépendant des capacités matérielles d’un appareil, il est donc possible qu’elle ne soit pas satisfaite par les appareils qui ont été initialement proposés sous Android 12 ou inférieur, même s’ils ont été mis à niveau pour répondre à l’exigence d’exécution d’Android 13. Cette nouvelle exigence signifie que les appareils comme la Samsung Galaxy Tab Active4 Pro ne sont plus pris en charge dans les versions 5.0.0 et supérieures du SDK.
Pour les environnements de production, la découverte du lecteur échoue avec une erreur TAP_ si les options développeur, le débogage USB ou Wi-Fi, ou d’autres options de débogage sont activées sur l’appareil. Cela ne s’applique pas à l’utilisation du lecteur Tap to Pay simulé.
Refonte de la configuration TapZone
La classe TapToPayUxConfiguration. a été remaniée. Les champs indicateur et position sont remplacés par un objet TapZone unique.
_Avant _
_Après _