creatortsv/omnipay-manager-bundle

Omnipay 管理包

安装次数: 2,526

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:symfony-bundle

3.0.2 2023-07-31 22:16 UTC

This package is auto-updated.

Last update: 2024-09-30 01:46:38 UTC


README

tests

Omnipay 管理包

此包为您提供了使用不同 Omnipay 基础网关创建自己的支付服务的逻辑。

1. 安装

使用 composer 安装此包

composer require creatortsv/omnipay-manager-bundle

确保您已经安装了您将要使用的所有 Omnipay 网关包

composer require <vendor>/omnipay-<gateway>

例如,如果您打算使用 Kuberaco.com 网关,您必须安装它

composer require creatortsv/omnipay-kuberaco

2. 配置

默认配置

您首先应该为将要使用的每个 Omnipay 网关包创建一个扩展了 AbstractGatewayAdapter 类的 Adapter

// ...
use Creatortsv\OmnipayManagerBundle\Adapter\OmnipayGatewayAdapter;

class MyAdapter extends OmnipayGatewayAdapter
{
    // ...
}

这些类将默认自动注册到 Creatortsv\OmnipayManagerBundle\GatewayManager

其次,您的类应该实现所需的 public static getOmnipayGatewayAlias 方法,该方法应返回将与此适配器类一起使用的 Omnipay 网关的名称。

例如

// ...
class MyAdapter extends OmnipayGatewayAdapter
{
    // ...
    public static function getOmnipayGatewayAlias(): string
    {
        return 'Kuberaco';
    }
    // ...
}

就这样!您需要做的就是编写一些代码。配置您的网关并创建一些调用相同网关方法的逻辑。

注意:此包不提供与不同网关交互的完整功能。您应该编写自己的逻辑。别忘了使用接口来做这件事。

高级配置

如上所述,您实现抽象包类的适配器类将自动注册到 GatewayManager 类中。但是,它们将在您使用它们之前创建,这意味着您可以按需配置它们。

有几种不同的方法可以做到这一点

  • 直接从容器中向适配器注入一些服务
  • 注入一些其他参数,您可以在配置文件中描述
  • 覆盖 getHttpClientgetHttpRequest 方法以更改默认客户端和 Omnipay 网关的请求对象

如何使用

配置好您的适配器后,您只需要将 GatewayManager 注入到您的服务类或控制器方法中并使用它。

use Creatortsv\OmnipayManagerBundle\GatewayManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class MyController extends AbstractController
{
    // ...
    public function createPayment(GatewayManager $manager)
    {
        $response = $manager
            ->get('Kuberaco')
            ->createPayment(); // Your described method to do payment in the same way for different gateways
        
        // ...
    }
}

完成!

注意:为所有网关描述相同的方法取决于 Omnipay 网关驱动程序。