Accepter un paiement iDEAL
Découvrez comment accepter les paiements effectués à l'aide de iDEAL, un moyen de paiement très répandu aux Pays-Bas.
Mise en garde
Nous vous recommandons de suivre le guide Accepter un paiement, sauf si vous devez exécuter la confirmation manuelle côté serveur, ou si votre intégration requiert la présentation de moyens de paiement de manière distincte. Si vous avez déjà intégré Elements, consultez le Guide de migration du Payment Element.
Le processus d’acceptation d’un paiement iDEAL dans votre application consiste à afficher une vue Web qui renvoie votre client vers le portail en ligne de sa banque pour autoriser le paiement. Votre client retourne ensuite dans votre application et vous recevez immédiatement une notification indiquant si le paiement a abouti ou échoué.
Remarque
Pour accepter les paiements iDEAL, vous devez respecter nos Conditions d’utilisation du service iDEAL.
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 PaymentIntentCôté serveurCôté client
Un PaymentIntent est un objet qui représente votre intention d’encaisser le paiement d’un client et qui suit le cycle de vie du processus de paiement étape par étape.
Côté serveur
Créez tout d’abord un PaymentIntent
sur votre serveur, puis indiquez le montant à percevoir et la devise eur
(iDEAL ne prend pas en charge les autres devises). iDEAL n’a pas de montant minimal de paiement ; la valeur amount
du paiement peut descendre jusqu’à 1. Si votre intégration inclut déjà l’API Payment Intents, ajoutez ideal
à la liste des types de moyens de paiement pour votre PaymentIntent
.
Au lieu de transmettre à l’application la totalité de l’objet PaymentIntent, il vous suffit de renvoyer sa clé secrète du client. Il s’agit d’une clé unique qui vous permet de confirmer le paiement et d’actualiser les informations de paiement côté client, le tout sans autoriser la manipulation d’informations sensibles comme le montant du paiement.
Côté client
Côté client, demandez un PaymentIntent auprès de votre serveur et sauvegardez la clé secrète du client.
Collecter les informations du moyen de paiementCôté client
Dans votre application, recueillez le nom complet de votre client. Créez un objet PaymentMethodCreateParams avec cette information.
Soumettre le paiement à StripeCôté client
Récupérez la clé secrète du client auprès du PaymentIntent que vous avez créé, puis appelez la fonction confirm de PaymentLauncher. Une page Web s’affiche dans laquelle le client peut finaliser le paiement sur le site Web ou l’application de sa banque. Une fois l’opération terminée, un bloc de finalisation est appelé avec le résultat du paiement.
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
Référence bancaire
Nom de la banque | Valeur |
---|---|
ABN AMRO | abn_ |
ASN Bank | asn_ |
Bunq | bunq |
ING | ing |
Knab | knab |
N26 | n26 |
Nationale-Nederlanden | nn |
Rabobank | rabobank |
Revolut | revolut |
RegioBank | regiobank |
SNS Bank (De Volksbank) | sns_ |
Triodos Bank | triodos_ |
Van Lanschot | van_ |
Yoursafe | yoursafe |