Configurer des paiements futurs
Pour collecter les informations de paiement du client que vous pourrez réutiliser par la suite, utilisez le mode de configuration de Checkout. Le mode de configuration utilise l’API Setup Intents pour créer des moyens de paiement.
Découvrez notre exemple de travail complet et fonctionnel sur GitHub.
Configurer StripeCôté serveur
Tout d’abord, il vous faut un compte Stripe. S’inscrire.
Utilisez nos bibliothèques officielles pour accéder à l’API de Stripe depuis votre application :
Créer une session CheckoutCôté clientCôté serveur
Ajoutez un bouton de règlement à votre site Web qui appelle un point de terminaison côté serveur pour créer une session Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
To create a setup mode Session, use the mode
parameter with a value of setup
when creating the Session. You can optionally specify the customer parameter to automatically attach the created payment method to an existing customer. Checkout uses Dynamic payment methods by default, which requires you to pass the currency parameter when using setup
mode.
Associez la variable de modèle {CHECKOUT_SESSION_ID}
à l’URL success_url
pour accéder à l’ID de session une fois que votre client termine sa session Checkout. Après avoir créé la session Checkout, redirigez votre client vers l’URL renvoyée dans la réponse.
Récupérer la session CheckoutCôté serveur
Une fois que votre client a terminé sa session Checkout, vous devez récupérer l’objet de session. Il y a deux façons de procéder :
- De manière asynchrone : en traitant les webhooks
checkout.session.completed
, qui contiennent un objet de session. En savoir plus sur la configuration des webhooks. - De manière synchrone : obtenez l’identifiant de session à partir du
success_url
lorsqu’un utilisateur redirige vers votre site. Utilisez l’identifiant de session pour récupérer l’objet Session.
Le choix entre ces deux méthodes dépend de votre tolérance aux abandons de paiement. En effet, il peut arriver que vos clients ne se rendent pas jusqu’à l’adresse URL success_url
après la réussite d’un paiement. Ils peuvent par exemple fermer l’onglet de leur navigateur avant d’être correctement redirigés. Si votre intégration traite les webhooks, elle ne sera pas exposée à ce type d’abandon de paiement.
Après avoir récupéré l’objet de session, obtenez la valeur de la clé setup_intent
, qui correspond à l’ID du SetupIntent créé lors de la session Checkout. Un SetupIntent est un objet permettant de configurer les coordonnées de compte bancaire de votre client en vue de paiements futurs.
Exemple de charge utile checkout.session.completed
:
{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": "", "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }
Prenez note de l’ID du setup_intent
pour la prochaine étape.
Récupérer le SetupIntentCôté serveur
À l’aide de l’ID setup_intent
, récupérez l’objet SetupIntent. L’objet renvoyé contient un ID payment_method
que vous pouvez associer à un client à l’étape suivante.
Remarques
Si vous récupérez ces informations de manière synchrone auprès de l’API Stripe (et non en traitant des webhooks), vous pouvez combiner cette étape-ci à l’étape précédente en développant l’objet SetupIntent dans votre requête au point de terminaison /v1/checkout/session. De cette manière, vous n’avez pas besoin d’effectuer deux requêtes différentes au réseau pour accéder à l’ID du PaymentMethod qui vient d’être créé.
Utiliser le moyen de paiementCôté serveur
Si vous n’avez pas renseigné de client existant à la création de la session Checkout, utilisez l’ID de payment_method
associez PaymentMethod à un client. Une fois le PaymentMethod associé à un client, vous pourrez le débiter à l’aide d’un PaymentIntent.
Présenter les informations de Stripe à vos clients
Stripe recueille des informations sur les interactions des clients avec Elements pour vous fournir des services, prévenir la fraude et améliorer ses services. Cela inclut l’utilisation de témoins et d’adresses IP pour identifier les Elements qu’un client a vus au cours d’une seule session de paiement. Vous êtes responsable de la divulgation et de l’obtention de tous les droits et consentements nécessaires pour permettre à Stripe d’utiliser les données de cette manière. Pour en savoir plus, rendez-vous sur notre centre de confidentialité.