Accepter un paiement EPS
Découvrez comment accepter les paiements effectués à l'aide de EPS, un moyen de paiement très répandu en Autriche.
Mise en garde
Le contenu de cette section fait référence à un produit antérieur. Vous devez plutôt consulter le guide relatif à l’acceptation d’un paiement pour en savoir plus sur le chemin d’intégration le plus récent. Stripe prend toujours en charge ce produit, néanmoins cette prise en charge peut prendre fin si le produit devient obsolète.
EPS est un moyen de paiement à usage unique qui nécessite l’authentification du paiement par le client. Pour effectuer un paiement avec EPS, les clients quittent votre site Web, autorisent le paiement, puis reviennent vers votre site Web. Vous recevez alors une notification immédiate indiquant si le paiement a abouti ou échoué.
Remarque
Votre utilisation d’EPS doit se conformer aux Conditions d’utilisation du service EPS.
Configurer StripeCôté serveur
Pour commencer, il vous faut un compte Stripe. Créez votre compte Stripe.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe à partir de votre application :
Créer un PaymentIntentCôté serveur
Un PaymentIntent représente votre intention d’encaisser un paiement auprès d’un client et suit le cycle de vie du processus de paiement.
Créez un PaymentIntent
sur votre serveur et précisez le montant à encaisser ainsi que la devise dans les paramètres amount
et eur
(EPS ne prend en charge aucune autre devise). Si vous avez déjà une intégration Payment Intents, ajoutez eps
à 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.
Recueillir les informations du moyen de paiementCôté client
Vous êtes prêt à collecter les informations de paiement sur le client avec Stripe Elements. Elements est un ensemble de composants d’interface utilisateur prédéfinis pour la collecte des informations de paiement.
Un composant Element contient une balise iframe qui envoie de manière sécurisée les informations de paiement à Stripe par une connexion HTTPS. Pour que votre intégration fonctionne, l’adresse de votre page de règlement doit aussi commencer par https:// au lieu de http://.
Vous pouvez tester votre intégration sans utiliser le protocole HTTPS. Activez-le au moment d’accepter des paiements en mode production.
Configurer Stripe Elements
Envoyer le paiement à StripeCôté client
Plutôt que d’envoyer la totalité de l’objet PaymentIntent au client, utilisez sa clé secrète. Cette clé est distincte de vos clés API qui authentifient les requêtes envoyées à l’API Stripe. La clé secrète du client doit être utilisée avec prudence, car elle peut servir à 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.
Vous trouverez des informations sur le compte bancaire utilisé par le client en consultant la propriété payment_method_details du paiement.
{ "charges": { "data": [ { "payment_method_details": { "eps": { "bank": "bank_austria", "verified_name": "JENNY ROSEN" }, "type": "eps" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU",
Tester votre intégration
À l’aide de vos clés API de test, sélectionnez une banque dans la liste des banques compatibles avec EPS. Après avoir confirmé le paiement, vous serez redirigé vers une page de test proposant deux options : réussite ou échec du paiement. Vous pouvez tester la réussite de paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passera alors de l’état requires_
à succeeded
.
Pour tester un échec d’authentification de l’utilisateur, sélectionnez une banque à l’aide de vos clés API de test. Puis, sur la page de redirection, cliquez sur Échec du paiement test. Votre PaymentIntent passera alors de l’état requires_
à requires_
.
FacultatifGérer les événements post-paiementCôté serveur
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 les changements de l'élément EPS BankCôté client
L’élément EPS Bank indique la banque sélectionnée par le client, même si celle-ci a changé. Si vous souhaitez effectuer une logique supplémentaire à partir de la valeur Bank (par exemple, en rendant ce champ obligatoire pour la validation du formulaire), vous pouvez surveiller l’événement Change :
L’événement indiquant un changement contient d’autres paramètres qui peuvent vous aider à enrichir votre expérience utilisateur. Pour en savoir plus, consultez la documentation de Stripe.js.
FacultatifGérer la redirection EPS manuellementCôté serveur
Nous recommandons l’utilisation de Stripe.js pour gérer les redirections et paiements EPS avec confirmEpsPayment
. Toutefois, vous pouvez également rediriger vos clients manuellement :
- En fournissant l’URL vers laquelle vos clients sont redirigés une fois leur paiement effectué.
- En indiquant la banque du client (facultatif), vers laquelle il sera redirigé pour autoriser son paiement. Vous trouverez la liste des banques disponibles dans la section Valeurs des banques.
- En vérifiant que l’état du
PaymentIntent
est bienrequires_
et que le type deaction next_
estaction redirect_
.to_ url
{ "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "charges": { "data": [ { "payment_method_details": { "eps": { "bank": "bank_austria", "verified_name": "JENNY ROSEN"
- En redirigeant le client vers l’URL indiquée dans la propriété
next_
.action
const action = intent.next_action; if (action && action.type === 'redirect_to_url') { window.location = action.redirect_to_url.url; }
À l’issue du processus de paiement, le client est redirigé vers la destination return_
. Les paramètres de requête d’URL payment_
et payment_
sont inclus et vous pouvez par ailleurs transmettre vos propres paramètres de requête, comme indiqué plus haut.
FacultatifEnregistrer la préférence bancaire du clientCôté client
Vous ne pouvez pas réutiliser les PaymentMethods EPS ni les enregistrer pour les clients. Vous devez créer un nouveau PaymentMethod EPS chaque fois que votre client sélectionnera ce moyen de paiement dans votre formulaire de paiement, en utilisant l’Element EPS Bank. Pour garder une trace de la préférence bancaire de votre client, nous vous recommandons de la conserver dans votre propre base de données ou d’utiliser la propriété metadata
de l’objet Customer.
Lorsque vous créez l’élément EPS Bank, vous pouvez le préremplir avec la banque choisie par le client :
Valeurs bancaires
Nom de la banque | Valeur |
---|---|
Ärzte- und Apothekerbank | arzte_und_apotheker_bank |
Austrian Anadi Bank AG | austrian_anadi_bank_ag |
Bank Austria | bank_austria |
Bankhaus Carl Spängler & Co.AG | bankhaus_carl_spangler |
Bankhaus Schelhammer & Schattera AG | bankhaus_schelhammer_und_schattera_ag |
BAWAG P.S.K. AG | bawag_psk_ag |
BKS Bank AG | bks_bank_ag |
Brüll Kallmus Bank AG | brull_kallmus_bank_ag |
BTV VIER LÄNDER BANK | btv_vier_lander_bank |
Capital Bank Grawe Gruppe AG | capital_bank_grawe_gruppe_ag |
Dolomitenbank | dolomitenbank |
Easybank AG | easybank_ag |
Erste Bank und Sparkassen | erste_bank_und_sparkassen |
Hypo Alpe-Adria-Bank International AG | hypo_alpeadriabank_international_ag |
HYPO NOE LB für Niederösterreich u. Wien | hypo_noe_lb_fur_niederosterreich_u_wien |
HYPO Oberösterreich, Salzburg, Steiermark | hypo_oberosterreich_salzburg_steiermark |
Hypo Tirol Bank AG | hypo_tirol_bank_ag |
Hypo Vorarlberg Bank AG | hypo_vorarlberg_bank_ag |
HYPO-BANK BURGENLAND Aktiengesellschaft | hypo_bank_burgenland_aktiengesellschaft |
Marchfelder Bank | marchfelder_bank |
Oberbank AG | oberbank_ag |
Raiffeisen Bankengruppe Österreich | raiffeisen_bankengruppe_osterreich |
Schoellerbank AG | schoellerbank_ag |
Sparda-Bank Wien | sparda_bank_wien |
Volksbank Gruppe | volksbank_gruppe |
Volkskreditbank AG | volkskreditbank_ag |
VR-Bank Braunau | vr_bank_braunau |