xsotechs / smart-payment-routing
这是一个Laravel包,允许您的应用程序智能选择每个交易的最佳支付处理器。
dev-main
2024-07-31 05:52 UTC
Requires
- php: >=8.2
- laravel/framework: ^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0
- phpunit/phpunit: ^9.0
This package is not auto-updated.
Last update: 2024-09-25 06:28:58 UTC
README
介绍
Laravel智能路由包为支付网关提供智能路由系统。它根据交易成本、可靠性等多种因素动态选择最合适的支付处理器。此包确保支付交易的高效、灵活和安全处理。
特性
- 动态路由逻辑:智能地将交易路由到最佳支付处理器。
- 处理器管理:轻松管理多个支付处理器。
- 配置选项:根据交易成本、可靠性和其他标准自定义路由规则。
- Laravel兼容性:与最新稳定版本的Laravel兼容。
目录
安装
您可以通过composer安装此包
composer require xsotechs/smart-payment-routing:dev-main
您可以将项目的最小稳定性调整为允许更不稳定的版本。在您的composer.json文件中添加以下内容
{ "minimum-stability": "dev", "prefer-stable": true }
安装后,发布配置文件
php artisan vendor:publish --provider="Xsotechs\SmartPaymentRouting\SmartPaymentRoutingServiceProvider" --tag="config"
运行您的迁移命令
php artisan migrate
使用
要在您的Laravel应用程序中使用智能支付路由
use Xsotechs\SmartPaymentRouting\Services\SmartRouterService; public function processPayment(Request $request) { $smartRouterService = new SmartRouterService(); $paymentData = [ 'amount' => $request->amount, 'currency' => $request->currency, 'country' => $request->country, // Add any other necessary data ]; try { $data = $smartRouterService->route($paymentData); // Use the data to initiate a payment logic } catch (\Exception $e) { return response()->json(['message' => 'Error: ' . $e->getMessage()], 500); } }
管理支付处理器
您可以使用'PaymentProcessorService'来管理支付处理器
use Xsotechs\SmartPaymentRouting\Services\PaymentProcessorService; $processorService = new PaymentProcessorService(); // Create a new processor $newProcessor = $processorService->create([ 'name' => 'paystack', 'is_active' => true, 'transaction_cost' => 0.029, 'reliability_score' => 99.0, 'supported_currencies' => ['NGN', 'USD'], // Supported currencies 'supported_countries' => ['NG', 'US'], // Supported countries 'config' => ['api_key' => 'your_stripe_api_key'], ]); // Update a processor $processor = PaymentProcessor::find(1); $processorService->update($processor, [ 'transaction_cost' => 0.028, 'reliability_score' => 95.0, ]); // Delete a processor $processor = PaymentProcessor::find(1); $processorService->delete($processor); // Get all processors $allProcessors = $processorService->getAll(); // Get active processors $activeProcessors = $processorService->getActive();
运行测试
请确保在运行包的测试时,将phpunit.xml中的数据库凭证更新为您自己的。
<env name="DB_CONNECTION" value="mysql"/> <env name="DB_HOST" value="127.0.0.1"/> <env name="DB_PORT" value="8889"/> <env name="DB_DATABASE" value="test_database"/> <env name="DB_USERNAME" value="root"/> <env name="DB_PASSWORD" value="root"/> <env name="DB_SOCKET" value="/Applications/MAMP/tmp/mysql/mysql.sock"/>
然后运行以下命令
- vendor/bin/phpunit tests/unit/PaymentProcessorServiceTest.php
- vendor/bin/phpunit tests/unit/SmartRouterServiceTest.php
- vendor/bin/phpunit tests/unit/*.php