ホームページ > バックエンド開発 > PHPチュートリアル > Pesapal PHP SDK の紹介: 支払いの統合を簡素化

Pesapal PHP SDK の紹介: 支払いの統合を簡素化

DDD
リリース: 2024-11-24 00:19:10
オリジナル
181 人が閲覧しました

Introducing the Pesapal PHP SDK: Simplify Your Payment Integration

支払いソリューションを PHP アプリケーションに統合することが、はるかに簡単になりました。 Pesapal PHP SDK のリリースを発表できることを嬉しく思います。これは、Pesapal 支払いゲートウェイとのやり取りを合理化するために設計された堅牢でユーザーフレンドリーなライブラリです。

? Pesapal PHP SDK を選ぶ理由

Pesapal はアフリカを代表する決済プラットフォームで、あらゆる規模の企業に安全で信頼性の高い決済処理を提供します。ただし、Pesapal の API を直接統合するには、時間がかかり、複雑になる可能性があります。私たちの SDK は API の複雑さを抽象化し、開発者にクリーンで直感的なインターフェイスを提供します。

主な特長

  • 簡単認証: Pesapal を使用した OAuth 認証を簡素化します。
  • シームレスな支払い統合: 支払いを迅速に開始し、コールバックを処理します。
  • 取引管理: 取引ステータスを簡単に確認し、返金を処理します。
  • PSR-4 準拠: 自動読み込みの PHP-FIG 標準に従います。
  • 広範なドキュメント: 開始するための方法と例が詳しく文書化されています。

?はじめる

インストール

Composer 経由で SDK をインストールします:

composer require katorymnd/pesapal-php-sdk
ログイン後にコピー

要件

  • PHP 8.0 以降
  • 作曲家
  • Pesapal 販売アカウント

構成

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

ログイン後にコピー

?支払いの開始

最小限のコードで支払いを開始する方法は次のとおりです:

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']
}
ログイン後にコピー

?取引状況の確認

トランザクションのステータスを確認するには:

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

ログイン後にコピー

?返金の処理

簡単に返金を発行します:

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

ログイン後にコピー

?テストと開発

SDK の信頼性を確保するために、包括的なテスト スイートが含まれています。テストを実行するには:

vendor/bin/phpunit
ログイン後にコピー

?ドキュメント

利用可能なすべてのメソッドと機能の詳細については、GitHub リポジトリを参照してください。


?貢献する

コミュニティからの貢献を歓迎します!自由に問題を送信し、リポジトリをフォークし、プル リクエストを行ってください。


?パッケージの配布

SDK は Packagist で入手できるため、Composer 経由でプロジェクトに簡単に組み込むことができます。


⁉️ 継続的インテグレーション

すべての更新が最高の品質基準を維持できるように、GitHub Actions を使用して継続的統合を設定しました。


?結論

Pesapal PHP SDK は、時間と労力を節約できるように設計されており、支払い統合の複雑さを心配することなく、優れたアプリケーションの構築に集中できます。あなたがそれを使って何を構築するか楽しみにしています!


?連絡を取り合う

  • GitHub: github.com/katorymnd/pesapal-php-sdk
  • パッケージリスト:packagist.org/packages/katorymnd/pesapal-php-sdk

以上がPesapal PHP SDK の紹介: 支払いの統合を簡素化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート