Accepter un paiement PayPal
Comment accepter les paiements PayPal, un portefeuille électronique populaire auprès des entreprises européennes.
Configurer StripeCôté serveur![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
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 :
Créer un PaymentIntentCôté serveur![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Stripe utilise un objet de paiement, appelé PaymentIntent, pour suivre et gérer tous les états du paiement jusqu’à sa finalisation. Créez un PaymentIntent
sur votre serveur, en spécifiant le montant à collecter et la devise. Si vous avez déjà créé une intégration à l’aide de l’API Payment Intents, ajoutez paypal
à la liste des types de moyens de paiement de votre PaymentIntent.
Le PaymentIntent renvoyé contient la clé secrète du client, qui est utilisée pour finaliser le paiement de manière sécurisée au lieu de transmettre la totalité de l’objet PaymentIntent. Renvoyez la clé secrète au client pour pouvoir l’utiliser ultérieurement.
Inclure une description personnalisée![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Par défaut, les détails de la commande sur la page d’activité d’achat des utilisateurs PayPal affichent le montant de la commande. Vous pouvez modifier cette configuration en saisissant une description personnalisée dans la propriété description
.
Personnaliser la langue préférée![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Par défaut, la page d’autorisation PayPal est localisée en fonction de plusieurs variables telles que le pays du marchand. Vous pouvez définir la langue préférée de votre client à l’aide de la propriété preferred_
. La valeur doit être un code de langue composé de deux minuscules, suivi d’un trait d’union (-
), puis d’un code de pays à deux majuscules. Par exemple, la valeur pour un utilisateur francophone basé en Belgique est fr-BE
. Voir langues prises en charge pour plus d’informations.
Libellés de relevé bancaire avec PayPal![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Le libellé qui apparaît sur le relevé bancaire de l’acheteur est défini par PayPal et est par défaut PAYPAL *YOUR_
. Si vous définissez le champ statement_
lors de la création du PaymentIntent
, sa valeur est ajoutée à celle définie par PayPal, dans la limite de 22 caractères.
Par exemple, si le nom de votre entreprise dans PayPal est BUSINESS
et que vous configurez statement_
sur order_
, la mention PAYPAL *BUSINESS order
apparaîtra sur le relevé de compte bancaire de vos clients.
Soumettre le paiement à StripeCôté client![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Lorsqu’un client clique pour payer avec PayPal, utilisez Stripe.js pour soumettre le paiement à Stripe. Stripe.js est la bibliothèque JavaScript de base pour créer les tunnels de paiement : elle gère automatiquement les opérations complexes telles que la redirection décrite ci-dessous, et facilite l’extension de votre intégration à d’autres moyens de paiement. Incluez le script Stripe.js sur votre page de paiement en l’ajoutant à la section head
de votre fichier HTML.
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></script> </head>
Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
Pour créer un paiement côté client, transmettez la clé secrète du client de l’objet PaymentIntent
créé à l’étape 2. La clé secrète du client est distincte des clés API authentifiant vos requêtes à l’API Stripe. Elle doit être utilisée avec prudence, car elle peut servir à réaliser 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.
Confirmer le paiement PayPal![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Appelez stripe.confirmPayPalPayment pour rediriger votre client vers PayPal pour finaliser le paiement. Ajoutez une URL return_
pour indiquer la page vers laquelle Stripe doit rediriger votre client une fois qu’il a effectué le paiement.
// Redirects away from the client const {error} = await stripe.confirmPayPalPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }
Si vous versez vos fonds PayPal à l’aide de PayPal, le montant de l’opération sur solde associée au paiement sera égal à zéro quel que soit le montant du paiement, car l’opération représente l’argent transféré vers et depuis votre solde Stripe. En revanche, pour PayPal, les fonds sont versés sur votre solde PayPal et aucun montant n’est versé sur votre solde Stripe. Dans ce cas, l’opération sur solde inclut également les frais qui lui sont associés. En savoir plus sur la préférence de versement.
Effectuer la redirection![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Les paramètres de requête d’URL suivants sont fournis lorsque Stripe redirige le client vers l’URL return_
.
Paramètre | Description |
---|---|
payment_ | L’identifiant unique du PaymentIntent . |
payment_ | La clé secrète du client de l’objet PaymentIntent . |
Vous pouvez également ajouter vos propres paramètres de requête lorsque vous fournissez l’url de retour return_
. Ceux-ci resteront activés pendant toute la durée du processus de redirection. Le paramètre return_
doit correspondre à une page de votre site Web sur laquelle l’état du paiement est fourni. Vous devez vérifier l’état du PaymentIntent
lors de l’affichage de la page de retour. Vous pouvez le faire en utilisant la fonction retrievePaymentIntent
de Stripe.js et en transmettant payment_
.
(async () => { const url = new URL(window.location); const clientSecret = url.searchParams.get('payment_intent_client_secret'); const {paymentIntent, error} = await stripe.retrievePaymentIntent(clientSecret); if (error) { // Handle error } else if (paymentIntent && paymentIntent.status === 'succeeded') { // Handle successful payment } })();
Vous trouverez le nom, l’adresse e-mail, l’ID du payeur et l’ID de la transaction du payeur dans la propriété payment_method_details.
Champ | Valeur |
---|---|
payer_ | L’adresse e-mail du payeur sur son compte PayPal. |
payer_ | Le nom du payeur sur son compte PayPal. |
payer_ | L’identifiant unique du compte PayPal du payeur. |
transaction_ | Un ID de transaction unique généré par PayPal. |
{ "charges": { "data": [ { "payment_method_details": { "paypal": { "payer_id": "H54KFE9XXVVYJ", "payer_email": "jenny@example.com", "payer_name": "Jenny Rosen", "transaction_id": "89W40396MK104212M" }, "type": "paypal" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU", "created": 1445277809, "currency": "eur", "flow": "redirect",