Guide de migration du SDK Terminal V4
Découvrez comment migrer vers la version 4.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
Si vous développez une nouvelle intégration Stripe Terminal, consultez la section concevoir une intégration, pour en savoir plus sur comment démarrer.
Migrer vers la version 4.0.0
Voici les éléments à retenir concernant les SDK de Stripe Terminal 4.0.0 pour iOS et Android :
- Enregistrer les détails de paiement après le paiement à l’échelle mondiale
- Les utilisateurs peuvent désormais enregistrer leurs informations de paiement après avoir effectué un paiement en dehors des États-Unis en mettant à jour le processus de collecte du consentement du client pour l’enregistrement des informations de paiement sur les appareils des points de vente.
- Prise en charge des paiements des commandes passées par correspondance et par téléphone (MOTO) sur lecteurs intelligents Version bêta
- Cette fonctionnalité est en version bêta. Pour faire une demande d’accès, envoyez un e-mail à stripe-terminal-betas@stripe.com.
- Mises à jour vers la version minimale des plateformes iOS prises en charge
- Active, par défaut, la reconnexion automatique du lecteur en cas de déconnexion inattendue pour les lecteurs mobiles et Tap to Pay
- Consolidation des fonctionnalités de connexion des lecteurs et des rappels de déconnexion pour tous les types de lecteurs
Si votre application utilise actuellement une version du SDK Terminal iOS antérieure à 4.0.0, vous devez apporter quelques modifications pour passer à une mise à niveau et accepter les paiements par carte physique dans le monde entier. Pour obtenir la liste détaillée des modifications apportées de la version 3.9.1 à la version 4.0.0, consultez le log des modifications du SDK.
Mettez à jour votre version minimale prise en charge vers iOS 14 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 3.X existantes du SDK Terminal iOS continueront de prendre en charge les appareils fonctionnant sous iOS 13 et versions ultérieures.
Mettez à jour les cartes bancaires après l’intégration de PaymentIntents
Si vous enregistrez un moyen de paiement après une PaymentIntent réussie en personne, vous devez apporter les modifications suivantes à votre intégration :
Lors de la création de PaymentIntents Terminal, transmettez le paramètre setup_future_usage, qui informe Stripe que vous souhaitez effectuer des paiements futurs avec la même carte bancaire.
Vous devez également transmettre le paramètre allow_redisplaySCPCollectConfiguration sur la valeur
toujoursou de façonlimitéedansSCPCollectConfiguration. Transmettez la valeurtoujourssi vous souhaitez que la carte enregistrée du client lui soit présentée dans tous les tunnels de paiement futurs, etde façon limitées’il ne peut l’utiliser que dans le contexte de l’utilisation initialement visée, comme un abonnement.En savoir plus sur l’enregistrement des informations de paiement après un paiement
Mise à jour des cartes enregistrées sans paiement grâce à l’intégration de SetupIntents
Pour garantir une intégration cohérente entre les SetupIntents et les PaymentIntents, ainsi qu’entre les transactions en personne et en ligne, nous avons supprimé, dans la collectSetupIntentPaymentMethod de SCPTerminal, le paramètre customerConsentCollected qui était auparavant requis pour toutes les transactions SetupIntent, et nous l’avons remplacé par le paramètre allowRedisplay.
En savoir plus sur l’épargne directe sans facturation.
Adapter votre utilisation de discoverReaders
Nous avons ajouté une nouvelle valeur d’énumération,
discoveringà SCPConnectionStatus pour représenter le moment où la détection du lecteur est en cours. Assurez-vous que votre intégration peut gérer ce nouvel état et fournir des informations pertinentes à vos clients.Nous avons amélioré la gestion de plusieurs opérations de détection simultanée de lecteurs. Auparavant, appeler discoverReadersSCPTerminal plusieurs fois mettait en file d’attente les opérations. Désormais, lorsqu’un nouveau discoverReadersSCPTerminal(im) est appelé alors qu’un existant est déjà en cours, le SDK annule l’opération en cours et renvoie une erreur SCPError CanceledDueToIntegrationError. La nouvelle opération discoverReaders démarre alors immédiatement.
La détection de lecteurs intelligents et de lecteurs Tap to Pay appelle désormais le bloc d’achèvement
discoverReadersà la fin de l’opération. Ce changement reflète le fait que la détection de ces types de lecteurs n’est pas une opération de longue durée.Nous avons corrigé un bug qui faisait fortement référence au SCPDiscoveryDelegate dans le SDK. Assurez-vous que votre application fait bien référence à votre délégué pour recevoir les événements de détection.
Mettez à jour l’utilisation des connexions de votre lecteur
Pour garantir un modèle d’intégration cohérent entre la détection et la connexion du lecteur, nous avons consolidé toutes les méthodes de connexion du lecteur précédentes (
connectBluetoothReader,connectInternetReader,connectLocalMobileReader) dans connectReader. Le type de connexion exact est toujours déterminé par la configuration de connexion transmise.Pour les lecteurs mobiles et les lecteurs Tap to Pay, le paramètre
ReaderDelegatea été supprimé de la méthodeconnectReaderet déplacé à la place dansconnectionConfig, remplaçantSCPReconnectionDelegate. À l’instar des autres types de lecteurs, le paramètreInternetConnectionConfigurationdes lecteurs intelligents s’attend désormais à ce qu’un paramètreInternetReaderDelegatelui soit transmis, ce qui permet d’alerter votre système d’intégration des événements, y compris lorsqu’un lecteur se déconnecte.
| Type de lecteur | Configuration de la connexion | Lecteur délégué |
|---|---|---|
| Lecteur mobile | SCPBluetoothConnectionConfiguration | SCPMobileReaderDelegate |
| Lecteur intelligent | SCPInternetConnectionConfiguration | SCPInternetReaderDelegate |
| Tap to Pay | SCPTapToPayConnectionConfiguration | SCPTapToPayReaderDelegate |
Avant
Après
Pour plus de détails, consultez notre documentation sur la connexion à un lecteur.
La reconnexion automatique est désormais activée par défaut pour les lecteurs mobiles et Tap to Pay
Pour augmenter la résilience de votre intégration Terminal avec les lecteurs mobiles et Tap to Pay, nous avons activé la reconnexion automatique par défaut lorsqu’un lecteur se déconnecte de manière inattendue.
We recommend displaying notifications in your app to inform the users about the reader status throughout the reconnection process. To handle reader reconnection methods, we removed the
SCPReconnectionDelegate. Its responsibilities have been integrated into the respective ReaderDelegates. UseMobileReaderDelegatefor mobile readers, andTapToPayReaderDelegatefor Tap to Pay readers to handle reconnection events.Si vous avez implémenté votre propre logique de reconnexion du lecteur et que vous souhaitez conserver ce comportement, vous pouvez désactiver la reconnexion automatique en définissant le paramètre setAutoReconnectOnUnexpectedDisconnect sur
false.
Avant
Après
Pour plus de détails et d’extrait de code, consultez la page Tentative automatique de reconnexion.
Mettez à jour la gestion de la déconnexion des lecteurs
- Pour recevoir une notification de la déconnexion d’un lecteur, nous avons consolidé les rappels de déconnexion du lecteur pour tous les types de lecteurs en supprimant le paramètre
terminal:didReportUnexpectedReaderDisconnect:à partir deSCPTerminalDelegate. Utilisezreader:didDisconnect:dans le cadre des ReaderDelegates pour être recevoir une notification de la déconnexion d’un lecteur. Pour les lecteurs mobiles, le paramètre SCPDisconnectReason peut aider à identifier la raison de la déconnexion.
Lorsque la reconnexion automatique est activée, les deux méthodes lecteurDidFailReconnect: et reader:didDisconnect: sont appelées, si le SDK ne parvient pas à se reconnecter au lecteur et qu’il se déconnecte.
Avant
Après
Pour en savoir plus, consultez notre documentation sur la gestion manuelle des déconnexions.
Mettez à jour votre intégration de l’acceptation des paiements
- Vous pouvez désormais annuler
confirmPaymentIntenten utilisant l’objetCancelablerenvoyé. Ceci est utile pour les paiements par QR code, dont le processus de confirmation est asynchrone. De même, les paramètresconfirmSetupIntentetconfirmRefundpeuvent désormais être annulés. - Nous avons amélioré la sécurité des types et la cohérence entre les SDK mobiles en mettant à jour la façon dont les
paymentMethodTypessont spécifiés dansSCPPaymentIntentParametersetSCPSetupIntentParameters. Auparavant, ce paramètre était représenté par un tableau de chaînes (par exemple, [« card_present »]). Il utilise désormais les valeurs énumérées deSCPPaymentMethodType. - Pour améliorer le flux d’annulation des PaymentIntents et des SetupIntents, l’appel de
Terminal::cancelPaymentIntentouTerminal::cancelSetupIntentannule également tout traitement de paiement en cours. Il n’est plus nécessaire d’annuler séparément les opérations de paiement telles que.avant d’annuler la PaymentIntent.collectPaymentMethod - La valeur null peut désormais être attribuée à
SCPSetupIntent., par cohérence avecstripeId SCPPaymentIntent.. Bien que la valeurstripeId stripeIdsoit toujours présente, assurez-vous que votre code gère en toute sécurité dans le cas oùSCPSetupIntent.pourrait êtrestripeId nullafin d’éviter une erreur de compilation.
Adapter l’utilisation pour le renommage et la fin de prise en charge
BluetoothReaderDelegatea été renommé enMobileReaderDelegate.- Dans
SCPReaderSoftwareUpdate,nous avons renomméSCPUpdateTimeEstimateenSCPUpdateDurationEstimateetestimatedUpdateTimeendurationEstimatepour mieux représenter leur intention. - Dans
SCPOfflineDetails, qui représente les informations de paiement disponibles lorsqu’un paiement est créé ou confirmé hors ligne, nous avons remplacé le nom du paramètrecollectedAtcorrespondant à l’heure à laquelle le paiement hors ligne a eu lieu parstoredAt, afin de nous conformer aux conventions de dénomination du SDK Terminal pour Android. - Nous avons renommé « local mobile » et « apple built in » en « Tap To Pay » dans tous les noms de fonctions et codes d’erreur du SDK.