Facebook Pixel

Comment intégrer le paiement pré approuvé PayPal sur son site web


Comment intégrer le paiement pré approuvé PayPal sur son site web

Vous souhaitez intégrer le paiement pré approuvé PayPal sur votre site web ? Ça tombe bien, dans cet article, nous allons voir ensemble comment faire. Comme vous le savez si vous êtes une entreprise et souhaitez vendre les abonnements sur votre site web, le paiement pré approuvé est l’option qu’il vous faut. En effet, ça vous permet de demande le paiement à vos clients sans être constamment derrière eu pour les réclamations. Dans cet article, nous verrons brièvement ce que c’est le paiement pré approuvé. Ensuite, nous expliquerons comment ça marche. Pour finir, nous allons voir comment vous pouvez l’intégrer sur votre site web. Si vous souhaitez du code prêt à l’usage, vous pouvez cliquer sur ce lien et nous contactez.

Qu’est-ce que le paiement pré approuvé ?

C’est un mécanisme utilisé par des plateformes comme PayPal qui permet à un marchand ou à un fournisseur de services de débiter automatiquement le compte d’un client. Vous pouvez le faire sans demander son approbation explicite pour chaque transaction après l’autorisation initiale. Ce type de paiement est couramment utilisé pour les paiements récurrents.  Les entreprises l’utilisent pour les abonnements ou pour des achats multiples où l’utilisateur a donné une autorisation unique pour des transactions futures.

Comment Fonctionne le paiement pré-approuvé ?

Le mode de fonctionnement des paiements pré-approuvé est le suivant:

Autorisation initiale

Le client donne son consentement pour que son compte PayPal soit débité automatiquement à l’avenir. Cela se fait généralement en acceptant un accord de facturation (Billing Agreement) avec le marchand. Lors de cette étape, PayPal demande au client de confirmer qu’il autorise des paiements futurs.

Exécution de paiements récurrents ou multiples

Après cette autorisation initiale, le marchand peut déclencher des paiements automatiques sans que le client ait besoin d’approuver à chaque fois. Cela est utile pour des services comme

  • les abonnements mensuels,
  • les factures à échéance,
  • ou encore des services de livraison avec des paiements différés.

Flexibilité pour le client

Le client conserve le contrôle sur ces paiements en pouvant annuler l’accord de facturation à tout moment via son compte PayPal.

Utilisations typiques du paiement pré-approuvé

Si vous consommez des services en ligne, vous avez certainement eu l’occasion de faire recours à des paiements récurrents.

Abonnements

Pour des services qui nécessitent des paiements mensuels, hebdomadaires ou annuels (comme Netflix, Spotify).

Facturation automatique

Pour des services publics ou d’autres factures régulières où le montant peut varier (téléphone, électricité).

Paiements différés

Pour les services qui permettent au client de faire des achats multiples sans avoir à approuver chaque paiement (par exemple, les plateformes de covoiturage ou de location de logements).

En résumé, un paiement pré-approuvé permet à un client de donner son consentement une seule fois pour une série de transactions futures, facilitant ainsi les paiements automatisés sans nécessiter une intervention manuelle à chaque fois.

Comment intégrer le paiement pré approuvé PayPal sur son site web ?

Pour intégrer un paiement pré-approuvé PayPal sur votre site web, vous devez suivre les étapes ci-dessous :

Option 1 – utilisez  paypal/rest-api-sdk-php (abandonné)

Vous pouvez utiliser les composantes php.

Noter que cette approche n’est plus maintenue par PayPal. Pour une option plus sécurisée, veuillez-vous référer à l’approche de l’option 2.

1. Configurer un compte PayPal Business

  • Assurez-vous que vous avez un compte PayPal Business. Si ce n’est pas encore fait, vous pouvez en créer un via le site officiel de PayPal.

2. Activer PayPal Payments API

  • Accédez à votre tableau de bord PayPal Developer (developer.paypal.com).
  • Connectez-vous avec votre compte Business.
  • Sous My Apps & Credentials, générez les informations d’identification (Client ID et Secret) pour l’environnement Sandbox (pour les tests) ou Live (pour la production).
  • Activez l’API Reference Transactions pour permettre les paiements pré-approuvés. Cette fonctionnalité n’est pas activée par défaut, et vous devrez peut-être contacter PayPal pour l’activer.

3. Configurer l’environnement de développement

  • Installez un SDK ou une bibliothèque PayPal pour faciliter l’intégration. Par exemple, vous pouvez utiliser le SDK PayPal PHP ou JS.

Pour PHP, vous pouvez utiliser Composer pour installer le SDK PayPal :

composer require paypal/rest-api-sdk-php

Pour JavaScript, incluez simplement le script PayPal sur votre page :

<script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID"><script>

4. Créer un paiement pré-approuvé

Utilisez l’API PayPal pour créer un paiement pré-approuvé. Voici les étapes principales à suivre :

  • Créez une Billing Agreement (contrat de facturation) qui permet au client de pré-approuver les paiements futurs.
  • Générez un jeton de paiement à partir de l’accord de facturation.
  • Lorsque le client approuve le paiement, vous pouvez ensuite effectuer des paiements récurrents ou pré-approuvés sans avoir à demander l’approbation du client à chaque fois.

