sevaske / payfort
Laravel 插件。Payfort API 集成。
1.1.0
2024-09-19 10:27 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
README
这个 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)。有关更多信息,请参阅许可文件。