sevaske/payfort

Laravel 插件。Payfort API 集成。

资助包维护!
sevaske

1.1.0 2024-09-19 10:27 UTC

This package is auto-updated.

Last update: 2024-09-19 10:28:42 UTC


README

Latest Version on Packagist Total Downloads

这个 Laravel 插件允许您使用 Payfort 支付 API 并轻松管理多个商家。

要求

  • PHP 8.1+
  • Laravel 10+

安装

您可以通过 composer 安装此包

composer require sevaske/payfort

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="payfort-config"

这是已发布配置文件(payfort.php)的内容

return [
    'sandbox_mode' => env('PAYFORT_SANDBOX_MODE', true),
    'log_channel' => env('PAYFORT_LOG_CHANNEL', 'stack'),
    'debug_mode' => env('PAYFORT_DEBUG_MODE', false),
    'language' => env('PAYFORT_LANGUAGE', 'en'), // en|ar
    'enable_requests_validation' => env('PAYFORT_ENABLE_REQUESTS_VALIDATION', true),
    'merchants' => [
        'default' => [
            'merchant_identifier' => env('PAYFORT_MERCHANT_IDENTIFIER'),
            'access_code' => env('PAYFORT_ACCESS_CODE'),
            'sha_request_phrase' => env('PAYFORT_SHA_REQUEST_PHRASE'),
            'sha_response_phrase' => env('PAYFORT_SHA_RESPONSE_PHRASE'),
            'sha_type' => env('PAYFORT_SHA_TYPE', 'sha256'),
        ],
        'apple' => [
            'merchant_identifier' => env('PAYFORT_APPLE_MERCHANT_IDENTIFIER'),
            'access_code' => env('PAYFORT_APPLE_ACCESS_CODE'),
            'sha_request_phrase' => env('PAYFORT_APPLE_SHA_REQUEST_PHRASE'),
            'sha_response_phrase' => env('PAYFORT_APPLE_SHA_RESPONSE_PHRASE'),
            'sha_type' => env('PAYFORT_APPLE_SHA_TYPE', 'sha256'),
        ],
        // multiple merchants can be added here
    ],
];

将以下行添加到您的 .env 文件中并设置值

PAYFORT_SANDBOX_MODE=true
PAYFORT_DEBUG_MODE=false
PAYFORT_LOG_CHANNEL=stack
PAYFORT_LANGUAGE=en
# default merchant
PAYFORT_MERCHANT_IDENTIFIER=
PAYFORT_ACCESS_CODE=
PAYFORT_SHA_REQUEST_PASSPHRASE=
PAYFORT_SHA_RESPONSE_PASSPHRASE=
PAYFORT_SHA_TYPE=sha256
# merchant "apple"
PAYFORT_APPLE_MERCHANT_IDENTIFIER=
PAYFORT_APPLE_ACCESS_CODE=
PAYFORT_APPLE_SHA_REQUEST_PASSPHRASE=
PAYFORT_APPLE_SHA_RESPONSE_PASSPHRASE=
PAYFORT_APPLE_SHA_TYPE=sha256

使用方法

use \Sevaske\Payfort\Exceptions\PayfortMerchantCredentialsException;
use \Sevaske\Payfort\Exceptions\PayfortRequestException;
use \Sevaske\Payfort\Exceptions\PayfortResponseException;
use \Sevaske\Payfort\Http\PayfortSignature;
use \Sevaske\Payfort\Http\PayfortResponse;
use \Sevaske\Payfort\Payfort;

try {
    $response = Payfort::merchant('default')
        ->api()
        ->checkStatus(merchantReference: 'ORDER-123456') // PayfortResponse
        ->getData(); // array
} catch (PayfortMerchantCredentialsException $exception) {
    // handle
} catch (PayfortRequestException $exception) {
    // handle
} catch (PayfortResponseException $exception) {
    // handle
}

// also
 Payfort::merchant('default')->api()->capture();
 Payfort::merchant('default')->api()->checkStatus();
 Payfort::merchant('default')->api()->createToken();
 Payfort::merchant('default')->api()->recurring();
 Payfort::merchant('default')->api()->refund();
 Payfort::merchant('default')->api()->updateToken();
 Payfort::merchant('default')->api()->voidAuthorization();

// custom request
Payfort::http()->request('POST', '/FortAPI/paymentApi', []);

// signature
$signature = (new PayfortSignature(shaPhrase: '', shaType: 'sha256'))
    ->calculateSignature([]);

多个商家

在 config/payfort.php 中添加新商家。

调试模式

启用调试模式以记录详细的请求/响应信息。您可以设置 "log_channel"。

测试版

注意:此插件目前处于测试版。这意味着虽然它功能齐全且可用于使用,但它可能仍存在一些错误或不完整的特性。我们正在积极改进,并欢迎反馈以帮助我们改进插件。

预期内容

  • 功能集:一些功能可能不完整或可能根据用户反馈和进一步开发而更改。
  • 稳定性:虽然我们努力追求稳定性,但您可能会遇到问题或错误。请报告您发现的问题。
  • 支持:我们为测试版用户提供基本支持,但响应可能比稳定版本慢。

感谢您尝试我们的测试版,并帮助我们使其变得更好!

许可

MIT 许可证(MIT)。有关更多信息,请参阅许可文件