Enregistrer des coordonnées bancaires lors d'un paiement Bancontact
Découvrez comment enregistrer le numéro IBAN de votre client lors d'un paiement Bancontact.
Mise en garde
Nous vous recommandons de suivre les instructions de notre guide Enregistrer les coordonnées bancaires lors du paiement. Si vous avez déjà intégré Elements, reportez-vous à notre Guide de migration du Payment Element.
Bancontact est un moyen de paiement belge à usage unique qui nécessite l’authentification du paiement par le client. Pour effectuer un paiement avec Bancontact, les clients quittent votre site Web, autorisent le paiement, puis reviennent vers votre site. Vous recevez alors une notification immédiate indiquant si le paiement a abouti ou échoué.
Vous pouvez également utiliser Bancontact pour enregistrer les coordonnées bancaires IBAN de votre client dans un objet PaymentMethod de type prélèvement automatique SEPA. Vous pouvez ensuite utiliser ce PaymentMethod prélèvement automatique SEPA pour accepter des paiements ou configurer un abonnement. Cela permet de simplifier le processus de paiement pour votre client, qui n’aura plus à ressaisir son IBAN. Vous recevez également son nom vérifié et son IBAN validé.
Mise en garde
Pour utiliser Bancontact afin de configurer des paiements par prélèvement automatique SEPA, vous devez activer les prélèvements automatiques SEPA dans le Dashboard. Vous devez également respecter les Conditions d’utilisation du service Bancontact et les Conditions d’utilisation du prélèvement automatique SEPA.
Accepter un paiement Bancontact consiste à créer un objet PaymentIntent pour suivre un paiement, recueillir les informations de moyen de paiement et la confirmation du mandat, puis envoyer le paiement à Stripe pour traitement. Stripe utilise le PaymentIntent pour suivre et gérer les états successifs du paiement jusqu’à sa réussite. Pour créer les futurs paiements, utilisez l’ID du PaymentMethod Prélèvement automatique SEPA recueilli lors de votre PaymentIntent Bancontact initial.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer un objet CustomerCôté serveur
Créez un objet Customer lorsqu’un client crée un compte auprès de votre entreprise et associez-le à votre représentation interne de son compte. Vous pourrez ainsi récupérer et utiliser ultérieurement les informations enregistrées sur son moyen de paiement.
Créer un PaymentIntentCôté serveur
Créez un PaymentIntent
sur votre serveur et précisez le montant à collecter et la devise dans les paramètres amount
et eur
, l’identifiant du client, et le paramètre off_session (hors session) comme argument pour la configuration de l’utilisation future. Si vous avez déjà une intégration Payment Intents, ajoutez bancontact
à la liste des types de moyens de paiement.
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.
Collecter les informations du moyen de paiement et obtenir un accusé de réception du mandatCôté client
Créez un formulaire de paiement côté client pour collecter les informations de facturation du client.
Soumettre le paiement à StripeCôté client
Créez un paiement côté client avec la clé secrète du client du PaymentIntent. La clé secrète du client est distincte de vos clés API qui authentifient les requêtes à l’API Stripe. Celle-ci doit être utilisée avec prudence, car elle peut finaliser le paiement. Elle ne doit être ni enregistrée, ni intégrée dans des URL, ni dévoilée à d’autres personnes que votre client.
Lorsque votre client effectue un paiement, Stripe le redirige vers l’URL return_
et inclut les paramètres de requête d’URL suivants. La page de redirection peut utiliser ces paramètres pour récupérer l’état du PaymentIntent et ainsi afficher l’état du paiement pour le client.
Lorsque vous spécifiez une URL return_
, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection.
Paramètre | Description |
---|---|
payment_ | Identifiant unique du PaymentIntent . |
payment_ | La clé secrète du client de l’objet PaymentIntent . Pour les intégrations d’abonnements, le client_secret est également exposé sur l’objet Invoice via confirmation_ |
Lorsque le client est redirigé vers votre site, vous pouvez utiliser le payment_
pour interroger le PaymentIntent et communiquer l’état de la transaction à votre client.
Débiter le PaymentMethod Prélèvement automatique SEPA plus tard
Lorsque vous devez à nouveau débiter votre client, créez un nouveau PaymentIntent. Pour obtenir l’ID du moyen de paiement Prélèvement automatique SEPA, récupérez le PaymentIntent précédent et développez le champ latest_
où vous trouverez l’ID generated_
dans payment_
.
L’ID du moyen de paiement de type prélèvement SEPA est l’identifiant generated_
figurant sous payment_method_details dans la réponse.
{ "latest_charge": { "payment_method_details": { "bancontact": { "bank_code": "VAPE", "bank_name": "VAN DE PUT & CO", "bics": "VAPEBE22", "iban_last4": "7061", "generated_sepa_debit": "pm_1GrddXGf98efjktuBIi3ag7aJQ", "preferred_language": "en", "verified_name": "Jenny Rosen" }, "type": "bancontact" }, }, "payment_method_options": { "bancontact": {}
Créez un PaymentIntent en utilisant les identifiants du prélèvement SEPA et du client.
FacultatifGérer les événements post-paiement
Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez le Dashboard, un webhook personnalisé ou une solution partenaire pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.
Plutôt que d’attendre un rappel de votre client, écoutez ces événements. En effet, côté client, l’acheteur pourrait fermer la fenêtre de son navigateur ou quitter l’application avant l’exécution du rappel. Des personnes malveillantes peuvent en profiter pour manipuler la réponse. Si vous configurez votre intégration de manière à écouter les événements asynchrones, cela vous permettra également d’accepter de nouveaux moyens de paiement plus facilement à l’avenir. Apprenez-en davantage sur les différences entre les différents moyens de paiement pris en charge.
Recevoir des événements et exécuter des actions métier
Plusieurs options s’offrent à vous pour recevoir et exécuter des actions métier.
Manuellement
Utilisez le Dashboard pour consulter tous vos paiements Stripe, envoyer des reçus par e-mail, gérer les virements et relancer les paiements ayant échoué.
Code personnalisé
Créez un gestionnaire de webhooks pour écouter des événements et créer des tunnels de paiement asynchrones personnalisés. Testez et déboguez votre intégration de webhooks en local, grâce à la CLI Stripe.
Applications préconfigurées
Intégrez une application partenaire pour gérer les événements métier courants, comme l’automatisation, le marketing ou les ventes.
FacultatifGérer la redirection de Bancontact manuellement
Nous recommandons d’utiliser Stripe.js pour gérer les Bancontact redirections et paiements côté client avec confirmBancontactPayment
. L’utilisation de Stripe.js permet d’ajouter d’autres moyens de paiement à votre intégration. Cependant, vous pouvez aussi rediriger vos clients manuellement sur votre serveur en procédant comme suit :
Créez et confirmez un PaymentIntent de type
bancontact
. Vous devez fournir la propriétépayment_
, que vous aurez recueillie auprès du client. En spécifiantmethod_ data. billing_ details. name payment_
, vous créez un PaymentMethod qui est utilisé immédiatement avec ce PaymentIntent.method_ data Vous devez également fournir dans le champ
return_
l’URL vers laquelle le client est redirigé une fois qu’il a finalisé son paiement. Vous pouvez fournir vos propres paramètres de requête dans cette URL. Ces paramètres seront inclus dans l’URL finale à l’issue du flux de redirection.url
- Vérifiez que le
PaymentIntent
a l’étatrequires_
et que le type deaction next_
estaction redirect_
.to_ url
{ "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", ... }
- Redirigez le client vers l’URL fournie dans la propriété
next_
. Cet exemple de code fourni ici n’a qu’une valeur illustrative : la méthode de redirection peut différer sur votre framework Web.action. redirect_ to_ url. url
Le client est redirigé vers l’URL return_
une fois qu’il a effectué le paiement. Les paramètres de la requête d’URL payment_
et payment_
sont inclus avec tous vos propres paramètres. Stripe recommande de configurer un endpoint de webhook pour configurer l’état d’un paiement par voie programmatique.