Accéder directement au contenu
Créez un compte
ou
connectez-vous
Le logo de la documentation Stripe
/
Demander à l’IA
Créer un compte
Connectez-vous
Commencer
Paiements
Revenus
Plateformes et places de marché
Gestion des fonds
Ressources de développement
Aperçu
À propos des paiements Stripe
    Aperçu
    Accepter un paiement
    Devises
    Refus de paiement
    Virements
    Paiements récurrents
    Authentification 3D Secure
    Remboursement et annulation des paiements
    Soldes et délai de règlement
    Reçus
    Gérer les événements de webhook
    Préparation à la SCA
    API plus anciennes
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
AperçuTrouver 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
Moyens de paiement
Ajout de moyens de paiement
Gérer les moyens de paiement
Payer plus rapidement avec Link
Interfaces de paiement
Payment Links
Paiement
Web Elements
Paiements dans l’application
Scénarios de paiement
Gérez plusieurs devises
Flux de paiement personnalisés
Acquisition flexible
Orchestration
Paiements en personne
Terminal
Au-delà des paiements
Constituer son entreprise
Cryptomonnaie
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gérer les litiges
Vérifier l'identité
AccueilPaiementsAbout Stripe payments

Accepter un paiement

Acceptez les paiements en ligne en toute sécurité.

Créez un formulaire de paiement ou utilisez une page de paiement préconfigurée pour commencer à accepter les paiements en ligne.

Intégrez l’interface utilisateur de paiement préconfigurée de Stripe au processus de paiement de votre application iOS avec la classe PaymentSheet. Consultez notre exemple d’intégration sur GitHub.

Configurer Stripe
Côté serveur
Côté client

Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.

Côté serveur

Pour cette intégration, votre serveur doit disposer de points de terminaison qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles pour accéder à l’API Stripe à partir de votre serveur :

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Côté client

La trousse SDK iOS de Stripe est à code source libre et possède une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.

Pour installer la trousse SDK, suivez les étapes ci-après :

  1. Dans Xcode, sélectionnez File (Fichier) > Add Package Dependencies… (Ajouter des dépendances de paquet…), puis saisissez https://github.com/stripe/stripe-ios-spm comme URL du référentiel.
  2. Sélectionnez la dernière version dans notre page des versions.
  3. Ajoutez le produit StripePaymentSheet à la cible de votre application.

Remarques

Pour plus de détails sur la version la plus récente de la trousse SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir des notifications lors de la publication d’une nouvelle version, suivez les versions du référentiel.

Activer les moyens de paiement

Accédez aux paramètres des moyens de paiement et activez les moyens de paiement que vous souhaitez prendre en charge. Vous devez activer au moins un moyen de paiement pour créer un PaymentIntent.

Par défaut, Stripe active les cartes et les autres modes de paiement courants qui peuvent vous permettre d’atteindre davantage de clients. Nous vous recommandons toutefois d’activer d’autres modes de paiement pertinents pour votre entreprise et vos clients. Consultez la page Prise en charge des modes de paiement pour en savoir plus sur la prise en charge des produits et des modes de paiement, et notre page de tarification pour prendre connaissance des frais que nous appliquons.

Ajouter un point de terminaison
Côté serveur

Remarque

Pour afficher PaymentSheet avant de créer un PaymentIntent, consultez la Collecter les détails du paiement avant de créer un Intent.

Cette intégration utilise trois objets de l’API Stripe :

  1. PaymentIntent : Pour représenter votre intention d’encaisser le paiement d’un client, Stripe utilise cet objet qui suit les tentatives de débit et les changements d’état du paiement tout au long du processus.

  2. (Facultatif) Client : Pour configurer un mode de paiement pour les paiements futurs, vous devrez l’associer à un client. Créez un objet Customer lorsque votre client crée un compte auprès de votre entreprise. Si votre client effectue un paiement en tant qu’invité, vous pourrez créer un objet Customer avant le paiement, puis l’associer ultérieurement à votre représentation interne du compte du client.

  3. (Facultatif) Clé éphémère du client : L’objet Customer contient des informations sensibles qu’il n’est pas possible de récupérer directement à partir d’une application. Une clé éphémère permet d’accorder à la trousse SDK un accès temporaire à l’objet Customer.

Remarques

Si vous n’enregistrez jamais les cartes des clients et que vous n’autorisez pas vos clients réguliers à réutiliser les cartes enregistrées, vous pourrez exclure les objets Customer et Customer Ephemeral Key de votre intégration.

