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
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
    Présentation
    Paiements bancaires instantanés
    Klarna on Link
    Aperçu
    Link avec Checkout
    Link avec Elements pour le web
    Link avec Elements pour mobile
    Link avec Invoicing
    Guides d'intégration
    Intégrations de paiement Link
    Créer une page de paiement personnalisée incluant Link
    Configurer des paiements futurs à l'aide d'Elements et de 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
AccueilPaiementsFaster checkout with Link

Configurer des paiements futurs à l'aide d'Elements et de Link

Enregistrez les informations de vos clients Link pour les débiter ultérieurement.

Ce guide vous explique comment accepter des paiements avec Link en combinant l’API Setup Intents avec le composant Payment Element ou Link Authentication Element.

Il existe trois manières d’obtenir l’adresse e-mail d’un client pour l’authentification ou l’inscription Link :

  • Transmettre une adresse e-mail : vous pouvez transmettre une adresse e-mail au composant Payment Element à l’aide de defaultValues. Cette méthode est recommandée si vous recueillez déjà l’adresse e-mail ou le numéro de téléphone du client dans le tunnel de paiement.
  • Collecter une adresse e-mail : vous pouvez collecter une adresse e-mail directement dans le composant Payment Element. Cette méthode est recommandée si vous ne recueillez d’adresse e-mail à aucune étape du tunnel de paiement.
  • Link Authentication Element : vous pouvez utiliser le composant Link Authentication Element pour créer un champ de saisie d’adresse e-mail unique pour la collecte de l’adresse e-mail et pour l’authentification Link. Cette méthode est recommandée si vous utilisez le composant Address Element.
S'identifier ou s'inscrire auprès de Link directement dans le composant Payment Element au moment du paiement

Collecter l’adresse e-mail du client pour l’authentification ou l’inscription Link

Configurer Stripe
Côté serveur

Tout d’abord, créez un compte Stripe ou connectez-vous.

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'

Créer un client
Côté serveur

Pour configurer un moyen de paiement en vue de paiements ultérieurs, vous devez l’associer à un objet Customer. Créez un objet Customer lorsque votre client crée un compte auprès de votre entreprise. Les objets Customer permettent de réutiliser des moyens de paiement et de suivre plusieurs paiements.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Créer un SetupIntent
Côté serveur

Remarque

Si vous souhaitez afficher le Payment Element sans créer au préalable de SetupIntent, consultez la page Collecter les informations de paiement avant de créer un Intent.

Un SetupIntent est un objet qui représente votre intention, au cours d’une session, de configurer le moyen de paiement d’un client pour les paiements futurs. Il permet également de suivre l’état de la session. Sur votre serveur, créez un SetupIntent en spécifiant link et les autres moyens de paiement que vous voulez prendre en charge :

Command Line
cURL
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=card \ -d "payment_method_types[]"=link

Pour découvrir comment configurer d’autres moyens de paiement, consultez le guide Configurer des paiements futurs.

Récupérer la clé secrète du client

Le SetupIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.

Récupérez la clé secrète du client à partir d’un endpoint sur votre serveur, à l’aide de la fonction fetch du navigateur. Cette approche est recommandée si votre côté client est une application d’une seule page, en particulier si elle repose sur un framework front-end moderne tel que React. Créez l’endpoint de serveur qui gère la clé secrète du client :

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the SetupIntent {client_secret: intent.client_secret}.to_json end

Récupérez ensuite la clé secrète du client à l’aide JavaScript côté client :

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Collecter les adresses e-mail des clients

Link authentifie un client à l’aide de son adresse e-mail. En fonction de votre tunnel de paiement, vous disposez des options suivantes : transmettre une adresse e-mail au composant Payment Element, la collecter directement dans le composant Payment Element ou utiliser le composant Link Authentication Element. Stripe vous recommande, si possible, de transmettre l’adresse e-mail du client au composant Payment Element.

Si l’un de ces cas s’applique à votre situation :

  • Vous voulez un composant unique et optimisé pour la collecte des adresses e-mail et l’authentification Link.
  • Vous devez collecter l’adresse de livraison de votre client.

Utilisez le flux d’intégration qui implémente les composants Link Authentication Element, Payment Element et Address Element (facultatif).

Une page de paiement sur laquelle Link est activé comprend le composant Link Authentication Element, suivi de l’Address Element et enfin du Payment Element. Vous pouvez également afficher le Link Authentication Element sur des pages distinctes, dans le même ordre, pour les tunnels de paiement multipages.

Créer un formulaire de paiement à l'aide de plusieurs composants Elements

Créer un formulaire de paiement à l’aide de plusieurs composants Elements

L’intégration fonctionne comme suit :

Configurer votre formulaire de paiement
Côté client

