对于支付网关,我使用了Ingenico SDK并且它未在CI中正确实现,传递名称空间问题和类未找到问题。
答案 0 :(得分:1)
从您的应用程序目录中,运行以下命令:
composer require ingenico-epayments/connect-sdk-php
接下来,您将需要拥有CodeIgniter autoload composer软件包,因此在config / config.php文件中:
$config['composer_autoload'] = TRUE;
现在你将能够使用作曲家包,这意味着在你的控制器或模型中你可以做这样的事情(我在控制器中显示使用):
<?php
use \Ingenico\Connect\Sdk\CommunicatorConfiguration;
use \Ingenico\Connect\Sdk\DefaultConnection;
use \Ingenico\Connect\Sdk\Communicator;
use \Ingenico\Connect\Sdk\Client;
class Test extends CI_Controller {
public function __construct(){
parent::__construct();
}
/**
* This is an example of basic usage from
* https://epayments.developer-ingenico.com/documentation/sdk/server/php/
*/
public function index()
{
$communicatorConfiguration =
new CommunicatorConfiguration('ApiKeyId', 'ApiSecret', 'BaseUri', 'Integrator');
$connection = new DefaultConnection();
$communicator = new Communicator($connection, $communicatorConfiguration);
$client = new Client($communicator);
// Do something with $client ...
}
}
注意use语句如何位于类的上方,但没有命名空间。通常在CodeIgniter中,您将没有名称空间,除非它们是您自己的库或third_party类。由于没有命名空间,use语句让PHP知道您打算按名称使用Ingenico类,而不是使用\ Ingenico \ Connect \ Sdk作为前缀。如果这让你开心,你可以使用前缀而不是use语句。
答案 1 :(得分:1)
对于INGENICO SDK,有2个选项可用, 您也可以通过发送基于隐藏内容的数据并传递Ingenico Profile提供的密钥和用户名来使用它的服务。