Heim >Backend-Entwicklung >PHP-Tutorial >Einführung des Pesapal PHP SDK: Vereinfachen Sie Ihre Zahlungsintegration

Einführung des Pesapal PHP SDK: Vereinfachen Sie Ihre Zahlungsintegration

DDD
DDDOriginal
2024-11-24 00:19:10253Durchsuche

Introducing the Pesapal PHP SDK: Simplify Your Payment Integration

Die Integration von Zahlungslösungen in Ihre PHP-Anwendungen ist jetzt viel einfacher. Wir freuen uns, die Veröffentlichung unseres Pesapal PHP SDK bekannt zu geben, einer robusten und benutzerfreundlichen Bibliothek, die Ihre Interaktion mit dem Pesapal-Zahlungsgateway optimieren soll.

? Warum Pesapal PHP SDK?

Pesapal ist eine führende Zahlungsplattform in Afrika und bietet sichere und zuverlässige Zahlungsabwicklung für Unternehmen jeder Größe. Die direkte Integration der Pesapal-API kann jedoch zeitaufwändig und komplex sein. Unser SDK abstrahiert die Feinheiten der API und bietet Entwicklern eine saubere und intuitive Schnittstelle.

Hauptmerkmale

  • Einfache Authentifizierung: Vereinfacht die OAuth-Authentifizierung mit Pesapal.
  • Nahtlose Zahlungsintegration: Zahlungen schnell veranlassen und Rückrufe bearbeiten.
  • Transaktionsverwaltung: Überprüfen Sie ganz einfach den Transaktionsstatus und verarbeiten Sie Rückerstattungen.
  • PSR-4-kompatibel: Entspricht den PHP-FIG-Standards für das automatische Laden.
  • Umfangreiche Dokumentation: Gut dokumentierte Methoden und Beispiele, die Ihnen den Einstieg erleichtern.

? Erste Schritte

Installation

Installieren Sie das SDK über Composer:

composer require katorymnd/pesapal-php-sdk

Anforderungen

  • PHP 8.0 oder höher
  • Komponist
  • Pesapal-Händlerkonto

Konfiguration

Initialisieren Sie den Client mit Ihren Pesapal-Anmeldeinformationen:

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


? Eine Zahlung veranlassen

So können Sie eine Zahlung mit minimalem Code veranlassen:

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

? Überprüfen des Transaktionsstatus

So überprüfen Sie den Status einer Transaktion:

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


? Bearbeitung von Rückerstattungen

Erstatten Sie ganz einfach:

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


? Testen und Entwicklung

Wir haben eine umfassende Testsuite integriert, um die Zuverlässigkeit des SDK sicherzustellen. So führen Sie die Tests aus:

vendor/bin/phpunit

? Dokumentation

Detaillierte Informationen zu allen verfügbaren Methoden und Funktionen finden Sie in unserem GitHub-Repository.


? Mitwirken

Wir freuen uns über Beiträge aus der Community! Fühlen Sie sich frei, Probleme einzureichen, das Repository zu teilen und Pull-Anfragen zu stellen.


? Paketverteilung

Das SDK ist auf Packagist verfügbar, sodass Sie es einfach über Composer in Ihre Projekte einbinden können.


?️ Kontinuierliche Integration

Wir haben eine kontinuierliche Integration mithilfe von GitHub Actions eingerichtet, um sicherzustellen, dass bei jedem Update die höchsten Qualitätsstandards eingehalten werden.


? Abschluss

Das Pesapal PHP SDK wurde entwickelt, um Ihnen Zeit und Mühe zu sparen, sodass Sie sich auf die Entwicklung großartiger Anwendungen konzentrieren können, ohne sich um die Komplexität der Zahlungsintegration kümmern zu müssen. Wir sind gespannt, was Sie damit bauen!


? Bleiben Sie in Kontakt

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

Das obige ist der detaillierte Inhalt vonEinführung des Pesapal PHP SDK: Vereinfachen Sie Ihre Zahlungsintegration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn