Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver 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
Ajouter des moyens de paiement
    Présentation
    Options d'intégration des moyens de paiement
    Gérer les moyens de paiement par défaut dans le Dashboard
    Types de moyens de paiement
    Cartes bancaires
    Payer avec le solde Stripe
    Cryptomonnaies
    Prélèvements bancaires
    Virements avec redirection bancaire
    Virements bancaires
    Virements (Sources)
    Achetez maintenant, payez plus tard
      Affirm
        Accepter un paiement
        Messages du site
      Afterpay/Clearpay
      Alma
      Billie
      Capchase Pay
      Klarna
      Kriya
      Mondu
      Paiement sur facture
      Scalapay
      SeQura
      Sunbit
      Zip
    Paiements en temps réel
    Coupons
    Portefeuilles
    Activer des moyens de paiement locaux par pays
    Moyens de paiement personnalisés
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Elements pour le web
Elements intégrés à l'application
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
AccueilPaiementsAdd payment methodsBuy now, pay laterAffirm

Accepter un paiement Affirm

Comment accepter les paiements Affirm, un moyen de paiement qui permet aux clients d'acheter tout de suite et de payer plus tard.

Remarque

Ce guide vous aide à intégrer Affirm dans votre tunnel de paiement en ligne. Pour les paiements en personne avec Stripe Terminal, consultez les moyens de paiement supplémentaires.

Les utilisateurs de Stripe peuvent utiliser l’API Payment Intents, un chemin d’intégration unique pour la création de paiements à l’aide de tout moyen pris en charge, pour accepter les paiements avec Affirm des clients dans les pays suivants :

  • Canada
  • États-Unis

Voici les différentes étapes nécessaires pour accepter des paiements Affirm sur votre site Web :

  • Création d’un objet de suivi du paiement
  • Collecte des informations du moyen de paiement
  • Envoi du paiement à Stripe à des fins de traitement
  • Gestion de la redirection Affirm et des événements de webhook pertinents

Configurer Stripe
Côté serveur

Tout d’abord, créez un compte Stripe ou connectez-vous.

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

Command Line
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer un PaymentIntent
Côté serveur

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.

Créez tout d’abord un PaymentIntent sur votre serveur, puis indiquez le montant à encaisser et la devise. Si votre intégration inclut déjà l’API Payment Intents, ajoutez Affirm à la liste des types de moyens de paiement pour votre PaymentIntent.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=6000 \ -d currency=usd \ -d "payment_method_types[]"=affirm

Vous pouvez également utiliser le Payment Element et gérer les moyens de paiement à partir du Dashboard. Stripe gère le retour des moyens de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le tunnel de paiement. Pour plus d’informations, consultez la rubrique Accepter un paiement.

Récupérer la clé secrète du client

Le PaymentIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.

Récupérez la clé secrète du client à partir d’un endpoint sur votre serveur, à l’aide de la fonction fetch du navigateur. Cette approche est recommandée si votre côté client est une application d’une seule page, en particulier si elle repose sur un framework front-end moderne tel que React. Créez l’endpoint de serveur qui gère la clé secrète du client :

main.rb
Ruby
Python
PHP
Java
Node
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Récupérez ensuite la clé secrète du client à l’aide JavaScript côté client :

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Collecter et envoyer les informations du moyen de paiement
Côté client

Lorsqu’un client clique pour payer avec Affirm, nous vous recommandons d’utiliser Stripe.js pour soumettre le paiement à Stripe. Stripe.js est notre bibliothèque JavaScript de base pour créer les tunnels de paiement : elle gère automatiquement les opérations complexes d’intégration et vous permettra de facilement étendre votre intégration à d’autres moyens de paiement par la suite.

Intégrez le script Stripe.js à votre page de paiement en l’ajoutant entre les balises head de votre fichier HTML.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.

script.js
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Au lieu de transmettre au client l’objet PaymentIntent dans son intégralité, utilisez la clé secrète du client de l’Étape 2. Cette clé est différente de vos clés API qui servent à authentifier les requêtes à l’API Stripe.

Utilisez la clé secrète du client avec prudence, car elle peut servir à mener à bien le paiement. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne la dévoilez à personne d’autre que votre client.

Améliorer le taux de paiements réussis en renseignant des informations supplémentaires

Bien que les informations de livraison et de facturation ne soient pas obligatoires, nous vous conseillons de les transmettre afin d’améliorer vos taux de conversion.

Dans ce guide d’intégration, il vous est conseillé de transmettre les informations de livraison et de facturation côté client après que l’utilisateur a sélectionné son moyen de paiement.

Si vous transmettez ces champs, l’adresse de livraison doit comporter des données valides dans les champs line1, city, state, postal_code et country. De la même manière, les champs line1, city, state, postal_code et country des informations de facturation doivent être renseignés avec des données valides.

Confirmer le PaymentIntent

Utilisez stripe.confirmAffirmPayment pour gérer la redirection depuis votre page et permettre l’exécution du paiement. Vous devez aussi transmettre une return_url à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois le paiement effectué sur le site Web ou l’application mobile Affirm.