Exemple d’appel API pour créer une Billing Agreement :

$agreement = new Agreement();
$agreement->setName('Payment Agreement')
 ->setDescription('Agreement for future payments')
 ->setStartDate('2023-12-20T10:00:00Z');

$plan = new Plan();
$plan->setId('P-xxxxxxxxxxxx');
$agreement->setPlan($plan);

$payer = new Payer();
$payer->setPaymentMethod('paypal');
$agreement->setPayer($payer);

try {
$agreement->create($apiContext);
$approvalUrl = $agreement->getApprovalLink();
echo "Redirect user to: " . $approvalUrl;
} catch (Exception $ex) {
// Handle exception
}

5. Capturer les paiements futurs

Une fois le client redirigé vers l’URL de confirmation PayPal, vous pouvez utiliser le jeton retourné pour capturer les paiements à l’avenir.

Exemple pour capturer un paiement pré-approuvé :

$agreement = new Agreement();
$agreement->execute($token, $apiContext);

6. Tester l’intégration

Avant de passer en production, utilisez l’environnement Sandbox pour tester toutes les transactions. Assurez-vous que les paiements sont correctement capturés et que vous pouvez exécuter des transactions récurrentes ou pré-approuvées.

7. Passer en production

Une fois les tests terminés, remplacez les informations d’identification Sandbox par celles de l’environnement Live dans votre code.

Cette intégration vous permet de débiter le compte PayPal du client de manière automatique sans demander de nouvelles autorisations après l’approbation initiale.

Option 1 – Intégrer le paiement pré approuvé PayPal avec l’API REST sans SDK

Le PayPal Checkout SDK en PHP a également été abandonné. Cependant, vous pouvez toujours intégrer PayPal en utilisant l’API REST de PayPal directement sans SDK. Vous utiliserez des requêtes HTTP standard en PHP (via cURL ou des bibliothèques comme Guzzle) pour interagir avec l’API PayPal.

Étapes pour intégrer PayPal avec l’API REST sans SDK

  1. Créer un compte PayPal Developer
    • Si vous n’avez pas déjà un compte PayPal Developer, créez-en un sur developer.paypal.com.
    • Dans votre tableau de bord, créez une application pour obtenir vos identifiants Client ID et Client Secret.
  2. Obtenir un jeton d’accès OAuth 2.0
    La première étape consiste à obtenir un jeton d’accès pour authentifier vos requêtes API.

Voici un exemple de code en PHP pour obtenir un jeton d’accès :

$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api-m.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "$clientId:$clientSecret");
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");

$headers = [];
$headers[] = "Accept: application/json";
$headers[] = "Accept-Language: en_US";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);

$json = json_decode($response);
$accessToken = $json->access_token;
  1. Créer une commande de paiement
    Une fois que vous avez obtenu le jeton d’accès, vous pouvez créer une commande pour un paiement.

Exemple de création d’une commande de paiement avec cURL en PHP :

$accessToken = 'YOUR_ACCESS_TOKEN';

$orderData = [
"intent" => "CAPTURE",
"purchase_units" => [[
"amount" => [
"currency_code" => "USD",
"value" => "100.00"
]
]],
"application_context" => [
"cancel_url" => "https://example.com/cancel",
"return_url" => "https://example.com/return"
]
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api-m.sandbox.paypal.com/v2/checkout/orders");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($orderData));

$headers = [];
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer $accessToken";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);

$order = json_decode($response);
echo "Approve the payment at: " . $order->links[1]->href;
  1. Capturer un paiement
    Une fois que l’utilisateur a approuvé la transaction, vous devez capturer le paiement en utilisant l’ID de la commande.

Exemple pour capturer un paiement :

$orderId = 'ORDER_ID';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api-m.sandbox.paypal.com/v2/checkout/orders/$orderId/capture");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

$headers = [];
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer $accessToken";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);

$capture = json_decode($response);
print_r($capture);
  1. Tester avec l’environnement Sandbox
    Utilisez toujours l’URL sandbox pour tester vos paiements :

    • URL Sandbox : https://api-m.sandbox.paypal.com/
    • URL Live : https://api-m.paypal.com/
  2. Passer en production
    Une fois vos tests terminés, passez en mode production en remplaçant les URL de l’API et les identifiants de sandbox par ceux de production.

Documentation

Vous pouvez consulter la documentation de l’API PayPal pour plus de détails sur les autres fonctionnalités disponibles.

En utilisant directement les appels d’API, vous évitez de dépendre d’un SDK obsolète et avez plus de contrôle sur l’intégration des paiements dans votre site.

Laisser un commentaire :

Nous utilisons des cookies pour garantir que nous vous offrons la meilleure expérience sur notre site Web. En poursuivant votre navigation sur ce site, vous consentez à notre utilisation des cookies. ... Notre politique