Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
Développer une intégration dans l'application
Paiements par TPE
Terminal
    Présentation
    Accepter les paiements par TPE
    Disponibilité mondiale
    Conception d'intégration
    Choisir votre lecteur
    Concevoir une intégration
    Démarrage rapide
    Exemples d'applications
    Tests
    Configuration de Terminal
    Configurer votre intégration
    Paiements à plusieurs parties avec Connect
    Se connecter à un lecteur
    Acceptation d'un paiement
    Encaisser des paiements par carte
    Autres moyens de paiement
    Accepter les paiements hors ligne
    Paiement des commande par courrier/par téléphone
    Spécificités régionales
    Lors du règlement
    Collecter des pourboires
    Collecter et enregistrer des informations de paiement pour une utilisation ultérieure
    Autorisations flexibles
    Après le paiement
    Rembourser des transactions
    Fournir des reçus
    Personnalisez Checkout
    Affichage du panier
    Collecter les données saisies à l'écran
    Collecter les données des lectures de la piste magnétique
    Collecter les données des paiements NFC sans contact
    Applications sur des appareils
    Gérer les lecteurs
    Commander, renvoyer ou remplacer des lecteurs
    Enregistrer des lecteurs
    Gérer les emplacements et les zones
    Configurer des lecteurs
    Suivre les lecteurs
    Références
    Documentation de l'API
    Lecteurs mobiles
    Lecteurs intelligents
    Lecteurs Tap to Pay
    Guide de migration du SDK
      Guide de migration vers SDK v4
      Guide de migration du SDK v3
    Liste de contrôle pour le déploiement
    Fiches produit du lecteur Stripe Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsTerminal

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 _

Swift
Objective-C
No results
// Step 1: Collect payment method Terminal.shared.collectPaymentMethod(paymentIntent, collectConfig: collectConfig) { collectedPaymentIntent, collectError in guard let collectedPaymentIntent = collectedPaymentIntent else { // Payment method collection failed return } // Step 2: Confirm the payment Terminal.shared.confirmPaymentIntent(collectedPaymentIntent) { confirmedPaymentIntent, confirmError in if let confirmedPaymentIntent = confirmedPaymentIntent { // Payment successful } else { // Payment confirmation failed } } }

_Après _

Swift
Objective-C
No results
// Process and confirm the payment in one step Terminal.shared.processPaymentIntent(paymentIntent, collectConfig: collectConfig) { processedPaymentIntent, processError in if let processedPaymentIntent = processedPaymentIntent { // Payment successful } else { // Payment failed } }

Traitement des remboursements avec processRefund

Les méthodes collectRefundPaymentMethod et confirmRefund sont désormais obsolètes. Utilisez plutôt processRefund.

_Avant _

Swift
Objective-C
No results
// Step 1: Collect refund payment method Terminal.shared.collectRefundPaymentMethod(refundParams) { collectError in guard collectError == nil else { // Refund collection failed return } // Step 2: Confirm the refund Terminal.shared.confirmRefund { refund, confirmError in if let refund = refund { // Refund successful } else { // Refund confirmation failed } } }

_Après _

Swift
Objective-C
No results
// Process the refund in one step Terminal.shared.processRefund(refundParams) { refund, refundError in if let refund = refund { // Refund successful } else { // Refund failed } }

Traitement des SetupIntents avec processSetupIntent

Remplacer les étapes collecter et confirmer en deux temps par un appel de méthode processSetupIntent unique.

_Avant _

Swift
Objective-C
No results
// Step 1: Collect setup intent payment method Terminal.shared.collectSetupIntentPaymentMethod(setupIntent, customerConsentCollected: true) { collectedSetupIntent, collectError in guard let collectedSetupIntent = collectedSetupIntent else { // Setup intent collection failed return } // Step 2: Confirm the setup intent Terminal.shared.confirmSetupIntent(collectedSetupIntent) { confirmedSetupIntent, confirmError in if let confirmedSetupIntent = confirmedSetupIntent { // Setup intent successful } else { // Setup intent confirmation failed } } }

_Après _

Swift
Objective-C
No results
// Configure with allowRedisplay let config = try CollectSetupIntentConfigurationBuilder() .setAllowRedisplay(.always) .build() // Process the setup intent in one step Terminal.shared.processSetupIntent(setupIntent, collectConfig: config) { processedSetupIntent, setupError in if let processedSetupIntent = processedSetupIntent { // Setup intent successful } else { // Setup intent failed } }

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.initWithTokenProvider(_tokenProvider:) avant d’accéder au singleton Terminal.shared.

_Avant _

Swift
Objective-C
No results
// In your AppDelegate or scene delegate Terminal.setTokenProvider(yourTokenProvider)

_Après _

Swift
Objective-C
No results
// In your AppDelegate or scene delegate, at app launch Terminal.initWithTokenProvider(yourTokenProvider)

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 _

Swift
Objective-C
No results
let config = SCPInternetDiscoveryConfiguration(isSimulated: true)

_Après _

Swift
Objective-C
No results
let config = InternetDiscoveryConfiguration.Builder() .setSimulated(true) .build()

Gérer les changements d’état de reconnexion

Une nouvelle valeur .reconnecting a été ajoutée à l’énumération ConnectionStatus. Lors d’une reconnexion, Terminal.shared.connectedReader aura désormais une valeur null jusqu’à ce que la reconnexion aboutisse.

_Avant _

Swift
Objective-C
No results
func terminal(_ terminal: Terminal, didChange connectionStatus: ConnectionStatus) { switch connectionStatus { case .notConnected: // Handle not connected case .connected: // Handle connected @unknown default: break } }

_Après _

Swift
Objective-C
No results
func terminal(_ terminal: Terminal, didChange connectionStatus: ConnectionStatus) { switch connectionStatus { case .notConnected: // Handle not connected case .connected: // Handle connected case .reconnecting: // Handle reconnection in progress @unknown default: break } }

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 _

Swift
Objective-C
No results
let collectConfig = try CollectConfigurationBuilder() .setEnableCustomerCancellation(false) .build()

_Après _

Swift
Objective-C
No results
let collectConfig = try CollectPaymentIntentConfigurationBuilder() .setCustomerCancellation(.disableIfAvailable) .build()

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 _

Swift
Objective-C
No results
let refundParams = try RefundParametersBuilder( paymentIntentId: "pi_123", amount: 1000, currency: "cad" ).build()

_Après _

Swift
Objective-C
No results
let refundParams = try RefundParametersBuilder( paymentIntentId: "pi_123", clientSecret: "pi_123_secret_abc", amount: 1000, currency: "cad" ).build()
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc