Enregistrer une carte bancaire sans authentification
Collectez des informations de carte bancaire et débitez votre client plus tard.
Stripe vous permet de recueillir les informations de la carte de votre client afin de la débiter ultérieurement. Dans certaines régions, les banques exigent souvent une deuxième forme d’authentification pour effectuer un paiement, par exemple en saisissant un code envoyé sur un téléphone. Cette étape supplémentaire tend à diminuer le taux de conversion. En effet, si votre client n’utilise pas activement votre site Web ou votre application il ne pourra pas authentifier l’achat.
Si vous exercez vos activités commerciales principalement aux États-Unis et au Canada où les banques n’exigent pas d’authentification, vous pouvez adopter cette intégration plus simple. Cette intégration ne sera pas conforme dans les pays nécessitant une authentification pour l’enregistrement des cartes (par exemple l’Inde). Par conséquent, si vous optez pour cette intégration, il vous faudra y apporter des modifications importantes si vous voulez vous étendre à d’autres pays ou ajouter d’autres moyens de paiement. Apprenez comment enregistrer les cartes nécessitant une authentification.
Conformité
Lorsque vous enregistrez les informations de paiement d’un client, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles du réseau en vigueur. C’est notamment le cas si vous souhaitez enregistrer le moyen de paiement d’un client en vue d’une utilisation ultérieure, par exemple pour le débiter à un moment où il n’utilise pas activement votre site Web ou votre application. Dans les conditions d’utilisation de votre application ou de votre site Web, précisez la façon dont vous comptez enregistrer les informations du moyen de paiement, puis invitez le client à accepter ces conditions. Si vous prévoyez de débiter votre client lorsqu’il est hors ligne, veillez à inclure à vos conditions les éléments suivants :
- Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées.
- Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements se font par versements échelonnés, par recharges non programmées, ou s’il s’agit d’abonnements).
- La façon dont vous déterminez le montant à payer.
- Vos conditions de résiliation, si le moyen de paiement est utilisé dans le cadre d’un abonnement.
Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client.
Configurer StripeCôté serveurCôté client
Tout d’abord, vous avez besoin d’un compte Stripe. Inscrivez-vous dès maintenant.
Avant d’amorcer votre intégration, configurez les SDK Stripe pour iOS et le serveur.
Côté serveur
Cette intégration exige des endpoints sur votre serveur qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles :
Côté client
Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.
Remarque
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.
Remarque
Utilisez vos clés du mode 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.
Collecter les informations de carte bancaireCôté client
Commencez par présenter un formulaire de paiement à votre client. Collectez ses informations de carte bancaire à l’aide de STPPaymentCardTextField, un composant d’interface utilisateur prêt à l’emploi fourni par le SDK et qui recueille le numéro de carte bancaire, la date d’expiration, le CVC et le code postal.
Le STPPaymentCardTextField se charge de la validation et du formatage en temps réel.
Transmettez les informations de carte à createPaymentMethod pour créer une PaymentMethod.
Envoyez l’identifiant PaymentMethod qui en résulte à votre serveur et suivez le reste des étapes pour enregistrer la carte du client et débiter la carte à l’avenir.
Enregistrer la carte bancaireCôté serveur
Enregistrez la carte en associant le PaymentMethod à un objet Customer. Vous pouvez utiliser l’objet Customer pour enregistrer d’autres données concernant l’utilisateur, telles que des informations de livraison et l’adresse e-mail.
Si vous avez un Client existant, vous pouvez joindre le PaymentMethod plutôt à cet objet.
À ce stade, associez l’identifiant de l’objet Customer et l’identifiant du PaymentMethod à votre propre représentation interne d’un client, si vous en avez une.
Débitez la carte enregistréeCôté serveur
Au moment de débiter votre client, recherchez l’ID du PaymentMethod à débiter, soit en sauvegardant les deux ID dans votre base de données, soit en utilisant l’ID de l’objet Customer pour rechercher tous les objets PaymentMethod correspondant à ce client.
Utilisez l’ID PaymentMethod et l’ID Customer pour créer un PaymentIntent. Définissez error_on_requires_action sur true pour refuser les paiements qui exigent une action de la part de votre client, telle que l’authentification à deux facteurs.
Lorsqu’une tentative de paiement échoue, la requête échoue également avec un code d’état HTTP 402 et Stripe renvoie une erreur. Vous devez inviter l’utilisateur à retourner dans votre application (par exemple en lui envoyant un message au sein de l’application) afin de terminer le paiement. Consultez le code de l’erreur généré par la bibliothèque d’API de Stripe ou le paramètre last_payment_error.decline_code du PaymentIntent pour déterminer le motif du refus du paiement par l’émetteur de la carte.
Gérer les erreurs de carte bancaire
Informez votre client que le paiement a échoué et dirigez-le vers le formulaire de paiement que vous avez créé dans l’étape 1 où il peut saisir les informations d’une nouvelle carte. Envoyez ce nouvel identifiant PaymentMethod à votre serveur à joindre à l’objet Customer et effectuez de nouveau le paiement.
Vous pouvez également créer un PaymentIntent et enregistrer une carte en un seul appel à l’API si vous avez déjà créé un Client.
Le réglage de setup_future_usage sur on_
indique à Stripe que vous souhaitez conserver la carte pour plus tard, sans déclencher d’authentification inutile.
Tester l'intégration
Stripe fournit des cartes de test que vous pouvez utiliser en mode test pour simuler le comportement de différentes cartes bancaires. Utilisez ces cartes avec n’importe quel CVC, code postal et date d’expiration non échue.
Numéro | Description |
---|---|
Transaction réussie et paiement effectué immédiatement. | |
Échoue toujours avec un code de refus de paiement insufficient_ . | |
Exige l’authentification, qui dans cette intégration échouera avec un code de refus de paiement authentication_ . |
Mettre à niveau votre intégration pour prendre en charge l’authentification de cartes bancaires
Cette intégration refuse les cartes qui nécessitent une authentification lors du paiement. Si vous commencez à voir de nombreux paiements à l’état Failed
dans le Dashboard, il est temps de mettre à niveau votre intégration. L’intégration complète de Stripe traite ces paiements au lieu de les refuser automatiquement.