api - Omnipay 添加新网关

标签 api payment gateway omnipay

基于这个答案:Omnipay how to add new gateway

我尝试为 omnipay 添加一个新网关。

我的文件夹结构:

lib/omnipay/newgw/
lib/omnipay/newgw/src/
lib/omnipay/newgw/src/Gateway.php
lib/omnipay/newgw/composer.json

vendor/omnipay/...
...
composer.json

在主 composer.json 中我有:

{
    "require": {
        ...
        "omnipay/omnipay": "dev-master"
        ...
    },
    "autoload": {

        "psr-0": { 
            "": "lib/", 
            "Omnipay\\NewGw\\" : "lib/omnipay"
        }
    }
}

Composer 更新。

在 gateway.php 中:

namespace Omnipay\NewGw;

use Omnipay\Common;
use Omnipay\Common\AbstractGateway;
use Omnipay\NewGw\Message\PurchaseRequest;
use Omnipay\NewGw\Message\RefundRequest;


class Gateway extends AbstractGateway{

}

当我尝试运行它时:

use Omnipay\Omnipay;

class TestController extends ControllerBase{

 public function index(){
   $gateway = Omnipay::create('NewGw');
 }

}

它说找不到那个类:

Omnipay\Common\Exception\RuntimeException: Class '\Omnipay\NewGw\Gateway' not found

我不明白为什么没有加载该类。 请帮忙,谢谢。

最佳答案

我自己刚刚创建了一个新的网关,我相信你的问题是你正在做类似的事情

   "psr-0": { 
            "": "lib/", 
            "Omnipay\\NewGw\\" : "lib/omnipay"
        }

应该是

"Omnipay\\NewGw\\" : "lib/omnipay/src"

您正在将新库的命名空间设置为 lib/omnypay,但它实际上应该是 lib/omnypay/src

关于api - Omnipay 添加新网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26179177/

相关文章:

javascript - 如何在java脚本中的设定间隔函数中动态更改谷歌地图标记图标图像?

api - 如何通过 SEPA 以编程方式从银行账户转账

php - 在线接受支付时,在哪里可以找到不同卡片所需的参数

javascript - 使用 ReactJS 从 API 获取数据

java - GraphQL with Java - 如何将解析器分成多个类

.net - PayPal .net REST API - 包含额外一次性付款的定期计费协议(protocol)

gateway - Spring Integration 获取 HTTP 出站网关响应

c - 在linux中获取多个网络接口(interface)网关地址

NserviceBus 网关示例

适用于 App Engine 的 Python REST 框架?