Guide de migration du SDK Terminal V3
Découvrez comment migrer vers la version 3.0.0 du SDK de 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 3.0.0
Voici quelques éléments à retenir concernant les SDK 3.0.0 de Stripe Terminal pour iOS et Android :
- Prise en charge du traitement des paiements hors ligne Preview
- La fonctionnalité en mode hors ligne est en version bêta privée. Pour demander l’accès, veuillez envoyer un e-mail à stripe-terminal-betas@stripe.com. Une fois que nous aurons activé les modifications dans le back-end de votre compte, vous devez vous déconnecter puis vous reconnecter à votre lecteur à l’aide du SDK pour que la configuration mise à jour soit prise en compte.
- Mises à jour vers les versions minimales des plateformes prises en charge pour iOS et Android
- Suppression des fonctionnalités et propriétés obsolètes
Si votre application utilise actuellement une version du SDK Terminal iOS antérieure à 3.0.0, vous devez procéder à quelques modifications pour effectuer la mise à niveau et accepter les paiements avec carte présente dans le monde entier. Pour obtenir une liste détaillée des modifications apportées entre la version 2.23.1 et la version 3.0.0, veuillez consulter le journal des modifications du SDK.
Mettre à jour votre version minimale prise en charge vers iOS 13 ou une version ultérieure
Nous mettons régulièrement à jour la version minimale prise en charge de nos SDK afin d’offrir la meilleure expérience à nos développeurs.
Les versions 2.X existantes du SDK Terminal iOS continueront de prendre en charge les appareils exécutant iOS 11 et versions ultérieures.
Mettre à jour votre utilisation de DiscoveryConfiguration en fonction de l’implémentation spécifique de DiscoveryConfiguration
Afin de permettre la configuration de différentes méthodes de détection, SCPDiscoveryConfiguration est désormais un protocole mis en œuvre par plusieurs types différents. Plutôt que d’avoir à fournir une DiscoveryMethod, vous avez désormais le choix entre différentes classes pour rechercher un type de lecteur spécifique :
Classe de configuration | Utilisation |
---|---|
SCPBluetoothScanDiscoveryConfiguration | Lecteurs compatibles Bluetooth à proximité de cet appareil iOS |
SCPBluetoothProximityDiscoveryConfiguration | Un sous-ensemble de lecteurs compatibles Bluetooth à proximité de cet appareil iOS |
SCPInternetDiscoveryConfiguration | Lecteurs connectés à Internet enregistrés sur ce compte |
SCPLocalMobileDiscoveryConfiguration | Tap to Pay à l’aide du lecteur NFC de cet appareil iOS |
Créez la configuration de détection appropriée pour la méthode de détection de votre choix à l’aide de la classe de génération fournie, puis fournissez-la à discoverReaders
. Le générateur expose des paramètres pour les propriétés que chaque configuration prend en charge.
Mise à jour de votre utilisation de discoverReaders et de connectReader
- L’annulation de
discoverReaders
entraîne désormais l’appel du bloc de finalisation comportant une erreur avec le codeSCPErrorCanceled
, comme toutes les autres méthodes annulables. discoverReaders
se termine désormais correctement lorsqueconnectReader
est appelé. SiconnectReader
échoue, votre intégration doit effectuer un nouvel appel àdiscoverReaders
pour reprendre la détection des lecteurs.- Il n’est plus nécessaire que
discoverReaders
soit en cours d’exécution pour queconnectReader
fonctionne. Vous pouvez désormais appelerconnectReader
avec une instance de lecteur précédemment détectée ou réessayer de vous connecter sans redémarrerdiscoverReaders
.
Mettre à jour votre implémentation ReconnectionDelegate
SCPReconnectionDelegate
fournit désormais l’instance du lecteur reconnecté au lieu de l’instance de Terminal. Si vous avez implémenté ce protocole auparavant, vous devez remplacer terminal
dans les noms de méthodes par reader
.
Mise à jour de l’utilisation des classes de paramètres et de configuration pour utiliser les générateurs
Les classes d’entrée comme SCPCollectConfiguration
et SCPPaymentIntentParameters
sont désormais immuables, et des outils de création associés sont fournis pour les créer. Tous ces outils disposent d’une méthode de génération qui permet de valider les entrées et de créer la classe qu’ils génèrent.
- Dans Swift,
build()
renvoie des erreurs et doit être vérifié à cet égard. - En Objective-C, vous fournissez un paramètre de sortie
NSError **
pour recevoir l’erreur, le cas échéant.
Éliminer toute dépendance à l’égard de SCPErrorBusy
SCPErrorBusy
est supprimé. Dans le SDK 3.0.0 et les versions ultérieures, si vous appelez une méthode Terminal alors qu’une autre est encore en cours, les nouveaux appels sont désormais mis en file d’attente. Les commandes sont exécutées une fois toutes les commandes précédentes terminées. Si vous procédiez au suivi de l’état pour éviter les erreurs SCPErrorBusy
ou mettiez vos propres commandes en file d’attente pour contourner SCPErrorBusy
, vous pouvez désormais utiliser la file d’attente de commandes pour simplifier votre code. Si votre application s’appuyait sur SCPErrorBusy
pour savoir si une commande était en cours d’exécution, vérifiez votre code pour voir si cela peut poser problème avec la mise en file d’attente d’un trop grand nombre de commandes.
Consulter la prise en charge des paiements hors ligne
La valeur de SCPPaymentIntent.
est nulle pour les paiements hors ligne. Si votre intégration prend uniquement en charge les paiements en ligne, le stripeId
sera toujours présent et aucune modification ne sera nécessaire hormis les vérifications pour confirmer la présence de l’ID. Veuillez consulter la section relative à l’encaissement des paiements par carte en mode hors ligne pour en savoir plus sur le traitement hors ligne des paiements.
Mise à jour de vos appels de processus pour confirmer
SCPTerminal.
est renommé SCPTerminal.
et SCPTerminal.
est renommé SCPTerminal.
. Les paramètres de ces méthodes n’ont pas changé, mais les types d’erreurs ont également été renommés SCPConfirmPaymentIntentError
et SCPConfirmRefundError
respectivement.
Mise à jour de votre readReusableCard par des SetupIntents
SCPTerminal.
is removed. SetupIntents are the recommended path for saving payment methods without charging. SetupIntents follow a similar pattern to PaymentIntents where you create, collect, and then confirm the SetupIntent in the SDK. See Save payment details for online re-use for more details.