kevchikezie/payment-router

此包根据交易成本、可靠性、货币支持等因素智能地将支付交易路由到最合适的支付处理器。

v1.0.1 2024-07-27 15:51 UTC

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许可证授权。