xahmedtaha / paybridge
一个通用的 Laravel 扩展包,提供一致且易于使用的界面,用于集成多个支付网关。
v0.1.3
2024-09-15 11:29 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- mockery/mockery: ^1.6
- 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
- spatie/invade: ^2.1
README
一个通用的 Laravel 扩展包,提供一致且易于使用的界面,用于集成多个支付网关。
安装
您可以通过 composer 安装此包
composer require xahmedtaha/paybridge
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="paybridge-config"
使用方法
通常您可以使用该包如下
use AhmedTaha\PayBridge\Data\ChargeData; use AhmedTaha\PayBridge\Data\CustomerData; use AhmedTaha\PayBridge\Data\Payment\CreditCardData; use AhmedTaha\PayBridge\Enums\PaymentEnvironment; use AhmedTaha\PayBridge\Enums\PaymentGateway; $charge = new ChargeData('charge ID', 200, 'USD'); $customer = new CustomerData('customer ID', 'Ahmed', 'phone', 'email@test.com'); $paymentData = new CreditCardData('1234 1234 1234 1234', '24', '05', '123'); $result = PayBridge::setEnvironment(PaymentEnvironment::TESTING) ->gateway(PaymentGateway::FawryPay) ->pay($charge, $customer, $paymentData); // $result = [ // 'success' => true, // 'status' => PaymentStatus::PENDING, // 'shouldRedirect' => true, // 'redirectUrl' => 'fawry gateway url...', //];
回调 URL 应在配置文件中定义。以下是该路由代码的典型形式
use PayBridge; use AhmedTaha\PayBridge\Enums\PaymentGateway; use AhmedTaha\PayBridge\Enums\PaymentEnvironment; use Illuminate\Http\Request; public function callbackRouteHandler(Request $request) { $result = PayBridge::setEnvironment(PaymentEnvironment::TESTING) ->gateway(PaymentGateway::FawryPay) ->callback($request); // Your additional app logic... } // $result = [ // 'success' => true, // 'status' => PaymentStatus::PAID, // 'charge' => ChargeData object, // 'customer' => CustomerData object, // 'referenceNumber' => 'fawry ref no', //];
测试
composer test
变更日志
请参阅 CHANGELOG 以获取更多最近更改的信息。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。