creatortsv/omnipay-manager-bundle
Omnipay 管理包
3.0.2
2023-07-31 22:16 UTC
Requires
- php: >=8.1
- ext-json: *
- nyholm/psr7: ^1.8
- omnipay/common: ^3.0
- php-http/httplug: ^2.4
- symfony/framework-bundle: ^6.1
- symfony/http-client: ^6.3
Requires (Dev)
- phpunit/phpunit: ^9.5
README
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
类中。但是,它们将在您使用它们之前创建,这意味着您可以按需配置它们。
有几种不同的方法可以做到这一点
- 直接从容器中向适配器注入一些服务
- 注入一些其他参数,您可以在配置文件中描述
- 覆盖
getHttpClient
和getHttpRequest
方法以更改默认客户端和 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 网关驱动程序。