Vous pouvez désormais personnaliser votre formulaire de paiement grâce aux composants d’interface utilisateur préconfigurés d’Elements. Pour que votre intégration fonctionne, l’adresse de votre page de paiement doit commencer par https:// et non par http://. Vous pouvez tester votre intégration sans utiliser le protocole HTTPS. Activez HTTPS lorsque vous êtes prêt à accepter des paiements en mode production.

Le composant Link Authentication Element affiche un champ de saisie dédié à l’adresse e-mail. Lorsque Link associe l’adresse e-mail d’un client à un compte Link existant, le client reçoit par SMS un mot de passe unique et sécurisé pour s’identifier. En cas d’authentification réussie, Stripe affiche automatiquement ses adresses et moyens de paiement enregistrés avec Link et prêts à l’emploi.

Cette intégration donne également naissance au composant Payment Element, qui affiche un formulaire dynamique dans lequel votre client choisit un moyen de paiement. Ce formulaire collecte automatiquement toutes les informations de paiement nécessaires en fonction du type de moyen de paiement sélectionné par le client. Le composant Payment Element gère également l’affichage des moyens de paiement enregistrés sur Link pour les clients authentifiés.

Configurer Stripe Elements

Installez React Stripe.js et le chargeur Stripe.js à partir du registre public npm.

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

Sur votre page de paiement, wrappez votre formulaire de paiement avec le composant Elements et transmettez la clé secrète du client définie à l’étape précédente. Si vous avez déjà collecté l’adresse e-mail du client à un autre endroit du formulaire, remplacez le champ de saisie existant par le composant linkAuthenticationElement​.

Si vous ne collectez pas l’adresse e-mail, ajoutez le composant linkAuthenticationElement​ à votre tunnel de paiement. linkAuthenticationElement doit être placé avant ShippingAddressElement (si vous collectez les adresses de livraison) et PaymentElement afin que Link puisse saisir automatiquement les informations de votre client enregistrées sur Link dans les composants ShippingAddressElement et PaymentElement. Vous pouvez également transmettre l’option d’apparence, qui permet d’adapter les Elements au design de votre site.

Si vous disposez de l’adresse e-mail du client, transmettez-la à l’option defaultValues du linkAuthenticationElement. Cela permet de remplir automatiquement son adresse e-mail et de déclencher le processus d’authentification Link.

Si vous disposez d’autres informations sur le client, transmettez-les à l’objet defaultValues.billingDetails pour le PaymentElement. Remplir automatiquement le plus d’informations possible simplifie la création et la réutilisation des comptes Link pour vos clients.

Ensuite, affichez les composants linkAuthenticationElement et PaymentElement dans votre formulaire de paiement :

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto';

Les composants linkAuthenticationElement, PaymentElement et ShippingAddressElement ne doivent pas nécessairement figurer sur la même page. Si vous présentez les coordonnées, les informations de livraison et les informations de paiement au client à des étapes distinctes, vous pouvez afficher chaque Element à l’étape ou sur la page appropriée. Intégrez le linkAuthenticationElement en tant que formulaire de saisie de l’adresse e-mail à l’étape de collecte des coordonnées afin de vous assurer que le client tire pleinement parti des fonctionnalités de remplissage automatique offertes par Link.

Si vous collectez l’adresse e-mail de votre client à l’aide de l’Element Link Authentication au début du tunnel de paiement, vous n’avez pas besoin de l’afficher de nouveau sur la page de livraison ou de paiement.

Récupérer une adresse e-mail

Vous pouvez récupérer l’adresse e-mail à l’aide de la propriété onChange dans le composant linkAuthenticationElement. Le gestionnaire onChange se déclenche dès que l’utilisateur met à jour le champ de l’adresse e-mail, ou lorsque l’adresse e-mail enregistrée d’un client est remplie automatiquement.

<linkAuthenticationElement onChange={(event) => { setEmail(event.value.email); }} />

Saisir automatiquement l’adresse e-mail d’un client

L’Element Link Authentication est dédié à la saisie d’une adresse e-mail. Le fait de fournir l’adresse e-mail d’un client déclenche le flux d’authentification Link dès que le client accède à la page de paiement à l’aide de l’option defaultValues.

<linkAuthenticationElement options={{defaultValues: {email: 'foo@bar.com'}}}/>

FacultatifPréremplir les données client supplémentaires
Côté client

FacultatifCollecter les adresses de livraison
Côté client

FacultatifPersonnaliser l'apparence
Côté client

Envoyer le SetupIntent
Côté client

