Pesapal PHP SDK 소개: 결제 통합을 단순화하세요

DDD
풀어 주다: 2024-11-24 00:19:10
원래의
112명이 탐색했습니다.

Introducing the Pesapal PHP SDK: Simplify Your Payment Integration

PHP 애플리케이션에 결제 솔루션을 통합하는 것이 훨씬 쉬워졌습니다. Pesapal 결제 게이트웨이와의 상호 작용을 간소화하도록 설계된 강력하고 사용자 친화적인 라이브러리인 Pesapal PHP SDK의 출시를 발표하게 되어 기쁘게 생각합니다.

? 왜 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 자격 증명으로 클라이언트를 초기화하세요.

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 저장소를 참조하세요.


? 기여

커뮤니티의 기여를 환영합니다! 자유롭게 이슈를 제출하고, 저장소를 포크하고, 끌어오기 요청을 하세요.


? 패키지 배포

Packagist에서 SDK를 사용할 수 있으므로 Composer를 통해 프로젝트에 쉽게 포함할 수 있습니다.


?️ 지속적인 통합

우리는 모든 업데이트가 최고 품질 표준을 유지할 수 있도록 GitHub Actions를 사용하여 지속적인 통합을 설정했습니다.


? 결론

Pesapal PHP SDK는 시간과 노력을 절약하도록 설계되어 복잡한 결제 통합에 대한 걱정 없이 훌륭한 애플리케이션 구축에 집중할 수 있습니다. 여러분이 이 제품으로 무엇을 만들 수 있을지 기대됩니다!


? 연락을 유지하세요

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

위 내용은 Pesapal PHP SDK 소개: 결제 통합을 단순화하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