Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
Développer une intégration avancée
Développer une intégration dans l'application
    Présentation
    Payment Sheet
    Composant Payment Element intégré
    Utiliser les redirections pour les achats intégrés à l'application
    Collecter les adresses
    Cartes bancaires américaines et canadiennes
      Enregistrer des cartes bancaires sans authentification
      Mettre à niveau pour gérer l'authentification
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Elements pour le web
Elements intégrés à l'application
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Financial Connections
Climate
AccueilPaiementsBuild an in-app integrationUS and Canadian cards

Enregistrer une carte bancaire sans authentification

Recueillez les informations de carte dans votre application mobile et débitez votre client ultérieurement.

Stripe vous permet de recueillir les informations de la carte de votre client afin de la débiter ultérieurement. Dans certaines régions, les banques exigent souvent une deuxième forme d’authentification pour effectuer un paiement, par exemple en saisissant un code envoyé sur un téléphone. Cette étape supplémentaire tend à diminuer le taux de conversion. En effet, si votre client n’utilise pas activement votre site Web ou votre application il ne pourra pas authentifier l’achat.

Si vous exercez vos activités commerciales principalement aux États-Unis et au Canada où les banques n’exigent pas d’authentification, vous pouvez adopter cette intégration plus simple. Cette intégration ne sera pas conforme dans les pays nécessitant une authentification pour l’enregistrement des cartes (par exemple l’Inde). Par conséquent, si vous optez pour cette intégration, il vous faudra y apporter des modifications importantes si vous voulez vous étendre à d’autres pays ou ajouter d’autres moyens de paiement. Apprenez comment enregistrer les cartes nécessitant une authentification.

Conformité

Lorsque vous enregistrez les informations de paiement d’un client, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles du réseau en vigueur. C’est notamment le cas si vous souhaitez enregistrer le moyen de paiement d’un client en vue d’une utilisation ultérieure, par exemple pour le débiter à un moment où il n’utilise pas activement votre site Web ou votre application. Dans les conditions d’utilisation de votre application ou de votre site Web, précisez la façon dont vous comptez enregistrer les informations du moyen de paiement, puis invitez le client à accepter ces conditions. Si vous prévoyez de débiter votre client lorsqu’il est hors ligne, veillez à inclure à vos conditions les éléments suivants :

  • Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées.
  • Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements se font par versements échelonnés, par recharges non programmées, ou s’il s’agit d’abonnements).
  • La façon dont vous déterminez le montant à payer.
  • Vos conditions de résiliation, si le moyen de paiement est utilisé dans le cadre d’un abonnement.

Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client.

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

Tout d’abord, vous avez besoin d’un compte Stripe. Inscrivez-vous dès maintenant.

Avant d’amorcer votre intégration, configurez les SDK Stripe pour iOS et le serveur.

Côté serveur

Cette intégration exige des endpoints sur votre serveur qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles :

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Côté client

Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.

Pour installer le SDK, veuillez suivre les étapes ci-dessous :

  1. Dans Xcode, sélectionnez File > Add Package Dependencies… puis saisissez https://github.com/stripe/stripe-ios-spm en tant qu’URL du référentiel.
  2. Sélectionnez le dernier numéro de version, visible sur notre page des versions.
  3. Ajoutez le produit StripePaymentsUI à la cible de votre application.

Remarque

Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.

Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.

AppDelegate.swift
Swift
import UIKit import StripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Remarque

Utilisez vos clés de test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.

Collecter les informations de carte bancaire
Côté client

Commencez par présenter un formulaire de paiement à votre client. Collectez ses informations de carte bancaire à l’aide de STPPaymentCardTextField, un composant d’interface utilisateur prêt à l’emploi fourni par le SDK et qui recueille le numéro de carte bancaire, la date d’expiration, le CVC et le code postal.

Le STPPaymentCardTextField se charge de la validation et du formatage en temps réel.

Transmettez les informations de carte à createPaymentMethod pour créer une PaymentMethod.