Utilisez stripe.confirmSetup pour finaliser la configuration à l’aide des informations que vous avez collectées. Ajoutez une return_url à cette fonction pour que Stripe puisse rediriger l’utilisateur une fois la configuration terminée. Si un paiement Link ou par carte aboutit, Stripe redirige immédiatement le client vers la page return_url.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, // If collecting shipping AddressElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage =({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async (event) => { event.preventDefault(); const {error} = await stripe.confirmSetup({ elements, confirmParams: { return_url: "https://example.com/order/123/complete", }, }); if (error) { // handle error } }; return ( <form onSubmit={handleSubmit}> <h3>Contact info</h3> <LinkAuthenticationElement /> {/* If collecting shipping */} <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

Débiter ultérieurement le moyen de paiement enregistré
Côté serveur

Au moment de débiter votre client, utilisez l’ID des objets Customer et PaymentMethod pour créer un PaymentIntent. Pour trouver un moyen de paiement à débiter, répertoriez les moyens de paiement associés à votre client.

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

Après avoir obtenu les ID de Customer et de PaymentMethod, créez un PaymentIntent indiquant le montant et la devise du paiement, avec les paramètres suivants :

  • Assignez la valeur true à la propriété confirm du PaymentIntent, ce qui aura pour effet de générer immédiatement une confirmation lors de la création du PaymentIntent.
  • Définissez payment_method sur l’ID du PaymentMethod
  • Définissez customer sur l’ID du client.
  • Définissez off_session sur true. Si votre client doit s’authentifier alors qu’il n’utilise pas activement votre site ou votre application, le PaymentIntent enverra une erreur.
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ # 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 \ -d customer="{{CUSTOMER_ID}}" \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d return_url="https://example.com/order/123/complete" \ -d off_session=true \ -d confirm=true

Tester l'intégration

Mise en garde

Ne stockez pas de données utilisateur réelles dans des comptes Link du bac à sable. Traitez-les comme des données publiques, car ces comptes de test sont associés à votre clé publiable.

À l’heure actuelle, Link fonctionne uniquement pour les cartes de crédit, les cartes de débit et les achats admissibles effectués via un compte bancaire américain. Link nécessite un enregistrement de domaine.

Vous pouvez créer des comptes dans un environnement de test pour Link à l’aide d’une adresse e-mail valide. Le tableau suivant répertorie les codes à usage unique acceptés par Stripe pour l’authentification des comptes en mode test :

ValeurRésultat
Tout autre ensemble de 6 chiffres non listé ci-dessousOpération réussie
000001Erreur, code non valide
000002Erreur, code expiré
000003Erreur, nombre maximal de tentatives dépassé

Pour tester des moyens de paiement spécifiques, consultez les exemples de tests du composant Payment Element.

Sources de financement multiples

Dans la mesure où Stripe prend en charge des sources de financement supplémentaires, vous n’avez pas besoin de mettre à jour votre intégration. Stripe les prend en charge automatiquement avec les mêmes délais de virement de fonds et les mêmes garanties que pour les paiements par carte ou par compte bancaire.

Authentification de carte bancaire et 3D Secure

Link prend en charge l’authentification 3D Secure 2 (3DS2) pour les paiements par carte bancaire. 3DS2 impose aux clients une étape de vérification supplémentaire auprès de l’émetteur de la carte au moment du paiement. Les paiements ayant été authentifiés avec 3D Secure sont couverts par un transfert de responsabilité.

Pour déclencher les flux de demande d’authentification 3DS2 avec Link dans un environnement de test, utilisez la carte de test suivante avec n’importe quel CVC, code postal et date d’expiration future : .

Dans un environnement de test, une page d’authentification factice s’affiche pour le processus d’authentification. Sur cette page, vous pouvez autoriser ou annuler le paiement. L’autorisation du paiement simule une authentification réussie et vous redirige vers l’URL de retour spécifiée. Un clic sur le bouton Échec simule une tentative d’authentification infructueuse.

Pour obtenir plus d’informations, veuillez consulter la page dédiée à l’authentification 3D Secure.

Remarque

Lorsque vous testez les flux 3DS, seules les cartes de test pour 3DS2 déclencheront une authentification sur Link.

Divulguer Stripe à vos clients

Stripe recueille des informations sur les interactions des clients avec Elements afin de vous fournir des services, de prévenir la fraude et d’améliorer ses services. Cela inclut l’utilisation de cookies et d’adresses IP pour identifier les Elements qu’un client a vus au cours d’une même session Checkout. Vous êtes responsable de la divulgation et de l’obtention de tous les droits et consentements nécessaires pour que Stripe puisse utiliser les données à cette fin. Pour en savoir plus, visitez notre Centre de confidentialité.

Voir aussi

  • Link dans Payment Element
  • Découvrir Link Authentication Element
  • Link dans différentes intégrations de paiement
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