Paiements par carte sans authentification bancaire
Développez une intégration plus simple, avec des limites régionales.
Cette intégration prend en charge les entreprises acceptant uniquement les cartes bancaires du Canada ou des États-Unis. Sa mise en place est plus simple, mais elle ne permet pas de se développer à l’international.
Comment fonctionne cette intégration ?
En quoi diffère-t-elle de l'intégration mondiale ?
Les entreprises en pleine croissance ou qui travaillent à l’international devraient opter pour notre intégration mondiale afin de prendre en charge les demandes d’authentification à deux facteurs des banques et permettre à leurs clients d’utiliser davantage de moyens de paiement.
Développer un formulaire de paiementCôté client
Elements, qui fait partie de Stripe.js, fournit des composants d’interface utilisateur intégrés pour recueillir les informations de carte des clients. Stripe les héberge et les place dans votre formulaire de paiement sous forme d’iframe. De cette façon, les informations de carte de votre client sont totalement 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 endpoint sur votre serveur pour recevoir la requête du client.
Pour représenter votre intention d’encaisser le paiement d’un client, Stripe utilise un objet PaymentIntent qui suit vos tentatives de débit et les changements d’état du 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 endpoint HTTP pour répondre à la requête AJAX de l’étape 1. Dans cet endpoint, 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 :
Avertissement
Si vous réglez le paramètre error_on_requires_action sur true
lors de la confirmation d’un paiement et que ce paiement nécessite une authentification à deux facteurs de la part du client, le paiement échouera automatiquement.
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 environnement de test pour vérifier que cette intégration est prête. Utilisez-les avec n’importe quels code CVC, code postal et date d’expiration future.
Numéro | Description |
---|---|
Réussite de la transaction et traitement immédiat du paiement. | |
Échec systématique 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_ . |
Voir la liste complète des cartes de test.
Mettre à niveau votre intégration pour prendre en charge l'authentification de cartes bancaires
Félicitations ! Vous avez réalisé une intégration capable de gérer des paiements par carte bancaire 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 s’afficher comme Failed
sur le Dashboard, cela veut dire qu’il est temps de mettre à niveau votre intégration. L’intégration mondiale de Stripe traite ces paiements au lieu de les refuser automatiquement.