Un guide pour l’intégration de PayPal sur votre site Web en PHP
PayPal est sans aucun doute l’une des passerelles de paiement les plus populaires pour les sites Web. La plupart des sites Web utilisent PayPal pour recevoir des paiements sur leur application. Dans cet article, nous étudions l’intégration de PayPal sur une application web en PHP.
Pourquoi choisir PayPal ?
La création d’un compte sur PayPal est totalement gratuite. Vous n’avez rien à payer d’avance. PayPal vous facturera par transaction.
Lors des transactions de paiement, PayPal utilise le cryptage Secure Socket Layers (SSL). Cela protège les données personnelles et confidentielles de vos clients. De ce fait, vos clients se sentent en sécurité lorsqu’ils effectuent des paiements via votre application Web.
PayPal permet également de payer par solde PayPal, cartes de crédit ou de débit. Il ajoute un certain nombre d’options pour qu’un client paie pour votre service.
Pour accepter les paiements par carte de crédit, vous pouvez également utiliser le service Authorize.net. Si vous souhaitez en savoir plus sur Authorize.net, suivez notre tutoriel Accepter le paiement par carte de crédit à l’aide de la passerelle de paiement Authorize.net en PHP.
Intégration PayPal
Comme nous parlons de site Web alimenté par PHP, nous utiliserons la bibliothèque officielle GiHub de PayPal. Cette bibliothèque est destinée aux applications PHP.
Nous vous recommandons d’utiliser Composer pour l’installation de la bibliothèque.
Ainsi, pour intégrer PayPal au site Web, exécutez d’abord la commande ci-dessous dans le répertoire racine du projet.
composer require "paypal/rest-api-sdk-php:*"
Obtenir l’identifiant du client et le secret du client
Lorsque le client paie via PayPal, le montant doit être déposé sur votre compte PayPal. Pour ce faire, nous devons obtenir votre identifiant client et votre secret client. Vous pouvez créer vos identifiants à partir d’ ici.
Sur cette page Mes applications et informations d’identification, faites défiler jusqu’à la section « Applications API de repos » et cliquez sur le bouton « Créer une application ».
Donnez le nom à votre application et cliquez sur le bouton « Créer une application ».
Après les étapes ci-dessus, vous obtiendrez des informations d’identification pour le mode Sandbox et Live.
Nous sommes maintenant prêts avec notre identifiant client et nos clés secrètes client. Prenons une longueur d’avance et écrivons un morceau de code.
Code réel pour l’intégration PayPal
À ce stade, nous sommes prêts avec la bibliothèque et les informations d’identification. Maintenant, pour intégrer PayPal au site Web, nous créons 4 fichiers :
checkout.php
: Dans ce fichier, nous avons un formulaire qui contient le nom et le montant de l’article.
payment.php
: C’est le fichier dans lequel nous écrivons tous les codes liés à PayPal.
success.php
: Après le paiement réussi, le client sera redirigé vers ce fichier.
error.php
: Si le paiement échoue, alors le client redirige vers ce fichier.
caisse.php
<form action="payment.php" method="post">
<input type="text" name="item" placeholder="Enter Item Name">
<input type="text" name="amount" placeholder="Enter Amount">
<input type="submit" name="submit" value="Pay">
</form>
paiement.php
<?php
require_once 'vendor/autoload.php';
use PayPalApiItem;
use PayPalApiItemList;
$apiContext = new PayPalRestApiContext(
new PayPalAuthOAuthTokenCredential(
'YOUR_CLIENT_ID', // ClientID
'YOUR_CLIENT_SECRET' // ClientSecret
)
);
$apiContext->setConfig(
array(
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'DEBUG',
'mode' => 'sandbox', //'live' or 'sandbox'
)
);
$payer = new PayPalApiPayer();
$payer->setPaymentMethod('paypal');
$item1 = new Item();
$item1->setName($_POST['item'])
->setCurrency('USD')
->setQuantity(1)
->setPrice($_POST['amount']);
$itemList = new ItemList();
$itemList->setItems(array($item1));
$amount = new PayPalApiAmount();
$amount->setTotal($_POST['amount']);
$amount->setCurrency('USD');
$transaction = new PayPalApiTransaction();
$transaction->setDescription("Payment For Service")
->setItemList($itemList)
->setAmount($amount);
$redirectUrls = new PayPalApiRedirectUrls();
$redirectUrls->setReturnUrl("YOUR_HTTP_PATH/success.php")
->setCancelUrl("YOUR_HTTP_PATH/error.php");
$payment = new PayPalApiPayment();
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
// 4. Make a Create Call
try {
$payment->create($apiContext);
header('Location: '. $payment->getApprovalLink());
}
catch (PayPalExceptionPayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
?>
Assurez-vous de remplacer les espaces réservés par les valeurs réelles. Dans le code ci-dessus, nous définissons la valeur ‘mode’ sur ‘sandbox’. Lors du passage à la production, définissez cette valeur sur « live » et ajoutez votre identifiant client et votre secret client en direct.
Une fois votre processus de paiement terminé via PayPal, sur la base du succès ou de l’échec du paiement, il sera redirigé vers le fichier success.php ou error.php.
succès.php
<h2>Payment Successful.</h2>
erreur.php
<h2>Something went wrong. Try again later.</h2>
Nous espérons que vous comprenez l’intégration de PayPal sur l’application Web. S’il vous plaît partager vos pensées dans la section commentaire ci-dessous.