Pour des raisons de sécurité, votre application ne peut pas créer ces objets. Ajoutez plutôt un point de terminaison sur votre serveur qui :

  1. Récupère l’objet Customer ou en crée un nouveau.
  2. Crée une clé éphémère pour l’objet Customer.
  3. Création d’un PaymentIntent avec les paramètres amount, currency, customer. Vous pouvez également inclure le paramètre automatic_payment_methods. Stripe active sa fonctionnalité par défaut dans la dernière version de l’API.
  4. Renvoi de la clé secrète du client du Payment Intent, de l’objet secret de la clé éphémère, de l’id du client et de votre clé publiable à votre application.

Les modes de paiement présentés aux clients lors du processus de paiement sont également compris dans le PaymentIntent. Les modes de paiement peuvent être récupérés par Stripe à partir de vos paramètres Dashboard, ou vous pouvez les ajouter manuellement. Quelle que soit l’option que vous choisissez, sachez que la devise transmise dans le PaymentIntent filtre les modes de paiement présentés au client. Par exemple, si vous transmettez eur dans le PaymentIntent et que vous avez activé OXXO dans le Dashboard, OXXO ne sera pas présenté au client, car OXXO ne prend pas en charge les paiements eur.

À moins que votre intégration ne nécessite du code pour la présentation des modes de paiement, Stripe vous recommande l’option automatisée. En effet, Stripe évalue la devise, les restrictions sur les modes de paiement et d’autres paramètres pour déterminer la liste des modes de paiement pris en charge. Les modes de paiement qui augmentent le taux de conversion et qui sont les plus pertinents pour la devise et le lieu de résidence du client sont priorisés.

Remarques

Vous pouvez dupliquer et déployer une mise en œuvre de ce point de terminaison sur CodeSandbox pour le tester.

Vous pouvez gérer les moyens de paiement à partir du Dashboard. Stripe gère le retour des moyens de paiement admissibles en fonction de facteurs tels que le montant, la devise et le flux de paiement de la transaction. Le PaymentIntent est créé à l’aide des moyens de paiement configurés dans le Dashboard. Si vous ne souhaitez pas utiliser le Dashboard ou si vous souhaitez préciser des moyens de paiement manuellement, vous pouvez les répertorier à l’aide de l’attribut payment_method_types.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Create a Customer (use an existing Customer ID if this is a returning customer) curl https://api.stripe.com/v1/customers \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" # Create an Ephemeral Key for the Customer curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-09-30.clover" \ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ # Create a PaymentIntent curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="eur" \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \

Collecter les informations de paiement
Côté client

Pour afficher le Mobile Payment Element dans votre page de paiement, assurez-vous d’effectuer ce qui suit :

  • Afficher les produits achetés par le client ainsi que le montant total
  • Utilisez Address Element pour collecter toutes les informations de livraison requises auprès du client.
  • Ajouter un bouton de paiement pour afficher l’interface utilisateur de Stripe

Dans la page de paiement de votre application, récupérez la clé secrète du client de l’PaymentIntent, la clé secrète éphémère, l’ID du client et la clé publiable à partir du point de terminaison créé à l’étape précédente. Définissez votre clé publiable à l’aide de StripeAPI.shared et initialisez PaymentSheet.

