Enregistrer les coordonnées bancaires lors d'un paiement iDEAL
Découvrez comment enregistrer les coordonnées bancaires IBAN de votre client lors d'un paiement iDEAL.
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.
iDEAL est un moyen de paiement néerlandais à usage unique qui nécessite l’authentification du paiement par le client. Pour effectuer un paiement avec iDEAL, les clients sont redirigés vers une vue Web afin d’autoriser le paiement, puis reviennent vers votre application, où vous recevez une notification immédiate de la réussite ou de l’échec du paiement.
Vous pouvez également utiliser iDEAL 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 iDEAL afin de configurer des paiements par prélèvement SEPA, vous devez activer les prélèvements automatiques SEPA dans le Dashboard. Vous devez également respecter les Conditions d’utilisation d’iDEAL et les Conditions d’utilisation du prélèvement SEPA.
Accepter un paiement iDEAL 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 un PaymentIntent en vue de paiements futurs, utilisez l’ID du PaymentMethod prélèvement automatique SEPA recueilli lors de votre PaymentIntent iDEAL initial.
Configurer StripeCôté serveurCôté client
Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.
Côté serveur
Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API Stripe. Utilisez les bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :
Côté client
Le SDK Stripe Android est disponible en open source et fait l’objet d’une documentation complète.
Pour installer le SDK, ajoutez stripe-android
au bloc dependencies
de votre fichier app/build.gradle :
Remarque
Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour savoir quand une nouvelle version est disponible, surveillez les versions du référentiel.
Configurez le SDK avec votre clé publique Stripe de façon à ce qu’il puisse envoyer des requêtes à l’API Stripe, par exemple à la sous-classe Application
:
Remarque
Utilisez vos clés de test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.
Les échantillons de code de Stripe utilisent également OkHttp et GSON pour envoyer des requêtes HTTP à un serveur.
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 à encaisser et la devise dans les paramètres amount
et eur
, l’identifiant du client, et le paramètre off_
(hors session) comme argument pour la configuration de l’utilisation future. Il n’y a pas de montant minimal de paiement et iDEAL ne prend pas en charge d’autres devises. Si vous avez déjà une intégration API Payment Intents, ajoutez ideal
à la liste des types de moyens de paiement.
Le PaymentIntent contient l’ID du moyen de paiement et une clé secrète du client, qui est utilisée côté client pour finaliser le processus de paiement de manière sécurisée au lieu de transmettre la totalité de l’objet PaymentIntent.
Collecter les informations du moyen de paiement et obtenir un accusé de réception du mandatCôté client
Dans votre application, collectez le nom et le prénom de votre client, ainsi que son adresse e-mail. Créez ensuite un objet PaymentMethodCreateParams à l’aide de ces informations.
Pour traiter des paiements par prélèvement SEPA, vous devez faire accepter le mandat par votre client. Affichez le texte d’autorisation standard suivant afin que votre client puisse signer le mandat de manière tacite.
Remplacez Rocket Rides par le nom de votre entreprise.
La configuration d’un moyen de paiement ou la confirmation d’un PaymentIntent vaut acceptation du mandat. Le client ayant tacitement signé le mandat, vous devez communiquer ces conditions dans votre formulaire ou par e-mail.
Soumettre le paiement à StripeCôté client
Récupérez la clé secrète du client auprès du PaymentIntent que vous avez créé à l’étape 3, puis appelez la méthode stripe confirmPayment. Une vue Web s’affichera ainsi pour permettre au client de mener à bien son paiement sur le site Web ou l’application de sa banque. Une fois l’opération terminée, onActivityResult
sera appelé avec le résultat du paiement.
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": { "ideal": { "bank": "ing", "bic": "INGBNL2A", "iban_last4": "****", "generated_sepa_debit": "pm_1GrddXGf98efjktuBIi3ag7aJQ", "verified_name": "JENNY ROSEN" }, "type": "ideal" }, }, "payment_method_options": { "ideal": {}
Créez un PaymentIntent en utilisant les identifiants du prélèvement SEPA et du client.
Tester votre intégration
Utilisez vos clés API de test pour confirmer le PaymentIntent. Après avoir confirmé, vous êtes redirigé vers une page de test avec des options pour valider ou non le paiement.
- Cliquez sur Autorisation du paiement test pour tester le cas où la configuration réussit. Le PaymentIntent passe de
requires_
àaction succeeded
. - Cliquez sur Échec du paiement test pour tester le cas où le client ne parvient pas à s’authentifier. Le PaymentIntent passe de
requires_
àaction requires_
.payment_ method