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
Outils de développement
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
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
Web Elements
Elements intégrés à l'application
Scénarios de paiement
Tunnels de paiement personnalisés
    Présentation
    Paiements pour les clients existants
    Autoriser et capturer un paiement séparément
    Développer une expérience de confirmation à deux facteurs
    Collecter les informations de paiement avant de créer un Intent
    Finaliser les paiements sur le serveur
    Accepter des commandes par courrier et par téléphone (MOTO)
    Cartes bancaires américaines et canadiennes
      Enregistrer des cartes bancaires sans authentification
      Mettre à niveau pour gérer l'authentification
    Transférer des informations de carte bancaires vers des endpoints d'API tiers
    Postes de paiement
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Autres produits Stripe
Financial Connections
Cryptomonnaies
Climate
AccueilPaiementsCustom payment flowsUS and Canadian cards

Enregistrer une carte bancaire sans authentification

Collectez des informations de carte bancaire et débitez votre client plus tard.

Copier la page

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.

Collecter les informations de carte bancaire
Côté client

Avant d’utiliser ce guide, il vous faut un compte Stripe. Inscrivez-vous.

Créez une page de paiement pour collecter les informations de carte de vos clients. Utilisez Stripe Elements, notre bibliothèque d’interface utilisateur conçue pour vous aider à créer des formulaires de paiement personnalisés. Pour démarrer avec Elements, incluez la bibliothèque Stripe.js avec le script suivant sur votre page de paiement.

<script src="https://js.stripe.com/v3/"></script>

Chargez toujours Stripe.js directement à partir de js.stripe.com pour maintenir votre conformité PCI. Vous ne devez pas inclure le script dans un lot ni en héberger de copie.

Pour tirer au mieux parti de la fonctionnalité avancée de lutte contre la fraude de Stripe, ajoutez ce script à chaque page de votre site, pas uniquement à celle dédiée au règlement. Ajouter le script à chaque page permet à Stripe de détecter tout comportement suspect susceptible d’indiquer une fraude lorsque les utilisateurs consultent votre site web.

Ajouter Elements à votre page

Afin de recueillir les informations de carte bancaire de vos clients en toute sécurité, Elements crée pour vous des composants d’interface hébergés par Stripe, qui sont ensuite placés dans votre formulaire de paiement. Vous n’avez ainsi pas à le faire. Pour définir où ces composants doivent être insérés, créez des éléments DOM (contenants) vides associés à des identifiants uniques dans votre formulaire de paiement.

index.html
<input id="cardholder-name" type="text"> <!-- placeholder for Elements --> <div id="card-element"></div> <div id="card-result"></div> <button id="card-button">Save Card</button>

Exemples d'Elements

Consultez les exemples de formulaires de paiement créés avec Elements sur GitHub.

Créez ensuite une instance de l’objet Stripe en indiquant comme premier paramètre votre clé API publiable. Puis, créez une instance de l’objet Elements et utilisez-la pour intégrer un Element card au DOM.

Le composant Element card simplifie le formulaire de paiement et réduit le nombre de champs requis en insérant un champ de saisie flexible unique qui collecte toutes les informations de carte nécessaires, en toute sécurité.

Vous pouvez également combiner les composants Elements cardNumber, cardExpiry et cardCvc pour créer un formulaire de carte multi-saisie flexible.

Remarque

Recueillez toujours un numéro de code postal afin d’améliorer vos taux d’acceptation des cartes bancaires et de réduire la fraude.

Le composant Card Element à une seule ligne recueille automatiquement le code postal du client et l’envoie à Stripe. Si vous créez votre formulaire de paiement avec des Elements fractionnés (Numéro de carte, Expiration, CVC, ajoutez un champ de saisie distinct pour le code postal du client.

client.js
const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements(); const cardElement = elements.create('card'); cardElement.mount('#card-element');

Un composant Element contient une balise iframe qui envoie de manière sécurisée les informations de paiement à Stripe via une connexion HTTPS. Pour que votre intégration fonctionne, l’adresse de votre page de règlement doit aussi commencer par https:// au lieu de http://.

Vous pouvez tester votre intégration sans utiliser le protocole HTTPS. Activez-le au moment d’accepter des paiements en mode production.

client.js
Afficher l'exemple dans son intégralité
const cardholderName = document.getElementById('cardholder-name'); const cardButton = document.getElementById('card-button'); const resultContainer = document.getElementById('card-result'); cardButton.addEventListener('click', async (ev) => { const {paymentMethod, error} = await stripe.createPaymentMethod({ type: 'card', card: cardElement, billing_details: { name: cardholderName.value, }, } ); if (error) { // Display error.message in your UI. resultContainer.textContent = error.message; } else { // You have successfully created a new PaymentMethod resultContainer.textContent = "Created payment method: " + paymentMethod.id; } });

Envoyez l’identifiant PaymentMethod qui en résulte à votre serveur.

Configurer Stripe
Côté serveur

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

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'

Enregistrer la carte bancaire
Côté serveur

Enregistrez la carte en associant le PaymentMethod à un objet Customer. Vous pouvez utiliser l’objet Customer pour sauvegarder d’autres informations concernant le client, telles que des détails d’expédition 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 du Client 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

Lorsque vous êtes prêt(e), cherchez l’identifiant du PaymentMethod et celui du Client à débiter. Vous pouvez le faire soit en sauvegardant les deux identifiants dans votre base de données, soit en utilisant l’identifiant Client pour rechercher tous les PaymentMethods disponibles du 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’identifiant du PaymentMethod et celui de l’objet Customer pour créer un nouveau PaymentIntent. Définissez error_on_requires_action sur « true » pour refuser les paiements qui nécessitent des actions de la part de l’utilisateur, comme 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 e-mail) afin de terminer le paiement. Consultez le code d’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 provides test cards you can use in a sandbox to simulate different cards’ behavior. Use these cards with any CVC, postal code, and expiry date in the future.

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

Mettez à niveau votre intégration pour prendre en charge l’authentification des 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 sur le Dashboard, cela veut dire qu’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