Finaliser les paiements sur le serveur
Hosted Invoice Page isn't compatible with ConfirmationTokens
You can’t yet use the Hosted Invoice Page on a PaymentIntent or SetupIntent that you first confirmed using a ConfirmationToken. This applies if you intend to use ConfirmationTokens to confirm a PaymentIntent or SetupIntent from a Subscription, and you need to collect payment asynchronously through the Hosted Invoice Page after the initial confirmation fails.
Le composant Element Payment vous permet d’accepter plusieurs moyens de paiement à l’aide d’une seule intégration. Cette intégration permet de créer un tunnel de paiement personnalisé, où vous pourrez afficher le composant Element Payment, créer un PaymentIntent et confirmer le paiement depuis votre serveur.
Configurer StripeCô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 :
Activer des moyens de paiement
Mise en garde
Stripe ne prend actuellement pas en charge BLIK pour ce chemin d’intégration.
Affichez vos 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 bancaires et les autres moyens de paiement courants qui peuvent vous permettre d’atteindre davantage de clients. Nous vous recommandons toutefois d’activer d’autres moyens de paiement pertinents pour votre entreprise et vos clients. Consultez la page des options d’intégration des moyens de paiement pour découvrir les produits et moyens de paiement pris en charge, et la page des tarifs pour prendre connaissance des frais que nous appliquons.
Recueillir les informations de paiementCôté client
Vous êtes prêt à recueillir les informations de paiement de votre client à l’aide du composant Element Payment, un composant préconfiguré de l’interface utilisateur qui simplifie cette collecte pour de nombreux moyens de paiement.
Le composant Payment Element contient un iframe qui envoie les informations de paiement à Stripe de manière sécurisée via une connexion HTTPS. Évitez de placer le Payment Element dans un autre iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour la confirmation du paiement.
Pour que votre intégration fonctionne, l’adresse de la page de paiement doit commencer par https://
et non par http://
. Vous pouvez tester votre intégration sans utiliser le protocole HTTPS, mais n’oubliez pas de l’activer lorsque le moment sera venu d’accepter les paiements en mode production.
Le composant Element Payment affiche un formulaire dynamique qui permet à votre client de choisir un moyen de paiement. Le formulaire collecte automatiquement toutes les informations de paiement nécessaires pour le moyen de paiement sélectionné par le client.
Vous pouvez personnaliser l’Element Payment pour l’adapter au design de votre site en transmettant l’objet Appearance dans les options
lors de la création du fournisseur Elements
.
Collecter les adresses
Par défaut, le composant Payment Element ne collecte que les informations nécessaires relatives à l’adresse de facturation. Si vous souhaitez obtenir l’adresse de facturation (par exemple, pour calculer la taxe sur les biens et services numériques) ou l’adresse de livraison complètes d’un client, utilisez le composant Address Element.
Créer le ConfirmationTokenCôté client
Use createPaymentMethod through a legacy implementation
If you’re using a legacy implementation, you might be using the information from stripe.createPaymentMethod
to finalize payments on the server. While we encourage you to follow this guide to Migrate to Confirmation Tokens you can still access our old documentation to Finalize payments on the server
Lorsque le client envoie votre formulaire de paiement, appelez stripe.createConfirmationToken
pour créer un ConfirmationToken à envoyer à votre serveur et appliquer une logique métier ou une validation supplémentaire avant la confirmation du paiement.
La confirmation du PaymentIntent génère un objet PaymentMethod. Vous pouvez lire l’ID du payment_method à partir de la réponse de confirmation du PaymentIntent .
Mise en garde
Vous devez immédiatement utiliser l’objet ConfirmationToken ainsi créé pour confirmer un PaymentIntent. S’il n’est pas utilisé, il expire au bout de 12 heures.
Créer et envoyer le paiement à StripeCôté serveur
Lorsque le client envoie votre formulaire de paiement, utilisez un PaymentIntent pour faciliter le processus de confirmation et de paiement. Créez un PaymentIntent sur votre serveur en spécifiant les attributs amount
et currency
. Dans la dernière version de l’API, la spécification du paramètre automatic_payment_methods
est facultative, car Stripe active sa fonctionnalité par défaut. Vous pouvez gérer les moyens de paiement depuis le Dashboard. Stripe gère le l’affichage des moyens de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le tunnel de paiement. Pour éviter que des clients malveillants ne choisissent eux-mêmes leurs tarifs, décidez toujours du montant à débiter côté serveur (un environnement sécurisé) plutôt que côté client.
Vous pouvez utiliser le ConfirmationToken envoyé par votre client pour créer et confirmer le PaymentIntent en une seule requête.
const stripe = require("stripe")(
); const express = require('express'); const app = express(); app.set('trust proxy', true); app.use(express.json()); app.use(express.static(".")); app.post('/create-confirm-intent', async (req, res) => { try { const intent = await stripe.paymentIntents.create({ confirm: true, amount: 1099, currency: 'usd', // In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, confirmation_token: req.body.confirmationTokenId, // the ConfirmationToken ID sent by your client }); res.json({ client_secret: intent.client_secret, status: intent.status }); } catch (err) { res.json({ error: err }) } }); app.listen(3000, () => { console.log('Running on port 3000'); });"sk_test_4eC39HqLyjWDarjtT1zdp7dc"
Gérer les actions suivantesCôté client
Si le PaymentIntent exige une action supplémentaire de la part du client, par exemple l’authentification 3D Secure ou la redirection vers un autre site, vous devez déclencher ces actions. Utilisez stripe.handleNextAction
pour déclencher l’interface utilisateur afin de gérer l’action du client et d’effectuer le paiement.