xsotechs/smart-payment-routing

这是一个Laravel包,允许您的应用程序智能选择每个交易的最佳支付处理器。

dev-main 2024-07-31 05:52 UTC

This package is not auto-updated.

Last update: 2024-09-25 06:28:58 UTC


README

介绍

Laravel智能路由包为支付网关提供智能路由系统。它根据交易成本、可靠性等多种因素动态选择最合适的支付处理器。此包确保支付交易的高效、灵活和安全处理。

特性

  • 动态路由逻辑:智能地将交易路由到最佳支付处理器。
  • 处理器管理:轻松管理多个支付处理器。
  • 配置选项:根据交易成本、可靠性和其他标准自定义路由规则。
  • Laravel兼容性:与最新稳定版本的Laravel兼容。

目录

  1. 安装
  2. 使用
  3. 运行测试

安装

您可以通过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"/>

然后运行以下命令

  1. vendor/bin/phpunit tests/unit/PaymentProcessorServiceTest.php
  2. vendor/bin/phpunit tests/unit/SmartRouterServiceTest.php
  3. vendor/bin/phpunit tests/unit/*.php