Sur la page de paiement d’Affirm, le client choisit les options de paiement disponibles. Pour plus d’informations, consultez la vue d’ensemble. Vous ne pouvez pas limiter les options de paiement ni en présélectionner sur la page de paiement d’Affirm ; ce choix d’options laissé au client maximise vos chances de conclure des transactions.

script.js
// Redirects away from the client stripe.confirmAffirmPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { // Billing information is optional but recommended to pass in. billing_details: { email: 'jenny@rosen.com', name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, }, // Shipping information is optional but recommended to pass in. shipping: { name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, // Return URL where the customer should be redirected after the authorization. return_url: 'https://example.com/checkout/complete', } ).then(function(result) { if (result.error) { // Inform the customer that there was an error. console.log(result.error.message); } });

Lorsque votre client effectue un paiement, Stripe le redirige vers l’URL return_url et inclut les paramètres de requête d’URL suivants. La page de redirection peut utiliser ces paramètres pour récupérer l’état du PaymentIntent et ainsi afficher l’état du paiement pour le client.

Lorsque vous spécifiez une URL return_url, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection.

ParamètreDescription
payment_intentIdentifiant unique du PaymentIntent.
payment_intent_client_secretLa clé secrète du client de l’objet PaymentIntent. Pour les intégrations d’abonnements, le client_secret est également exposé sur l’objet Invoice via confirmation_secret

Lorsque le client est redirigé vers votre site, vous pouvez utiliser le payment_intent_client_secret pour interroger le PaymentIntent et communiquer l’état de la transaction à votre client.

Tester une intégration Affirm

Testez votre intégration Affirm en affichant la page de redirection à l’aide de vos clés API de test. Vous pouvez tester la réussite de paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passe alors de l’état requires_action à succeeded.

Pour tester un échec d’authentification de l’utilisateur, utilisez vos clés API de test et accédez à la page de redirection. Sur cette page, cliquez sur X dans le coin supérieur gauche. Le PaymentIntent bascule alors de l’état requires_action à requires_payment_method.

Lorsque le système vous redirige vers l’environnement de test d’Affirm, Affirm peut vous demander les quatre derniers chiffres de votre SSN. Affirm suggère d’utiliser '0000' ou '5678'.

FacultatifSéparer l'autorisation et la capture

FacultatifGérer la redirection Affirm manuellement

FacultatifGérer les événements post-paiement

FacultatifAfficher des informations relatives aux moyens de paiement sur votre site Web

Échecs de paiement

Affirm prend en compte de nombreux facteurs pour accepter ou refuser une transaction (par exemple, la durée d’utilisation d’Affirm par le client, le montant restant que le client doit rembourser et la valeur de la commande actuelle).

Présentez toujours des options de paiement supplémentaires telles que card dans votre tunnel de paiement, car les paiements Affirm ont un taux de refus supérieur aux autres moyens de paiement. Dans ces cas, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_payment_method.

Hormis le refus d’un paiement, pour un PaymentIntent d’Affirm avec un état requires_action, il est attendu des clients qu’ils effectuent le paiement sous 12 heures une fois qu’ils ont été redirigés vers le site d’Affirm. Si aucune action n’est prise dans les 12 heures, le PaymentMethod est détaché et l’état de l’objet PaymentIntent passe automatiquement à requires_payment_method.

Dans ce cas, informez votre client pour réessayer avec une option de paiement différente présentée dans votre tunnel de paiement.

Codes d’erreur

Voici les codes d’erreur courants et les actions recommandées correspondantes :

Code d’erreurAction recommandée
payment_intent_payment_attempt_failedErreur générique indiquant l’échec du paiement Affirm. Des informations supplémentaires peuvent être fournies dans le motif de l’erreur de paiement.
payment_method_provider_declineAffirm a refusé le paiement du client. Le client doit désormais contacter Affirm pour obtenir plus d’informations.
payment_intent_payment_attempt_expiredLe client n’a jamais effectué le paiement sur la page de paiement d’Affirm et la session a expiré. Stripe fait automatiquement expirer les Payment Intents qui n’ont pas été autorisés 12 heures après la création de la session de paiement.
payment_method_not_availableAffirm a rencontré une erreur liée au service et n’est pas en mesure de répondre à la demande. Réessayez ultérieurement.
amount_too_smallSaisissez un montant compris dans les limites de transaction par défaut d’Affirm.
amount_too_largeSaisissez un montant compris dans les limites de transaction par défaut d’Affirm.

Pour certaines erreurs, des informations supplémentaires peuvent être fournies dans le motif de l’erreur de paiement :

Motif de l’erreurSignification
generic_declineMotif par défaut d’une erreur de paiement. Cela indique généralement que le partenaire a refusé le paiement (par exemple, en raison de fonds insuffisants), que l’émetteur a refusé le paiement, que la transaction comportait un achat à haut risque ou un motif similaire. Dans ces cas de figure, Stripe ne reçoit pas toujours de motif de refus.
affirm_checkout_canceledSoit le client a annulé le paiement Affirm, soit Affirm a rejeté l’éligibilité du client au prêt. Stripe ne peut pas faire la différence entre ces deux types d’événements.
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc