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 marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
AperçuAccepter un paiementMettre votre intégration à niveau
Paiements en ligne
PrésentationTrouver votre cas d'usage
Utiliser Payment Links
Créer une page de paiement
Créer une intégration personnalisée avec Elements
Développer une intégration dans l'application
Utiliser Managed Payments
Utiliser Checkout Studio
Paiements récurrents
Paiements par TPE
Aperçu de Terminal
Disponibilité
Lecteurs
No-code
Intégration personnalisée
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
    Présentation
    Moyens de paiement 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
Opérations de paiement
Analyses
Soldes et délai de règlement
Conformité et sécurité
Devises
Refus de paiement
Litiges
Radar pour la protection contre la fraude
Virements
ReçusRemboursements et annulations
Intégrations avancées
Tunnels de paiement personnalisés
Acquisition flexible
Paiements hors session
Orchestration multiprestataire
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Vérifier l'identité
France
Français (France)
  1. Accueil/
  2. Paiements/
  3. Faster checkout with Link

Créer une page de paiement personnalisée incluant Link

Intégrez Link à l’aide du composant Element Payment ou Contact Details.

Ce guide vous explique comment accepter des paiements avec Link à l’aide de l’API Payment Intents et soit du composant Element Payment, soit du composant Element Contact Details.

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.
  • Composant Element Contact Details : vous pouvez utiliser le composant Element Contact Details 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. Nous recommandons cette méthode si vous utilisez le composant Element Address.
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
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'

Créer un PaymentIntent
Côté serveur

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

Diagramme illustrant l'ensemble du tunnel de paiement

Si vous collectez des informations de carte pour une utilisation future, consultez Configurer des paiements futurs.

Lorsque vous créez un PaymentIntent, proposez de manière dynamique à vos clients les moyens de paiement les plus pertinents, y compris Link, en utilisant des moyens de paiement dynamiques. Pour utiliser des moyens de paiement dynamiques, n’incluez pas le paramètre payment_method_types.

Remarque

Lorsque votre intégration ne définit pas le paramètre payment_method_types, certains moyens de paiement sont activés automatiquement, notamment les cartes et les portefeuilles.

Pour ajouter Link à votre intégration d’éléments en utilisant des moyens de paiement dynamiques :

  1. Dans les paramètres moyens de paiement de votre Dashboard, activez Link.
  2. Si vous disposez d’une intégration existante qui répertorie manuellement les moyens de paiement, supprimez le paramètre payment_method_types de votre intégration.

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

Le PaymentIntent 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
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {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 e-mails 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 Element Payment, la collecter directement dans le composant Element Payment ou utiliser le composant Element Contact Details. Stripe vous recommande, si possible, de transmettre l’adresse e-mail du client au composant Element Payment.

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 Element Contact Details, Payment et Address (facultatif).

Une page de paiement sur laquelle Link est activé comprend le composant Element Contact Details, suivi du composant Element Address et enfin du composant Element Payment. Vous pouvez également afficher le composant Element Contact Details 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 Element Contact Details 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, il envoie au client un code unique sécurisé sur son téléphone pour l’authentification. Si l’authentification du client aboutit, Stripe affiche automatiquement les adresses et les moyens de paiement enregistrés avec Link pour qu’il puisse les utiliser.

Cette intégration crée également le composant Element Payment, qui affiche un formulaire dynamique permettant à votre client de choisir un type de 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 Element Payment gère également l’affichage des moyens de paiement enregistrés avec 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 obtenue à l’étape précédente. Si vous avez déjà collecté l’adresse e-mail du client ailleurs dans le formulaire, remplacez le champ de saisie existant par le composant ContactDetailsElement​.

Si vous ne collectez pas l’adresse e-mail, ajoutez le ContactDetailsElement à votre tunnel de paiement. Vous devez placer le ContactDetailsElement avant le ShippingAddressElement (facultatif si vous collectez des adresses de livraison) et le PaymentElement pour { % $link.brand_name %} pour remplir automatiquement les données sauvegardées avec { % $link.brand_name %} pour votre client dans le ShippingAddressElement et le PaymentElement. Vous pouvez également définir l’option d’apparence, en personnalisant les composants Element pour qu’ils correspondent au design de votre site.

Si vous avez l’adresse e-mail du client, transmettez-la à l’option defaultValues du ContactDetailsElement. Cela préremplit leur adresse e-mail et lance le processus d’authentification { % $lien.brand_name %}.

Si vous avez d’autres informations clients, transmettez-les à l’objet defaultValues.billingDetails pour le PaymentElement. Préremplir autant d’informations que possible simplifie la création et la réutilisation du compte { % $lien.brand_name %} pour vos clients.

Puis, affichez les composants ContactDetailsElement et PaymentElement dans votre formulaire de paiement :

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, ContactDetailsElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_oKhSR5nslBRnBZpjO6KuzZeX'
); // 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 ContactDetailsElement, PaymentElement et ShippingAddressElement ne doivent pas nécessairement figurer sur la même page. Si votre processus prévoit que les coordonnées du client, les informations de livraison et les informations de paiement s’affichent au client à des étapes distinctes, vous pouvez afficher chaque composant Element à l’étape ou sur la page appropriée. Intégrez le ContactDetailsElement en tant que formulaire de saisie de l’adresse e-mail à l’étape de collecte des coordonnées pour vous assurer que le client tire pleinement parti des fonctionnalités de remplissage automatique de la livraison et du paiement offertes par Link.

