3

我以前使用过 ci-merchant,但从一切来看,它的“V2”现在是omnipay。我使用codeigniter,我正在努力让这个例子工作。

我已经安装了omnipay没有问题,并且在我的控制器中有以下内容:

use Omnipay\Common\GatewayFactory;
class Homepage extends BC_basecontroller {

public function index()
{
    $gateway = GatewayFactory::create('PayPal_Express');
    $gateway->setUsername('adrian');
    $gateway->setPassword('12345');
}
}

这是这里的例子:https ://github.com/adrianmacneil/omnipay

但是我得到了错误:

PHP Fatal error:  Class 'Omnipay\Common\GatewayFactory' not found in......

有谁知道如何让它在 CI 中工作?

4

2 回答 2

4

我不确定您是如何安装 Omnipay 的,但您需要先使用Composer加载类,然后才能使用它们。

因此,按照Omnipay 安装说明,将其添加到composer.json根目录中的文件中:

{
    "require": {
        "omnipay/omnipay": "*"
    }
}

然后安装文件:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

现在,如果您使用 CodeIgniter,您需要将其设置为包含 composer 自动加载器。基本上,只需将此行添加到index.php文件顶部:

require_once __DIR__.'/vendor/autoload.php';

这里还有一个关于使用 Composer 和 CodeIgniter 的教程,您可能会发现它很有帮助: http: //philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

于 2013-06-13T10:45:08.700 回答
1

我有同样的错误并通过vendor/autoload.php之前加载修复它application/core/CodeIgniter.php

于 2014-03-12T14:51:52.300 回答