如何正确使用CI-Merchant库的配置文件

时间:2013-08-28 01:15:11

标签: codeigniter codeigniter-2 ci-merchant

我正在尝试将项添加到merchant.phpCI-Merchant库的配置文件,我相信它是由CodeIgniter自动加载的)。我希望能够设置我在设置中选择的支付网关(驱动程序)的设置,这样我就不必在每个调用库/驱动程序的控制器中写出它而我不想硬编码驱动程序中的设置。

这些是我想要保存的设置,但我可以让其他人使用不同的网关:

$config['authorize_net']['api_login_id'] = '***';
$config['authorize_net']['transaction_key'] = '***';
$config['authorize_net']['test_mode'] = TRUE;
$config['authorize_net']['developer_mode'] = TRUE;

然而,这会导致2次警告。第一个:

A PHP Error was encountered
Severity: Warning
Message: stripos() expects parameter 1 to be string, array given
Filename: libraries/merchant.php
Line Number: 97

第二个:

A PHP Error was encountered
Severity: Warning
Message: strtolower() expects parameter 1 to be string, array given
Filename: libraries/merchant.php
Line Number: 103

所以在我看来,CodeIgniter会自动将merchant.php配置文件传递给库,但它没有预料到它(这也让我感到困惑,因为在CI-Merchant下载中它带有配置文件)

我最糟糕的情况是更改merchant_authorize_net.php中的“默认设置”,但我真的想避免这种情况,下面是默认设置功能的样子。

public function default_settings()
{
    return array(
        'api_login_id' => '',
        'transaction_key' => '',
        'test_mode' => FALSE,
        'developer_mode' => FALSE,
    );
}

我的问题是:

  • 是否有正确的方法来使用CI-Merchant的配置文件?
  • 如果没有,有没有办法在CodeIgniter中使用特定于驱动程序的配置文件?

1 个答案:

答案 0 :(得分:1)

配置文件实际上只是作为样板代码而应该删除。 CI-merchant本身没有任何逻辑可以自动为您读取配置文件。

通常,建议的方法是将设置存储在您自己的配置文件(或环境变量)中,然后使用控制器中的这些设置来初始化库。你是对的,最好尽量避免编辑库文件夹中的任何内容。

如果您要开始一个新项目,我还建议您查看CI-Merchant的继任者Omnipay,因为CI-Merchant将不再接收任何进一步的开发。

相关问题