Si vous collectez l’adresse e-mail de votre client à l’aide du composant Element Contact Details 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 ContactDetailsElement. 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.

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

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

Le composant Element Contact Details accepte une adresse e-mail. Fournir l’adresse e-mail d’un client déclenche le flux d’authentification Link dès qu’il accède à la page de paiement à l’aide de l’option defaultValues.

<ContactDetailsElement 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 paiement à Stripe
Côté client

Utilisez stripe.confirmPayment pour mener à bien le paiement à l’aide des informations collectées auprès de votre client grâce aux différents formulaires Elements. Fournissez une return_url à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois le paiement effectué.

Votre utilisateur peut être d’abord redirigé vers un site intermédiaire, comme la page d’autorisation de sa banque, avant d’être redirigé vers votre page return_url.

Par défaut, les paiements bancaires et les paiements par carte redirigent immédiatement le client vers la return_url une fois le paiement abouti. Si vous ne voulez pas le rediriger vers la return_url, vous pouvez modifier le comportement par défaut en utilisant if_required.

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_oKhSR5nslBRnBZpjO6KuzZeX'
); 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.confirmPayment({ 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> ); }

La return_url correspond à une page de votre site Web qui indique l’état du paiement du PaymentIntent au moment d’afficher la page de redirection. Lorsque Stripe redirige le client vers cette return_url, vous pouvez utiliser les paramètres de requête d’URL suivants afin de vérifier l’état du paiement. Vous pouvez également ajouter vos propres paramètres de requête lorsque vous fournissez votre return_url. Ils seront conservés tout au long du processus de redirection.

ParamètreDescription
payment_intentIdentifiant unique du PaymentIntent
payment_intent_client_secretLa clé secrète du client de l’objet PaymentIntent.

FacultatifAutorisation et capture distinctes
Côté serveur

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

Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez un webhook pour recevoir ces événements et exécuter des actions en conséquence, telles que l’envoi d’une confirmation de commande par e-mail à votre client, l’enregistrement de la vente dans une base de données ou encore le lancement d’un flux de livraison.

Configurez votre intégration de manière à écouter ces événements plutôt que d’attendre un rappel de votre client. Lorsque vous attendez, 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. 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 l’événement payment_intent.succeeded, vous pouvez également gérer deux autres événements lorsque vous encaissez des paiements à l’aide du composant Element Payment :

ÉvénementDescriptionAction
payment_intent.succeededEnvoyé depuis Stripe lorsqu’un client a effectué un paiement avec succès.Envoyez au client une confirmation de commande et traitez sa commande.
payment_intent.payment_failedEnvoyé depuis Stripe lorsqu’un client a fait une tentative de paiement qui s’est soldée par un échec.Si un paiement passe de l’état processing à payment_failed, proposez au client de retenter le paiement.

Tester l'intégration

Mise en garde

Ne stockez pas de données d’utilisateur réelles sur des comptes environnement de test Link. En effet, ces données sont à considérer comme publiques étant donné que vos comptes 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 effectués à partir d’un compte bancaire américain éligible. Link requiert un enregistrement de domaine.

Vous pouvez créer des comptes 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 environnement de 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 complexes 3DS2 dan sun environnement de test avec Link, utilisez la carte de test suivante avec n’importe quel CVC, code postal et date d’expiration ultérieure : .

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.

FacultatifAfficher les données enregistrées par le client
Côté serveurCôté client

FacultatifSave Link payment methods
Côté serveurCôté client

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

  • Quel est Link
  • Link avec Elements
  • Link dans le composant Payment Element
  • Explorez le composant Element Contact Details
  • Link dans différentes intégrations de paiement
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Discutez par chat sur Discord avec les développeurs de Stripe.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc
Sur cette page