Accéder directement au contenu
Créez un compte
ou
connectez-vous
Le logo de la documentation Stripe
/
Demander à l’IA
Créer un compte
Connectez-vous
Commencer
Paiements
Revenus
Plateformes et places de marché
Gestion des fonds
Outils de développement
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
AperçuTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
Développer une intégration avancée
Développer une intégration dans l'application
Moyens de paiement
Ajout de moyens de paiement
Gérer les moyens de paiement
Payer plus rapidement avec Link
Interfaces de paiement
Payment Links
Paiement
Web Elements
Elements dans l'application
Scénarios de paiement
Flux de paiement personnalisés
    Aperçu
    Paiements pour les clients existants
    Autoriser et capturer un paiement séparément
    Créez une expérience de confirmation à deux facteurs
    Collecter les informations de paiement avant de créer une intention
    Finalisez les paiements sur le serveur
    Accepter des commandes par courrier et par téléphone (MOTO)
    Cartes américaines et canadiennes
      Enregistrer des cartes sans authentification
      Mettre à niveau pour gérer l'authentification
    Transférer les informations de carte aux points de terminaison d'API tiers
    Postes de paiement
Acquisition flexible
Orchestration
Paiements en personne
Terminal
Autres produits Stripe
Financial Connections
Cryptomonnaie
Climate
AccueilPaiementsCustom payment flowsUS and Canadian cards

Migrer votre intégration de cartes de base

Migrez vers une intégration capable de gérer les demandes d'authentification de carte émanant des institutions financières

Copier la page

Si vous avez suivi les directives du guide sur les paiements par carte sans authentification bancaire, votre intégration créera des paiements qui seront refusés lorsque l’institution financière demandera au client d’authentifier l’achat.

Si vous commencez à voir de nombreux paiements qui ne réussissent pas, comme celui dans le Dashboard ci-dessous, ou associés à un code d’erreur requires_action_not_handled dans l’API, vous devez mettre à niveau votre intégration de base de façon à gérer ces paiements au lieu de les refuser.

Dashboard montrant un paiement échoué qui indique que cette institution financière exigeait l'authentification pour ce paiement

Utilisez ce guide pour apprendre comment mettre à niveau l’intégration que vous avez conçue à l’aide du guide précédent de façon à ajouter du code serveur et client qui invite l’utilisateur à authentifier le paiement en affichant une fenêtre modale.

Remarques

Découvrez un exemple complet de cette intégration sur GitHub.

Vérifiez si le paiement nécessite une authentification
Côté serveur

Apportez deux modifications au endpoint sur votre serveur qui crée le PaymentIntent :

  1. Supprimez le paramètre error_on_requires_action de façon à ne plus faire échouer les paiements qui nécessitent une authentification. À la place, l’état du PaymentIntent passe à requires_action.
  2. Ajoutez le paramètre confirmation_method pour indiquer explicitement que vous souhaitez reconfirmer le paiement manuellement sur le serveur après avoir traité les demandes d’authentification.
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ -d payment_method_types[]=card \ -d confirm=true \ -d error_on_requires_action=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d confirmation_method=manual

Ensuite, mettez à jour votre fonction « generate response » pour traiter l’état requires_action au lieu qu’une erreur soit générée :

Command Line
curl
# If the request succeeds, check the # PaymentIntent's `status` and handle # its `next_action`.

Demander au client de s'authentifier
Côté client

Modifiez ensuite votre code côté client pour que Stripe ouvre une fenêtre modale lorsque votre client doit s’authentifier.

Utilisez stripe.handleCardAction lorsque l’état d’un PaymentIntent est requires_action. Lorsque le PaymentIntent réussit, son état passe à requires_confirmation. Vous devez alors reconfirmer le PaymentIntent sur votre serveur pour finaliser le paiement.

const handleServerResponse = async (responseJson) => { if (responseJson.error) { // Show error from server on payment form } else if (responseJson.requiresAction) { // Use Stripe.js to handle the required card action const { error: errorAction, paymentIntent } = await stripe.handleCardAction(responseJson.clientSecret); if (errorAction) { // Show error from Stripe.js in payment form } else { // The card action has been handled // The PaymentIntent can be confirmed again on the server const serverResponse = await fetch('/pay', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ payment_intent_id: paymentIntent.id }) }); handleServerResponse(await serverResponse.json()); } } else { // Show success message } }

Reconfirmez le PaymentIntent
Côté serveur

À l’aide du même point de terminaison configuré plus tôt, reconfirmez le PaymentIntent pour finaliser le paiement et traiter la commande. La tentative de paiement échoue et revient àrequires_payment_methodsi celle-ci n’est pas reconfirmée dans un délai d’une heure.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

Testez l'intégration

Utilisez nos cartes de test dans un bac à sable pour vérifier que votre intégration a été correctement mise à jour. Stripe affiche une page d’authentification factice dans un bac à sable qui vous permet de simuler le succès ou l’échec d’une tentative d’authentification. En mode production, l’institution financière contrôle l’interface utilisateur de ce qui s’affiche dans la fenêtre modale.

NuméroDescription
Transaction réussie et paiement effectué immédiatement.
Échoue toujours avec un code de refus de paiement insufficient_funds.
Exige l’authentification, qui dans cette intégration échouera avec un code de refus de paiement authentication_not_handled.
Cette page vous a-t-elle été utile?
OuiNon
Besoin d'aide? Contactez le service d'assistance.
Rejoignez notre programme d'accès anticipé.
Consultez notre journal des modifications.
Des questions? Contactez l'équipe commerciale.
GML? Lire llms.txt.
Optimisé par Markdoc