Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Memperkenalkan Pesapal PHP SDK: Permudahkan Penyepaduan Pembayaran Anda

Memperkenalkan Pesapal PHP SDK: Permudahkan Penyepaduan Pembayaran Anda

DDD
DDDasal
2024-11-24 00:19:10115semak imbas

Introducing the Pesapal PHP SDK: Simplify Your Payment Integration

Menyepadukan penyelesaian pembayaran ke dalam aplikasi PHP anda menjadi lebih mudah. Kami sangat teruja untuk mengumumkan keluaran Pesapal PHP SDK kami, perpustakaan yang teguh dan mesra pengguna yang direka untuk menyelaraskan interaksi anda dengan gerbang pembayaran Pesapal.

? Mengapa Pesapal PHP SDK?

Pesapal ialah platform pembayaran terkemuka di Afrika, menawarkan pemprosesan pembayaran yang selamat dan boleh dipercayai untuk perniagaan dari semua saiz. Walau bagaimanapun, penyepaduan API Pesapal secara langsung boleh memakan masa dan rumit. SDK kami merumuskan selok-belok API, menyediakan antara muka yang bersih dan intuitif untuk pembangun.

Ciri-ciri Utama

  • Pengesahan Mudah: Memudahkan pengesahan OAuth dengan Pesapal.
  • Penyepaduan Pembayaran Lancar: Mulakan pembayaran dengan pantas dan kendalikan panggilan balik.
  • Pengurusan Transaksi: Semak status transaksi dan proses bayaran balik dengan mudah.
  • Patuh PSR-4: Mengikut piawaian PHP-FIG untuk autoloading.
  • Dokumentasi Luas: Kaedah dan contoh yang didokumentasikan dengan baik untuk membantu anda bermula.

? Bermula

Pemasangan

Pasang SDK melalui Komposer:

composer require katorymnd/pesapal-php-sdk

Keperluan

  • PHP 8.0 atau lebih tinggi
  • Komposer
  • Akaun Pedagang Pesapal

Konfigurasi

Mulakan pelanggan dengan kelayakan Pesapal anda:

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


? Memulakan Pembayaran

Berikut ialah cara anda boleh memulakan pembayaran dengan kod minimum:

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

? Menyemak Status Transaksi

Untuk menyemak status transaksi:

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


? Memproses Bayaran Balik

Keluarkan bayaran balik dengan mudah:

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


? Pengujian dan Pembangunan

Kami telah menyertakan suite ujian yang komprehensif untuk memastikan kebolehpercayaan SDK. Untuk menjalankan ujian:

vendor/bin/phpunit

? Dokumentasi

Untuk mendapatkan maklumat terperinci tentang semua kaedah dan ciri yang tersedia, sila rujuk repositori GitHub kami.


? Menyumbang

Kami mengalu-alukan sumbangan daripada komuniti! Jangan segan-segan untuk menyerahkan isu, menghentikan repositori dan membuat permintaan tarik.


? Agihan Pakej

SDK tersedia di Packagist, menjadikannya mudah untuk disertakan dalam projek anda melalui Komposer.


?️ Integrasi Berterusan

Kami telah menyediakan penyepaduan berterusan menggunakan GitHub Actions untuk memastikan setiap kemas kini mengekalkan standard kualiti tertinggi.


? Kesimpulan

SDK PHP Pesapal direka untuk menjimatkan masa dan usaha anda, membolehkan anda menumpukan pada membina aplikasi yang hebat tanpa perlu risau tentang kerumitan penyepaduan pembayaran. Kami teruja untuk melihat apa yang anda bina dengannya!


? Kekal Berhubung

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

Atas ialah kandungan terperinci Memperkenalkan Pesapal PHP SDK: Permudahkan Penyepaduan Pembayaran Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn