Paiements par carte sans authentification bancaire
Développez une intégration plus simple, avec des limites régionales.
Cette intégration supporte les entreprises qui n’acceptent que les cartes des États-Unis et du Canada. Elle est plus simple au départ, mais ne se développe pas pour prendre en charge une clientèle internationale.
Comment fonctionne cette intégration?
Dans certaines régions, comme l’Europe ou l’Inde, les institutions financières exigent souvent une authentification à deux facteurs pour confirmer un achat. Si vous exercez votre activité principalement aux États-Unis et au Canada, vous pouvez simplifier votre intégration en ignorant l’authentification, rarement exigée par les institutions financières dans ces régions.
Lorsqu’une banque exige une authentification, au lieu de gérer l’authentification pour effectuer le paiement de manière asynchrone, cette intégration basique génère automatiquement un refus de paiement (similaire à un refus de carte). L’avantage est que la réussite ou l’échec du paiement sont immédiats et que la confirmation de paiement a lieu sur le serveur. De cette manière, vous pouvez immédiatement gérer les actions post-paiement sans webhook.
En quoi diffère-t-elle de l'intégration mondiale?
Fonctionnalité | Cette intégration | Intégration mondiale |
---|---|---|
Formulaire de paiement personnalisé | ✔ | ✔ |
Aucune donnée sensible ne transite sur votre serveur | ✔ | ✔ |
Fonctionne pour vos clients américains et canadiens | ✔ | ✔ |
Refuse le paiement si les informations de cartes bancaires sont incorrectes ou les fonds insuffisants | ✔ | ✔ |
Refuse le paiement si l’institution financière demande une authentification | ✔ | |
Fonctionne pour vos clients internationaux | ✔ | |
Gère automatiquement les paiements par carte nécessitant une authentification bancaire | ✔ | |
Webhooks recommandés pour les tâches post-paiement | ✔ | |
Possibilité d’intégrer facilement d’autres moyens de paiement (par exemple les prélèvements bancaires) | ✔ |
Les entreprises en pleine croissance ou qui exercent leur activité à l’international devraient opter pour l’intégration mondiale de Stripe afin de prendre en charge les demandes d’authentification à deux facteurs des institutions financières et permettre à leurs clients d’utiliser davantage de modes de paiement.
Développer un formulaire de paiementCôté client
Elements, qui fait partie de Stripe.js, fournit des composants d’interface utilisateur prêts à l’emploi permettant de collecter les informations de carte de vos clients. Stripe les héberge et les place dans votre formulaire de paiement sous forme de balise iframe. De cette façon, les informations de carte de votre client sont entièrement séparées de votre code.
Configurer StripeCôté serveur
Utilisez une bibliothèque officielle pour effectuer des requêtes à l’API de Stripe à partir de votre application :
Effectuer un paiementCôté serveur
Configurez un point de terminaison sur votre serveur pour recevoir la requête du client.
Stripe utilise un objet PaymentIntent pour représenter votre intention de percevoir le paiement d’un client, qui suit les tentatives de paiement et les changements d’état de paiement tout au long du processus.
Décidez toujours du montant à débiter côté serveur, un environnement sécurisé, plutôt que côté client. Cela permet d’éviter que des clients malveillants puissent définir leurs propres prix.
Créez un point de terminaison HTTP pour répondre à la requête AJAX de l’étape 1. Dans cet point de terminaison, décidez de quel montant débiter votre client. Pour créer un paiement, créez un PaymentIntent en utilisant l’ID de PaymentMethod de l’étape 1 avec le code suivant :
Alerte
Si vous définissez le paramètre error_on_requires_action àtrue
lors de la confirmation d’un paiement, Stripe entraînera automatiquement un échec de paiement s’il nécessite une authentification à deux facteurs de la part du client.
Réponse de l’API Payment Intents
Lorsque vous effectuez un paiement à l’aide de l’API, la réponse indique l’état du PaymentIntent. L’état d’un paiement réussi est : succeeded
.
{ "id": "pi_0FdpcX589O8KAxCGR6tGNyWj", "object": "payment_intent", "amount": 1099, "charges": { "object": "list", "data": [ { "id": "ch_GA9w4aF29fYajT", "object": "charge", "amount": 1099, "refunded": false, "status": "succeeded", } ] }, "client_secret": "pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc", "currency": "usd", "last_payment_error": null, "status": "succeeded", }
Si le paiement échoue, la réponse inclut le code de l’erreur et un message d’erreur. Voici un exemple de paiement en échec car la carte bancaire utilisée nécessitait une authentification à deux facteurs.
{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "payment_intent": { "id": "pi_1G8JtxDpqHItWkFAnB32FhtI", "object": "payment_intent", "amount": 1099, "status": "requires_payment_method", "last_payment_error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "type": "card_error" }, }, "type": "card_error" } }
Tester l'intégration
Stripe fournit plusieurs cartes de test que vous pouvez utiliser dans un bac à sable pour vérifier que cette intégration est prête. Utilisez-les avec n’importe quel CVC, code postal et date d’expiration postérieure.
Numéro | Description |
---|---|
Réussite de la transaction et traitement immédiat du paiement. | |
Échoue toujours avec le code de refus de paiement insufficient_ . | |
Exige l’authentification, qui dans cette intégration échouera avec un code de refus de paiement authentication_ . |
Consulter la liste complète des cartes de test.
Mettre à niveau votre intégration pour prendre en charge l'authentification de cartes
Félicitations! Vous avez réalisé une intégration capable de gérer des paiements par carte basiques. Veuillez noter que cette intégration génère des refus de paiement pour les cartes qui nécessitent une authentification lors du paiement.
Si vous commencez à voir de nombreux paiements être affichés comme Failed
dans le Dashboard, cela signifie qu’il est temps de mettre à niveau votre intégration. L’intégration complète de Stripe traite ces paiements plutôt que de les refuser automatiquement.