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
    Paiements en temps réel
    Coupons
    Portefeuilles
      Alipay
      Amazon Pay
      Apple Pay
      Cash App Pay
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
        Bouton PayPal
        Activer les paiements PayPal
        Accepter un paiement
        Configurer des paiements futurs
        Choisir une préférence de règlement
        Paiements contestés
        Rapprochement des virements
        Langues prises en charge
        Importer des moyens de paiement PayPal enregistrés
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    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
AccueilPaiementsAdd payment methodsWalletsPayPal

Configurer des paiements PayPal futurs

Découvrez comment enregistrer des informations PayPal pour débiter vos clients ultérieurement.

Configurez des paiements PayPal futurs afin d’enregistrer les informations de paiement des clients pour les abonnements, les paiements différés et simplifier les futurs achats. Découvrez comment activer et utiliser les paiements récurrents avec PayPal par le biais de Stripe.

Activer les paiements récurrents

Stripe active automatiquement les paiements récurrents pour la plupart des utilisateurs lorsqu’ils activent les paiements PayPal dans le Dashboard Stripe. Cependant, en raison des politiques de PayPal et des restrictions régionales, certains utilisateurs peuvent avoir besoin d’activer manuellement les paiements récurrents. C’est le cas notamment pour les utilisateurs qui ont configuré leur compte avant l’introduction de l’activation automatique. Pour activer manuellement les paiements récurrents :

  1. Accédez à vos paramètres des moyens de paiement.

  2. Cliquez sur PayPal > Activer dans la section Paiements récurrents.

Une fois que vous activez les paiements récurrents, l’accès apparaît comme en attente dans le Dashboard. L’accès est généralement disponible sous cinq jours ouvrables.

Une fois l’accès accordé, les paiements récurrents sont disponibles dans vos paramètres PayPal. Dans les environnements de test, les paiements récurrents sont activés par défaut.

Utilisez Stripe Checkout pour recueillir à l’avance des informations de paiement PayPal et déterminez ultérieurement la date et le montant du paiement. Utilisez cette méthode pour :

  • Enregistrer des moyens de paiement dans un portefeuille pour faciliter les futurs achats
  • Encaisser des surtaxes après la fourniture d’un service
  • Démarrer une période d’essai gratuit dans le cadre d’un abonnement

Configurer Stripe
Côté serveur

Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.

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

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer ou récupérer un objet Customer avant la configuration
Côté serveur

Pour que la réutilisation d’un moyen de paiement PayPal soit possible pour de futurs paiements, celui-ci doit être associé à un objet Customer.

Vous devez créer un objet Customer lorsque votre client crée un compte auprès de votre entreprise. En associant l’ID de l’objet Customer à votre propre représentation interne de ce client, vous pourrez par la suite récupérer et utiliser les informations stockées concernant son moyen de paiement. Si votre client n’a pas créé de compte, il vous est toujours possible de lui créer un objet Customer sans attendre, que vous associerez ultérieurement à votre représentation interne de ce compte client.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Créer une session Checkout
Côté client
Côté serveur

Pour que vous puissiez accepter les paiements PayPal, votre client doit préalablement vous autoriser à utiliser son compte PayPal pour ses paiements futurs via Stripe Checkout.

Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Créez une session Checkout en mode setup pour recueillir les informations requises. Après avoir créé la session Checkout, redirigez votre client vers l’URL renvoyée dans la réponse.

Command Line
curl
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="paypal" \ -d mode=setup \ -d customer=
{{CUSTOMER_ID}}
\ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

Quand votre client fournit les informations de son moyen de paiement, il est redirigé vers l’URL success_url, une page de votre site Web qui l’informe que son moyen de paiement a bien été enregistré. Mettez l’ID de session à disposition sur votre page de confirmation de paiement en incluant la variable de modèle {CHECKOUT_SESSION_ID} dans l’URL success_url, comme illustré ci-dessus.

Si lors d’une session Checkout, votre client clique sur votre logo sans fournir les données de son moyen de paiement, Checkout le redirige vers votre site Web sur la page cancel_url. Cette page est généralement celle que le client a consultée sur votre site avant d’être redirigé vers Stripe Checkout.

Mise en garde

Ne vous fiez pas uniquement à la redirection vers le success_url pour détecter l’initiation du paiement, sachant que :

  • Des utilisateurs malveillants pourraient accéder directement au success_url sans payer et obtenir l’accès à vos biens ou à vos services.
  • Il peut arriver que le client n’aboutisse pas au success_url à l’issue de son paiement. Il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne.

Récupérer le moyen de paiement
Côté serveur

Une fois que le client a soumis ses informations de paiement, récupérez l’objet PaymentMethod. Un PaymentMethod stocke les informations PayPal account du client pour ses paiements ultérieurs. Vous pouvez récupérer cet objet de manière synchrone en utilisant la success_url ou de manière asynchrone au moyen de webhooks.

La décision de récupérer l’objet PaymentMethod de manière synchrone ou asynchrone dépend de votre tolérance aux abandons de paiement. En effet, il peut arriver que le client n’aboutisse pas au success_url à l’issue de son paiement (il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne). L’utilisation de webhooks vous permet d’éviter que votre intégration ne subisse ce type d’abandon.

Gérez des webhooks checkout.session.completed, qui contiennent un objet Session. Pour en savoir plus, consultez la page sur la configuration de webhooks. Voici un exemple de réponse checkout.session.completed :

{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": null, "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }

Notez la valeur de la clé setup_intent, qui constitue l’ID du SetupIntent créé avec la session Checkout. Un SetupIntent est un objet utilisé pour configurer les informations PayPal account du client pour les paiements futurs. Récupérez l’objet SetupIntent avec l’ID.

Command Line
cURL
curl https://api.stripe.com/v1/setup_intents/seti_1EzVO3HssDVaQm2PJjXHmLlM \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Gérer les événements post-configuration
Côté serveur

Pour confirmer la bonne autorisation d’un contrat de facturation par votre client, il est préférable d’utiliser une méthode telle que les webhooks plutôt que d’attendre que votre client se rende sur la page d’état du paiement. Lorsqu’un client autorise le contrat de facturation, le SetupIntent émet un événement webhook setup_intent.succeeded. Si un client n’autorise pas correctement le contrat de facturation, le SetupIntent émet l’événement webhook setup_intent.setup_failed et revient à l’état requires_payment_method. Si un client révoque le contrat de facturation depuis son compte PayPal, cela génère un événement mandate.updated.

Tester l'intégration

Testez votre intégration PayPal avec vos clés API de test en accédant à la page de redirection. Vous pouvez tester l’aboutissement du 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.

Utiliser le moyen de paiement pour les paiements ultérieurs
Côté serveur

Au moment de débiter votre client hors session, utilisez les ID des objets Customer et PaymentMethod pour créer un PaymentIntent.

Pour trouver un instrument paypal à débiter, affichez la liste des objets PaymentMethod associés à votre client.

Command Line
cURL
curl -G https://api.stripe.com/v1/payment_methods \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d type=paypal

Après avoir obtenu les ID de Customer et de PaymentMethod, créez un PaymentIntent indiquant le montant et la devise du paiement. Définissez quelques autres paramètres afin d’effectuer le paiement hors session :

  • Assignez la valeur true à off_session afin d’indiquer que le client n’est pas dans votre tunnel de paiement lors de cette tentative de paiement. Si une authentification est requise, le PaymentIntent générera une erreur.
  • Assignez la valeur true à la propriété confirm du PaymentIntent, ce qui aura pour effet de générer immédiatement une confirmation lors de la création du PaymentIntent.
  • Renseignez l’ID du PaymentMethod dans payment_method et l’ID du client dans customer.
Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=eur \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=paypal \ -d payment_method={{PAYMENT_METHOD_ID}} \ -d off_session=true \ -d confirm=true

Annulation d'un moyen de paiement initiée par l'utilisateur
Côté serveur

Les clients peuvent annuler leur abonnement (contrat de facturation) via leur compte PayPal. Dans ce cas, Stripe émet un webhook mandate.updated. Tous les Payment Intents ultérieurs utilisant ce moyen de paiement échoueront tant qu’il n’existera pas de moyen de paiement associé à un mandat actif. Si un paiement échoue, l’état de l’objet Subscription passe à l’état configuré dans vos paramètres d’encaissement automatique. Informez votre client de l’échec du paiement et débitez-le à l’aide d’un autre moyen de paiement.

FacultatifSupprimer un compte PayPal enregistré
Côté serveur

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