我正在尝试将项目添加到merchant.php
(CI 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中拥有驱动程序特定的配置文件
配置文件实际上只是作为样板代码存在,可能应该删除。CI商人本身没有任何逻辑来自动为您读取配置文件。
通常,建议的方法是将设置存储在您自己的配置文件(或环境变量)中,然后在控制器中使用这些设置来初始化库。你是正确的,最好尽量避免编辑库文件夹中的任何内容。
如果您正在启动一个新项目,我还建议您查看CI Merchant的继任者Omnipay,因为CI Merchan特将不会得到任何进一步的开发。