CheckoutViewController.swift
Swift
class CheckoutViewController: UIViewController { lazy var cardTextField: STPPaymentCardTextField = { let cardTextField = STPPaymentCardTextField() return cardTextField }() @objc func pay() { // Collect card details on the client STPAPIClient.shared.createPaymentMethod(with: cardTextField.paymentMethodParams) { [weak self] paymentMethod, error in guard let paymentMethod = paymentMethod else { // Display the error to the user return } let paymentMethodId = paymentMethod.stripeId // Send paymentMethodId to your server for the next steps } } }

Envoyez l’identifiant PaymentMethod qui en résulte à votre serveur et suivez le reste des étapes pour enregistrer la carte du client et débiter la carte à l’avenir.

Enregistrer la carte bancaire
Côté serveur

Enregistrez la carte en associant le PaymentMethod à un objet Customer. Vous pouvez utiliser l’objet Customer pour enregistrer d’autres données concernant l’utilisateur, telles que des informations de livraison et l’adresse e-mail.

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d payment_method={{PAYMENT_METHOD_ID}}

Si vous avez un Client existant, vous pouvez joindre le PaymentMethod plutôt à cet objet.

Command Line
cURL
curl https://api.stripe.com/v1/payment_methods/{{PAYMENT_METHOD_ID}}/attach \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}

À ce stade, associez l’identifiant de l’objet Customer et l’identifiant du PaymentMethod à votre propre représentation interne d’un client, si vous en avez une.

Débitez la carte enregistrée
Côté serveur

Au moment de débiter votre client, recherchez l’ID du PaymentMethod à débiter, soit en sauvegardant les deux ID dans votre base de données, soit en utilisant l’ID de l’objet Customer pour rechercher tous les objets PaymentMethod correspondant à ce client.

Command Line
cURL
curl -G https://api.stripe.com/v1/payment_methods \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d type=card

Utilisez l’ID PaymentMethod et l’ID Customer pour créer un PaymentIntent. Définissez error_on_requires_action sur true pour refuser les paiements qui exigent une action de la part de votre client, telle que l’authentification à deux facteurs.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d customer=
{{CUSTOMER_ID}}
\ -d payment_method={{PAYMENT_METHOD_ID}} \ -d error_on_requires_action=true \ -d confirm=true

Lorsqu’une tentative de paiement échoue, la requête échoue également avec un code d’état HTTP 402 et Stripe renvoie une erreur. Vous devez inviter l’utilisateur à retourner dans votre application (par exemple en lui envoyant un message au sein de l’application) afin de terminer le paiement. Consultez le code de l’erreur généré par la bibliothèque d’API de Stripe ou le paramètre last_payment_error.decline_code du PaymentIntent pour déterminer le motif du refus du paiement par l’émetteur de la carte.

Gérer les erreurs de carte bancaire

Informez votre client que le paiement a échoué et dirigez-le vers le formulaire de paiement que vous avez créé dans l’étape 1 où il peut saisir les informations d’une nouvelle carte. Envoyez ce nouvel identifiant PaymentMethod à votre serveur à joindre à l’objet Customer et effectuez de nouveau le paiement.

Vous pouvez également créer un PaymentIntent et enregistrer une carte en un seul appel à l’API si vous avez déjà créé un Client.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d customer=
{{CUSTOMER_ID}}
\ -d payment_method={{PAYMENT_METHOD_ID}} \ -d error_on_requires_action=true \ -d confirm=true \ -d setup_future_usage=on_session

Le réglage de setup_future_usage sur on_session indique à Stripe que vous souhaitez conserver la carte pour plus tard, sans déclencher d’authentification inutile.

Tester l'intégration

Stripe fournit des cartes de test que vous pouvez utiliser dans un environnement de test pour simuler le comportement de différentes cartes bancaires. Utilisez ces cartes avec n’importe quel CVC, code postal et date d’expiration non échue.

NuméroDescription
Transaction réussie et paiement effectué immédiatement.
Échoue toujours avec un code de refus de paiement insufficient_funds.
Exige l’authentification, qui dans cette intégration échouera avec un code de refus de paiement authentication_required.

FacultatifDemande à nouveau la saisie d'un CVC

Mettre à niveau votre intégration pour prendre en charge l’authentification de cartes bancaires

Cette intégration refuse les cartes qui nécessitent une authentification lors du paiement. Si vous commencez à voir de nombreux paiements à l’état Failed dans le Dashboard, il est temps de mettre à niveau votre intégration. L’intégration complète de Stripe traite ces paiements au lieu de les refuser automatiquement.

Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc