Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
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
    Paiements en stablecoins
    Prélèvements bancaires
    Virements avec redirection bancaire
    Virements bancaires
    Virements (Sources)
    Achetez maintenant, payez plus tard
      Affirm
      Afterpay/Clearpay
        Accepter un paiement
        Messages du site
      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
Paiements dans 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
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsAdd payment methodsBuy now, pay laterAfterpay / Clearpay

Accepter un paiement Afterpay ou Clearpay

Comment accepter Afterpay (aussi connu sous le nom de Clearpay au Royaume-Uni), un moyen de paiement utilisé aux États-Unis, au Canada, au Royaume-Uni, en Australie, et en Nouvelle-Zélande.

L’acceptation d’Afterpay dans votre application consiste à afficher une vue Web permettant à votre client d’authentifier son paiement. Votre client retourne ensuite dans votre application et vous pouvez immédiatement confirmer si le paiement a abouti ou échoué.

Remarque

Avant de commencer l’intégration, assurez-vous que votre compte est admissible à Afterpay en vous rendant dans vos paramètres des moyens de paiement.

Configurer Stripe
Côté serveur
Côté client

Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.

Côté serveur

Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API Stripe. Utilisez les bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :

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

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.

Pour installer le SDK, veuillez suivre les étapes ci-dessous :

  1. Dans Xcode, sélectionnez File > Add Package Dependencies… puis saisissez https://github.com/stripe/stripe-ios-spm en tant qu’URL du référentiel.
  2. Sélectionnez le dernier numéro de version, visible sur notre page des versions.
  3. Ajoutez le produit StripePaymentsUI à la cible de votre application.

Remarque

Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.

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.

AppDelegate.swift
Swift
Objective-C
No results
import UIKit import StripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Remarque

Utilisez vos clés de 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.

Créez un PaymentIntent
Côté serveur
Côté client

Un PaymentIntent est un objet qui représente votre intention de collecter un paiement auprès d’un client et qui suit le cycle de vie du processus de paiement à chaque étape.

Côté serveur

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

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

Options supplémentaires du moyen de paiement

Vous pouvez préciser un paramètre reference facultatif dans les options des moyens de paiement pour votre PaymentIntent qui définit un identifiant de commande interne pour le paiement. Bien que ces informations ne soient généralement pas visibles ni par l’entreprise ni par le consommateur, l’équipe d’assistance interne d’Afterpay peut y accéder lors des demandes d’assistance manuelles. L’identifiant est limité à 128 caractères et ne doit contenir que des lettres, des chiffres, des traits de soulignement, des barres obliques inversées et des tirets.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd" \ -d "payment_method_types[]"="afterpay_clearpay" \ -d "payment_method_options[afterpay_clearpay][reference]"="order_123"

Côté client

Le PaymentIntent renvoyé contient une clé secrète du client, que vous pouvez envoyer au client pour une exécution sécurisée du processus de paiement au lieu de lui transmettre la totalité de l’objet PaymentIntent. Côté client, demandez un PaymentIntent auprès de votre serveur et sauvegardez la clé secrète du client.

Swift
Objective C
No results
import UIKit import StripePayments class CheckoutViewController: UIViewController { var paymentIntentClientSecret: String? func startCheckout() { // Request a PaymentIntent from your server and store its client secret } }

Collectez les informations du moyen de paiement
Côté client

Afterpay exige que les données de facturation soient présentes pour que le paiement aboutisse. Dans votre application, recueillez les informations de facturation requises auprès du client :

  • Nom complet (nom et prénom)
  • Adresse e-mail
  • Adresse de facturation complète

Créez un objet STPPaymentMethodParams avec ces données.

De plus, bien que les informations de livraison ne soient pas obligatoires, elles peuvent contribuer à améliorer les taux d’authentification. Pour collecter les informations de livraison, recueillez les renseignements suivants auprès du client :

  • Nom complet
  • Adresse de livraison complète

Créez un objet STPPaymentIntentShippingDetailsAddressParams avec ces informations.

Swift
Objective C
No results
// Billing details let billingDetails = STPPaymentMethodBillingDetails() billingDetails.name = "Jane Doe" billingDetails.email = "email@email.com" let billingAddress = STPPaymentMethodAddress() billingAddress.line1 = "510 Townsend St." billingAddress.postalCode = "94102" billingAddress.country = "US" billingDetails.address = billingAddress // Afterpay PaymentMethod params let afterpayParams = STPPaymentMethodParams(afterpayClearpay: STPPaymentMethodAfterpayClearpayParams(), billingDetails: billingDetails, metadata: nil) // Shipping details // Shipping details are optional but recommended to pass in. let shippingAddress = STPPaymentIntentShippingDetailsAddressParams(line1: "510 Townsend St.") shippingAddress.country = "US" shippingAddress.postalCode = "94102" let shippingDetails = STPPaymentIntentShippingDetailsParams(address: shippingAddress, name: "Jane Doe")

Envoyez le paiement à Stripe
Côté client

Récupérez la clé secrète du client à partir du PaymentIntent que vous avez créé à l’étape 2, puis appelez la méthode STPPaymentHandler confirmPayment:. Une vue Web s’affiche pour permettre au client de finaliser le paiement. Une fois l’opération terminée, le bloc de finalisation est appelé avec le résultat du paiement.

Swift
Objective C
No results
let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) paymentIntentParams.paymentMethodParams = afterpayParams // Shipping details are optional but recommended to pass in. paymentIntentParams.shipping = shippingDetails STPPaymentHandler.shared().confirmPayment(paymentIntentParams, with: self) { (handlerStatus, paymentIntent, error) in switch handlerStatus { case .succeeded: // Payment succeeded case .canceled: // Payment was canceled case .failed: // Payment failed @unknown default: fatalError() } }

FacultatifAjoutez des postes de facture au Paymentintent

Vous pouvez, à titre facultatif, accepter des données de postes de facture afin de fournir à Afterpay davantage d’indications en termes de risques. Cette fonctionnalité est actuellement en version bêta privée. Veuillez nous contacter pour y accéder.

FacultatifSéparez l'autorisation et la capture

Contrairement à l’autorisation et à la capture distinctes pour les paiements par carte, Afterpay débite le client du montant du premier versement au moment de l’autorisation. Vous disposez ensuite d’un maximum de 13 jours après l’autorisation pour capturer le reste du paiement. Si vous ne capturez pas le paiement dans le délai imparti, le premier versement échelonné est remboursé au client, et ce dernier ne sera pas débité pour les autres versements. Dans ce cas, Stripe annule également le PaymentIntent et envoie un événement payment_intent.canceled.

Si vous savez que vous ne pouvez pas capturer le paiement, nous vous recommandons d’annuler le PaymentIntent plutôt que d’attendre la fin de la période de 13 jours. L’annulation proactive du PaymentIntent déclenche le remboursement immédiat du premier versement échelonné à votre client, ce qui permet d’éviter toute confusion éventuelle concernant les paiements sur son relevé.

  • Indiquer à Stripe d’uniquement autoriser
  • Pour indiquer que vous voulez séparer l’autorisation de la capture, définissez la valeur de l’option capture_method sur manual lorsque vous créez le PaymentIntent. Ce paramètre indique à Stripe d’autoriser uniquement le montant sur le compte Afterpay du client.

    Command Line
    curl
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :
    \ -d "amount"=1099 \ -d "currency"="usd" \ -d "payment_method_types[]"="afterpay_clearpay" \ -d "capture_method"="manual" \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="1234 Main Street" \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"="CA" \ -d "shipping[address][country]"="US" \ -d "shipping[address][postal_code]"=94111

    Une fois l’autorisation accordée, Stripe envoie un événement payment_intent.amount_capturable_updated. Consultez notre guide des événements pour de plus amples informations utiles.

  • Capturer les fonds
  • Une fois l’autorisation réussie, l’état du PaymentIntent passe à requires_capture. Pour capturer les fonds autorisés, faites une demande de capture du PaymentIntent. Le montant total autorisé est capturé par défaut. Vous ne pouvez pas capturer un montant supérieur à cette valeur, mais vous pouvez capturer un montant inférieur.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents/
    {{PAYMENT_INTENT_ID}}
    /capture
    \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount_to_capture=750

    Facultatif Annuler l’autorisation

    Si vous devez annuler une autorisation, vous pouvez annuler le PaymentIntent correspondant.

    FacultatifGérer les événements post-paiement

    Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez le Dashboard, un webhook personnalisé ou une solution partenaire pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.

    Plutôt que d’attendre un rappel de votre client, écoutez ces événements. En effet, côté client, l’acheteur pourrait fermer la fenêtre de son navigateur ou quitter l’application avant l’exécution du rappel. Des personnes malveillantes peuvent en profiter pour manipuler la réponse. Si vous configurez votre intégration de manière à écouter les événements asynchrones, cela vous permettra également d’accepter de nouveaux moyens de paiement plus facilement à l’avenir. Apprenez-en davantage sur les différences entre les différents moyens de paiement pris en charge.

    • Gérer les événements manuellement dans le Dashboard

      Utilisez le Dashboard pour afficher vos paiements de test dans le Dashboard, envoyer des reçus par e-mail, gérer les virements ou réessayer les paiements échoués.

    • Créer un webhook personnalisé

      Créez un gestionnaire de webhook personnalisé pour écouter les événements et créer des tunnels de paiement asynchrones personnalisés. Testez et déboguez votre intégration de webhook localement avec la CLI Stripe.

    • Intégrer une application prédéfinie

      Gérez les événements commerciaux courants, tels que l’automatisation ou le marketing et les ventes, en intégrant une application partenaire.

    FacultatifTestez l'intégration Afterpay

    Testez votre intégration Afterpay 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 passera 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 Échec du paiement test. Votre PaymentIntent bascule alors de l’état requires_action à requires_payment_method.

    Pour les PaymentIntents à capture manuelle en mode test, le PaymentIntent non capturé expirera automatiquement 10 minutes après l’aboutissement de l’autorisation.

    Échecs de paiement

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

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

    Pour un PaymentIntent Afterpay portant l’état requires_action, les clients doivent effectuer le paiement dans les 3 heures suivant leur redirection vers le site d’Afterpay (ceci ne s’applique pas aux paiements refusés). Si aucune action n’est effectuée dans ce délai de 3 heures, le PaymentMethod est dissocié et l’état de l’objet PaymentIntent passe automatiquement à requires_payment_method.

    Dans ces 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 Afterpay. Il peut également s’agir d’un refus qui n’apparaît pas sous la forme d’un code d’erreur de refus.
    payment_method_provider_declineAfterpay a refusé le paiement du client. Le client doit désormais contacter Afterpay pour obtenir plus d’informations.
    payment_intent_payment_attempt_expiredLe client n’a jamais finalisé le paiement sur la page de paiement Afterpay, et la session de paiement a expiré. Stripe abandonne automatiquement les PaymentIntents qui n’ont pas été autorisés avec succès 3 heures après la création initiale du paiement.
    payment_method_not_availableAfterpay 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’Afterpay pour chaque pays.
    amount_too_largeSaisissez un montant compris dans les limites de transaction par défaut d’Afterpay pour chaque pays.
    Cette page vous a-t-elle été utile ?
    OuiNon
    • Besoin d'aide ? Contactez le service Support.
    • Consultez notre log des modifications.
    • Des questions ? Contactez l'équipe commerciale.
    • LLM ? Lire llms.txt.
    • Propulsé par Markdoc