import UIKit import StripePaymentSheet class CheckoutViewController: UIViewController { @IBOutlet weak var checkoutButton: UIButton! var paymentSheet: PaymentSheet? let backendCheckoutUrl = URL(string: "Your backend endpoint/payment-sheet")! // Your backend endpoint override func viewDidLoad() { super.viewDidLoad() checkoutButton.addTarget(self, action: #selector(didTapCheckoutButton), for: .touchUpInside) checkoutButton.isEnabled = false // MARK: Fetch the PaymentIntent client secret, Ephemeral Key secret, Customer ID, and publishable key var request = URLRequest(url: backendCheckoutUrl) request.httpMethod = "POST" let task = URLSession.shared.dataTask(with: request, completionHandler: { [weak self] (data, response, error) in guard let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any], let customerId = json["customer"] as? String, let customerEphemeralKeySecret = json["ephemeralKey"] as? String, let paymentIntentClientSecret = json["paymentIntent"] as? String, let publishableKey = json["publishableKey"] as? String, let self = self else { // Handle error return } STPAPIClient.shared.publishableKey = publishableKey // MARK: Create a PaymentSheet instance var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "Example, Inc." configuration.customer = .init(id: customerId, ephemeralKeySecret: customerEphemeralKeySecret) // Set `allowsDelayedPaymentMethods` to true if your business handles // delayed notification payment methods like US bank accounts. configuration.allowsDelayedPaymentMethods = true self.paymentSheet = PaymentSheet(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) DispatchQueue.main.async { self.checkoutButton.isEnabled = true } }) task.resume() } }

Lorsque le client touche le bouton Paiement, faites appel à present pour afficher la PaymentSheet. Une fois que le client a effectué le paiement, Stripe ferme la PaymentSheet et appelle le bloc de finalisation avec PaymentSheetResult.

@objc func didTapCheckoutButton() { // MARK: Start the checkout process paymentSheet?.present(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Your order is confirmed") case .canceled: print("Canceled!") case .failed(let error): print("Payment failed: \(error)") } } }

Si la valeur de PaymentSheetResult est .completed, informez l’utilisateur (par exemple, en affichant un écran de confirmation de commande).

Si vous définissez allowsDelayedPaymentMethods à true, les modes de paiement à notification différée, comme les comptes bancaires américains, seront acceptés. Pour ces modes de paiement, l’état final du paiement n’est pas connu à la fin de la PaymentSheet. À la place, il réussit ou échoue plus tard. Si vous prenez en charge ces types de modes de paiement, informez le client que sa commande est confirmée et ne la traitez (par exemple, n’expédiez son produit) qu’une fois le paiement reçu.

Configurer une URL de redirection
Côté client

Le client peut être amené à quitter votre application pour s’authentifier (par exemple, dans Safari ou dans son application bancaire). Pour lui permettre de revenir automatiquement sur votre application après s’être authentifié, configurez un schéma d’URL personnalisé et configurez votre délégué d’application pour qu’il transmette l’URL à la trousse SDK. Stripe ne prend pas en charge les liens universels.

SceneDelegate.swift
Swift
No results
// This method handles opening custom URL schemes (for example, "your-app://stripe-redirect") func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } let stripeHandled = StripeAPI.handleURLCallback(with: url) if (!stripeHandled) { // This was not a Stripe url – handle the URL normally as you would } }

Définissez également le paramètre returnURL correspondant à votre objet PaymentSheet.Configuration sur l’URL de votre application.

var configuration = PaymentSheet.Configuration() configuration.returnURL = "your-app://stripe-redirect"

Gérer les événements post-paiement
Côté serveur

Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez l’outil de webhook du Dashboard ou suivez le guide sur les webhooks pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par courriel à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.

Écoutez ces événements plutôt que d’attendre un rappel de votre client. Du côté client, il arrive en effet que l’utilisateur ferme la fenêtre de son navigateur ou quitte l’application avant même l’exécution du rappel, et des clients malveillants pourraient manipuler la réponse. En configurant votre intégration de manière à ce qu’elle écoute les événements asynchrones, vous pourrez accepter plusieurs types de moyens de paiement avec une seule intégration.

En plus de gérer l’événement payment_intent.succeeded, nous vous recommandons de gérer les autres événements suivants lorsque vous encaissez des paiements à l’aide du Payment Element :

ÉvénementDescriptionAction
payment_intent.succeededEnvoyé lorsqu’un client a effectué un paiement.Envoyez au client une confirmation de commande et traitez sa commande.
payment_intent.processingEnvoyé lorsqu’un client a entrepris un paiement, mais qu’il ne l’a pas encore finalisé. Dans la plupart des cas, cet événement est envoyé lorsque le client entreprend un prélèvement bancaire. Il est suivi par un événement payment_intent.succeeded ou payment_intent.payment_failed.Envoyez au client une confirmation de commande qui indique que son paiement est en attente. Pour des marchandises dématérialisées, nous vous recommandons de traiter la commande sans attendre que le paiement soit effectué.
payment_intent.payment_failedEnvoyé lorsqu’un client tente d’effectuer un paiement, mais que le paiement échoue.Si un paiement passe de l’état processing à l’état payment_failed, proposez au client de retenter le paiement.

Tester l'intégration

Numéro de carteScénarioComment tester
Le paiement par carte est réussi et ne nécessite pas d’authentification.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
Le paiement par carte requiert une authentification.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
La carte est refusée avec un code de refus de type insufficient_funds.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
Le numéro de carte UnionPay a une longueur variable de 13 à 19 chiffres.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.

Consultez la section Test pour obtenir des informations supplémentaires sur la manière de tester votre intégration.

FacultatifActiver Link

Activez Link dans vos paramètres de moyens de paiement pour permettre à vos clients d’enregistrer et de réutiliser leurs informations de paiement en toute sécurité à l’aide du bouton de paiement express en un clic de Link.

Transmettez le courriel de votre client au Payment Element pour mobile

Link authentifie un client à l’aide de son adresse courriel. Stripe recommande de remplir automatiquement autant d’informations que possible pour simplifier le processus de paiement.

Pour remplir automatiquement le nom, l’adresse courriel et le numéro de téléphone du client, fournissez à defaultBillingDetails les informations de votre client après avoir initialisé PaymentSheet.Configuration.

var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.name = "Jenny Rosen" configuration.defaultBillingDetails.email = "jenny.rosen@example.com" configuration.defaultBillingDetails.phone = "888-888-8888"

FacultatifActiver Apple Pay

Remarques

Si votre écran de paiement comporte un bouton Apple Pay dédié, suivez les instructions du guide pour Apple Pay et utilisez ApplePayContext pour encaisser le paiement à partir du bouton Apple Pay. Vous pouvez utiliser le paramètre PaymentSheet pour gérer d’autres types de moyens de paiement.

Demander un ID de marchand Apple

Pour obtenir un ID de marchand Apple, demandez un nouvel identifiant sur le site Web Apple Developer.

Renseignez le formulaire en indiquant une description et un identifiant. La description n’est destinée qu’à votre propre information et vous pourrez la modifier ultérieurement au besoin. En ce qui concerne l’identifiant, Stripe vous recommande d’utiliser le nom de votre application (par exemple, merchant.com.{{YOUR_APP_NAME}}).

Créer un nouveau certificat Apple Pay

Créez un certificat permettant à votre application de chiffrer les données de paiement.

Accédez aux paramètres des certificats iOS dans le Dashboard, cliquez sur Ajouter une nouvelle application et suivez le guide.

Téléchargez un fichier de demande de signature de certificat (CSR) pour obtenir un certificat sécurisé auprès d’Apple qui vous permet d’utiliser Apple Pay.

Un fichier CSR doit être utilisé pour émettre exactement un certificat. Si vous changez votre identifiant Apple Merchant ID, vous devez accéder aux paramètres de certificat iOS du Dashboard pour obtenir un nouveau CSR et un nouveau certificat.

Réaliser une intégration avec Xcode

Ajoutez la fonctionnalité Apple Pay à votre application. Dans Xcode, ouvrez les paramètres de votre projet, cliquez sur l’onglet Signing & Capabilities (Signature et fonctionnalités), et ajoutez la fonctionnalité Apple Pay. On pourrait alors vous demander de vous connecter à votre compte de développeur. Sélectionnez l’ID du marchand que vous venez de créer, et votre application peut maintenant accepter Apple Pay.

Activer la fonctionnalité Apple Pay dans Xcode

Ajouter Apple Pay

Pour ajouter Apple Pay à PaymentSheet, configurez applePay après avoir lancé PaymentSheet.Configuration avec votre ID de marchand Apple et le code pays de votre entreprise.

var configuration = PaymentSheet.Configuration() configuration.applePay = .init( merchantId: "merchant.com.your_app_name", merchantCountryCode: "US" )

Suivi des commandes

Pour ajouter des informations de suivi de commande dans iOS 16 ou version ultérieure, configurez un authorizationResultHandler dans votre PaymentSheet.ApplePayConfiguration.Handlers. Stripe appelle votre implémentation une fois le paiement effectué, mais avant qu’iOS ne ferme la fiche Apple Pay.

Dans votre déploiement authorizationResultHandler, récupérez les détails de la commande finalisée sur votre serveur. Ajoutez les détails au PKPaymentAuthorizationResult fourni et appelez le gestionnaire d’achèvement fourni.

Pour en savoir plus sur le suivi des commandes, consultez la documentation documentation sur les commandes du portefeuille numérique Apple.

let customHandlers = PaymentSheet.ApplePayConfiguration.Handlers( authorizationResultHandler: { result, completion in // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: orderID) { myOrderDetails result.orderDetails = PKPaymentOrderDetails( orderTypeIdentifier: myOrderDetails.orderTypeIdentifier, // "com.myapp.order" orderIdentifier: myOrderDetails.orderIdentifier, // "ABC123-AAAA-1111" webServiceURL: myOrderDetails.webServiceURL, // "https://my-backend.example.com/apple-order-tracking-backend" authenticationToken: myOrderDetails.authenticationToken) // "abc123" // Call the completion block on the main queue with your modified PKPaymentAuthorizationResult completion(result) } } ) var configuration = PaymentSheet.Configuration() configuration.applePay = .init(merchantId: "merchant.com.your_app_name", merchantCountryCode: "US", customHandlers: customHandlers)

FacultatifActiver le balayage de carte

Pour que vous puissiez utiliser la numérisation des cartes, définissez le paramètre NSCameraUsageDescription (Confidentialité – Description de l’utilisation de l’appareil photo) dans le fichier Info.plist de votre application et expliquez la raison pour laquelle vous devez accéder à l’appareil photo (« Pour numériser des cartes », par exemple). Les appareils équipés d’iOS 13 ou version ultérieure prennent en charge la numérisation des cartes.

FacultatifActiver les paiements ACH

Intégrez StripeFinancialConnections en tant que dépendance pour votre application afin d’activer les paiements par prélèvements ACH.

La trousse SDK iOS de Stripe est à code source libre et possède une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.

Pour installer la trousse SDK, suivez les étapes ci-après :

  1. Dans Xcode, sélectionnez File (Fichier) > Add Package Dependencies… (Ajouter des dépendances de paquet…), puis saisissez https://github.com/stripe/stripe-ios-spm comme URL du référentiel.
  2. Sélectionnez la dernière version dans notre page des versions.
  3. Ajoutez le produit StripeFinancialConnections à la cible de votre application.

Remarques

Pour plus de détails sur la version la plus récente de la trousse SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir des notifications lors de la publication d’une nouvelle version, suivez les versions du référentiel.

FacultatifPersonnaliser la feuille

Pour personnaliser le formulaire de paiement, vous devez obligatoirement utiliser l’objet PaymentSheet.Configuration.

Appearance

Personnalisez les couleurs, les polices et plus encore afin de les adapter à l’apparence de votre application à l’aide de l’API Appearance.

Présentation des modes de paiement

Configurez la mise en page des modes de paiement dans la feuille à l’aide de paymentMethodLayout. Vous pouvez les afficher horizontalement, verticalement ou laisser Stripe optimiser la mise en page automatiquement.

var configuration = PaymentSheet.Configuration() configuration.paymentMethodLayout = .automatic

Collecter les adresses des utilisateurs

Collectez les adresses de livraison ou de facturation locales et internationales à l’aide du composant Address Element.

Nom d’affichage du marchand

Précisez un nom d’entreprise pour le client en définissant merchantDisplayName. Par défaut, il s’agit du nom de votre application.

var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "My app, Inc."

Mode sombre

PaymentSheet s’ajuste automatiquement aux paramètres d’affichage du système de l’utilisateur (mode clair et mode sombre). Si votre application ne prend pas en charge le mode sombre, vous pouvez définir la propriété style sur le mode alwaysLight ou alwaysDark.

var configuration = PaymentSheet.Configuration() configuration.style = .alwaysLight

Informations de facturation par défaut

Pour définir des valeurs par défaut pour les informations de facturation collectées dans la feuille de paiement, configurez la propriété defaultBillingDetails. PaymentSheet pré-remplit ses champs avec les valeurs que vous fournissez.

var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"

Collecte des informations de facturation

Utilisez billingDetailsCollectionConfiguration pour spécifier la façon dont vous souhaitez collecter les informations de facturation dans le formulaire de paiement.

Vous pouvez recueillir le nom, l’adresse de courriel, le numéro de téléphone et l’adresse de votre client.

Si vous souhaitez uniquement indiquer les informations de facturation requises par le mode de paiement, définissez billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod à true. Dans ce cas, le paramètre PaymentSheet.Configuration.defaultBillingDetails est défini comme les informations de facturation du mode de paiement.

Si vous souhaitez collecter des informations de facturation supplémentaires qui ne sont pas nécessairement requises pour le moyen de paiement, définissez billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod sur false. Dans ce cas, les informations de facturation collectées via la PaymentSheet sont définies comme les informations de facturation du moyen de paiement.

var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.email = "foo@bar.com" configuration.billingDetailsCollectionConfiguration.name = .always configuration.billingDetailsCollectionConfiguration.email = .never configuration.billingDetailsCollectionConfiguration.address = .full configuration.billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod = true

Remarques

Consultez votre conseiller juridique au sujet des lois qui s’appliquent à la collecte de renseignements. Ne collectez les numéros de téléphone que si vous en avez besoin pour la transaction.

FacultatifGérer la déconnexion de l'utilisateur

PaymentSheet sauvegarde certaines informations localement pour se rappeler si un utilisateur a utilisé Link dans une application. Pour effacer l’état interne de PaymentSheet, effectuez un appel à la méthode PaymentSheet.resetCustomer() lorsque votre utilisateur se déconnecte.

import UIKit import StripePaymentSheet class MyViewController: UIViewController { @objc func didTapLogoutButton() { PaymentSheet.resetCustomer() // Other logout logic required by your app } }

FacultatifFinaliser le paiement dans votre interface utilisateur

Vous pouvez présenter le formulaire de paiement pour la seule collecte des données du moyen de paiement, puis appeler une méthode confirm pour mener à bien l’opération de paiement dans l’interface utilisateur de votre application. Cette approche est utile si vous avez intégré un bouton d’achat personnalisé ou si des étapes supplémentaires sont nécessaires après la collecte des informations de paiement.

Finaliser le paiement dans l’interface utilisateur de votre application

Les étapes suivantes vous expliquent comment effectuer un paiement dans l’interface utilisateur de votre application. Consultez notre exemple d’intégration sur GitHub.

  1. Tout d’abord, initialisez PaymentSheet.FlowController plutôt que PaymentSheet et mettez à jour votre interface utilisateur avec sa propriétépaymentOption. Cette propriété contient une image et une étiquette représentant le moyen de paiement par défaut initialement sélectionné par le client.
PaymentSheet.FlowController.create(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) { [weak self] result in switch result { case .failure(let error): print(error) case .success(let paymentSheetFlowController): self?.paymentSheetFlowController = paymentSheetFlowController // Update your UI using paymentSheetFlowController.paymentOption } }
  1. Appelez ensuite presentPaymentOptions pour collecter les données de paiement. Une fois l’opération effectuée, mettez à nouveau à jour votre interface utilisateur avec la propriété paymentOption.
paymentSheetFlowController.presentPaymentOptions(from: self) { // Update your UI using paymentSheetFlowController.paymentOption }
  1. Enfin, appelez confirm.
paymentSheetFlowController.confirm(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Payment complete!") case .canceled: print("Canceled!") case .failed(let error): print(error) } }

Si vous définissez allowsDelayedPaymentMethods à true, les modes de paiement à notification différée, comme les comptes bancaires américains, seront acceptés. Pour ces modes de paiement, l’état final du paiement n’est pas connu à la fin de la PaymentSheet. À la place, il réussit ou échoue plus tard. Si vous prenez en charge ces types de modes de paiement, informez le client que sa commande est confirmée et ne la traitez (par exemple, n’expédiez son produit) qu’une fois le paiement reçu.

FacultatifActiver la récupération du code CVC lors de la confirmation

Les instructions suivantes pour collecter à nouveau le CVC d’une carte enregistrée pendant la confirmation du PaymentIntent supposent que votre intégration comprend les éléments suivants :

  • Création des PaymentIntents avant la collecte des informations de paiement

Mettre à jour les paramètres de création de l’Intent

Pour collecter à nouveau le CVC lors de la confirmation du paiement, ajoutez require_cvc_recollection lors de la création du PaymentIntent.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Create a Customer (use an existing Customer ID if this is a returning customer) curl https://api.stripe.com/v1/customers \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" # Create an Ephemeral Key for the Customer curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-09-30.clover" \ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ # Create a PaymentIntent curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="eur" \ -d "payment_method_options[card][require_cvc_recollection]"=true \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \
Cette page vous a-t-elle été utile?
OuiNon
  • Besoin d'aide? Contactez le service d'assistance.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre journal des modifications.
  • Des questions? Contactez l'équipe commerciale.
  • GML? Lire llms.txt.
  • Optimisé par Markdoc
Code quickstart
Guides associés
API Elements Appearance
Plus de scénarios de paiement
Fonctionnement des cartes