kevchikezie / payment-router
此包根据交易成本、可靠性、货币支持等因素智能地将支付交易路由到最合适的支付处理器。
v1.0.1
2024-07-27 15:51 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
Requires (Dev)
- laravel/pint: ^1.14
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-09-27 16:10:50 UTC
README
此Laravel包根据交易成本、可靠性、货币支持等因素智能地将支付交易路由到最合适的支付处理器。
在使用此库之前你需要什么?
在安装此Laravel包之前,请确保你已经满足以下要求;
- PHP >=8.2 (PHP 8.2及以上)
如何安装此包?
通过composer安装
composer require kevchikezie/payment-router
如何配置此包?
安装包后发布配置文件
php artisan vendor:publish --provider="Kevchikezie\PaymentRouter\PaymentRouterServiceProvider"
运行上述命令后,检查你的config文件夹,你应该会看到一个名为payment-router.php
的文件。此文件的内容可能看起来或配置如下所示;
<?php return [ 'processors' => [ 'flutterwave' => [ 'class' => Kevchikezie\PaymentRouter\Processors\FlutterwaveProcessor::class, 'secret_key' => env('FLUTTERWAVE_SECRET_KEY'), 'public_key' => env('FLUTTERWAVE_PUBLIC_KEY'), 'supported_currencies' => ['USD', 'GBP', 'NGN', 'GHS'], 'transaction_cost' => [ 'USD' => 1.2, 'GBP' => 1.9, 'NGN' => 0.25, 'GHS' => 0.23 ], ], 'paystack' => [ 'class' => Kevchikezie\PaymentRouter\Processors\PaystackProcessor::class, 'secret_key' => env('PAYSTACK_SECRET_KEY'), 'public_key' => env('PAYSTACK_PUBLIC_KEY'), 'supported_currencies' => ['NGN', 'USD', 'EUR'], 'transaction_cost' => [ 'NGN' => 0.15, 'USD' => 0.75, 'EUR' => 1.25, ], ], ], ];
如何使用此包?
控制器中的示例用法
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PaymentController extends Controller { public function processPayment(Request $request) { $router = app('payment.router'); $paymentDetails = [ 'amount' => $request->amount, 'card_number' => $request->card_number, 'transaction_id' => time() . rand(1000, 9999), // NB: Modify as needed 'currency' => $request->currency // Example: 'USD', ]; try { $processor = $router->route($paymentDetails); $data = $processor->processPayment($paymentDetails); return response()->json(['status' => true, 'data' => $data]); } catch (\Exception $e) { return response()->json(['status' => false, 'message' => $e->getMessage()], 500); } } }
如何运行phpunit测试?
运行以下命令
vendor/bin/phpunit
许可证
支付路由包是开源软件,使用MIT许可证授权。