Maison  >  Article  >  développement back-end  >  Présentation du SDK PHP Pesapal : simplifiez votre intégration de paiement

Présentation du SDK PHP Pesapal : simplifiez votre intégration de paiement

DDD
DDDoriginal
2024-11-24 00:19:10132parcourir

Introducing the Pesapal PHP SDK: Simplify Your Payment Integration

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.

? Pourquoi le SDK PHP 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.

Principales fonctionnalités

  • Authentification facile : simplifie l'authentification OAuth avec Pesapal.
  • Intégration transparente des paiements : lancez rapidement des paiements et gérez les rappels.
  • Gestion des transactions : vérifiez facilement l'état des transactions et traitez les remboursements.
  • Conforme PSR-4 : suit les normes PHP-FIG pour le chargement automatique.
  • Documentation complète : méthodes et exemples bien documentés pour vous aider à démarrer.

? Commencer

Installation

Installer le SDK via Composer :

composer require katorymnd/pesapal-php-sdk

Exigences

  • PHP 8.0 ou supérieur
  • Compositeur
  • Compte marchand Pesapal

Configuration

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);


? Initier un paiement

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']
}

? Vérification de l'état de la transaction

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'];
}


? Traitement des remboursements

É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(),
    ];
}


? Tests et développement

Nous avons inclus une suite de tests complète pour garantir la fiabilité du SDK. Pour exécuter les tests :

vendor/bin/phpunit

? Documentation

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.


? Contribuer

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.


? Distribution de colis

Le SDK est disponible sur Packagist, ce qui facilite son inclusion dans vos projets via Composer.


?️ Intégration continue

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.


? Conclusion

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 !


? Rester en contact

  • GitHub : github.com/katorymnd/pesapal-php-sdk
  • Packagiste : packagist.org/packages/katorymnd/pesapal-php-sdk

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn