L'intégration de solutions de paiement dans vos applications PHP est devenue beaucoup plus simple. Nous sommes ravis d'annoncer la sortie de notre SDK PHP Pesapal, une bibliothèque robuste et conviviale conçue pour rationaliser votre interaction avec la passerelle de paiement Pesapal.
Pesapal est une plateforme de paiement leader en Afrique, offrant un traitement des paiements sécurisé et fiable aux entreprises de toutes tailles. Cependant, l'intégration directe de l'API de Pesapal peut s'avérer longue et complexe. Notre SDK résume les subtilités de l'API, offrant une interface claire et intuitive aux développeurs.
Installer le SDK via Composer :
composer require katorymnd/pesapal-php-sdk
Initialisez le client avec vos identifiants Pesapal :
require 'vendor/autoload.php'; use Katorymnd\PesapalPhpSdk\Api\PesapalClient; use Katorymnd\PesapalPhpSdk\Config\PesapalConfig; $consumerKey = 'YOUR_CONSUMER_KEY'; $consumerSecret = 'YOUR_CONSUMER_SECRET'; // Initialize PesapalConfig and PesapalClient $configPath = __DIR__ . '/../pesapal_dynamic.json'; $config = new PesapalConfig($consumerKey, $consumerSecret, $configPath); $environment = 'sandbox'; $sslVerify = false; // Enable SSL verification for production $pesapal = new PesapalClient($config, $environment, $sslVerify);
Voici comment initier un paiement avec un minimum de code :
use Katorymnd\PesapalPhpSdk\Utils\PesapalHelpers; $merchantReference = PesapalHelpers::generateMerchantReference(); $notificationId = 'adbd39cc-a48e-4789-b42b-79ad8deb32df'; // Replace with actual notification ID from IPN registration // Define the order data as an associative array for the POST request $paymentDetails= [ "id" => $merchantReference, "currency" => "USD", "amount" => 100.00, "description" => "Payment for invoice " . $merchantReference, "callback_url" => "https://www.example.com/payment-callback", "notification_id" => $notificationId, "redirect_mode" => "PARENT_WINDOW", "cancellation_url" => "https://www.example.com/payment-cancel", "billing_address" => [ "phone_number" => "0700000000", "email_address" => "john.doe@example.com", "country_code" => "UG", "first_name" => "John", "middle_name" => "", "last_name" => "Doe", "line_1" => "123 Example Street", "line_2" => "", "city" => "Kampala", "state" => "KMP", "postal_code" => 256 ] ]; // Obtain a valid access token $accessToken = $clientApi->getAccessToken(); if (!$accessToken) { throw new PesapalException('Failed to obtain access token'); } // Submit order request to Pesapal $response = $clientApi->submitOrderRequest($orderData); if ($response['status'] === 200 && isset($response['response']['redirect_url'])) { $redirectUrl = $response['response']['redirect_url']; $orderTrackingId = $response['response']['order_tracking_id']; } else { // Handle errors $response['response']['error'] }
Pour vérifier l'état d'une transaction :
use Katorymnd\PesapalPhpSdk\Exceptions\PesapalException; // Obtain a valid access token $accessToken = $clientApi->getAccessToken(); if (!$accessToken) { throw new PesapalException('Failed to obtain access token'); } // Get the transaction status $response = $clientApi->getTransactionStatus($orderTrackingId); if ($response['status'] === 200 && isset($response['response'])) { $transactionStatusData = $response['response']; }
Émettez un remboursement en toute simplicité :
// Prepare refund data with user-provided values $refundData = [ 'confirmation_code' => '7323605385336397404011', // the code is received by checking the transaction status 'amount' => 50.00, 'username' => 'John Doe', 'remarks' => 'Customer Requested Refund' ]; try { // Request Refund $refundResponse = $clientApi->requestRefund($refundData); if ($refundResponse['status'] === 200 && isset($refundResponse['response'])) { $refundDataResponse = $refundResponse['response']; // Add refund response to the output $responseData['refund_response'] = $refundDataResponse; } else { $errorMessage = $refundResponse['response']['error']['message'] ?? 'Unknown error occurred while requesting a refund.'; throw new PesapalException($errorMessage); } } catch (PesapalException $e) { // Add the error to the response $responseData['refund_error'] = [ 'error' => $e->getMessage(), 'details' => $e->getErrorDetails(), ]; }
Nous avons inclus une suite de tests complète pour garantir la fiabilité du SDK. Pour exécuter les tests :
vendor/bin/phpunit
Pour des informations détaillées sur toutes les méthodes et fonctionnalités disponibles, veuillez vous référer à notre référentiel GitHub.
Nous apprécions les contributions de la communauté ! N'hésitez pas à soumettre des problèmes, à créer le référentiel et à faire des demandes d'extraction.
Le SDK est disponible sur Packagist, ce qui facilite son inclusion dans vos projets via Composer.
Nous avons mis en place une intégration continue à l'aide de GitHub Actions pour garantir que chaque mise à jour maintient les normes de qualité les plus élevées.
Le SDK PHP Pesapal est conçu pour vous faire gagner du temps et des efforts, vous permettant de vous concentrer sur la création d'applications performantes sans vous soucier des complexités de l'intégration des paiements. Nous sommes ravis de voir ce que vous construisez avec !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!