ci-merchant purchase() 不工作

Posted

技术标签:

【中文标题】ci-merchant purchase() 不工作【英文标题】:ci-merchant purchase() not working 【发布时间】:2013-08-28 12:05:52 【问题描述】:

我在我的开发 WAMP 服务器上本地使用我的 PyroCMS 模块中的 ci-merchant 库。 (一切正常)

当我上传到我的 Linux 测试服务器时,被调用的 purchase() 函数似乎不起作用。

当它执行 5 分钟时,我得到一个响应“无法连接到主机”。

PHP

$params = 
        array( 
            'amount' => 20,
            'currency' =>  'USD',
            'return_url' => 'http://someurl.com/return/'
            'cancel_url' => 'http://someurl.com/cancel/'
         );

$settings = array(
        'test_mode' => TRUE,
        'username' => 'PAYPAL_TEST_USERNAME'
        'password' => 'MY_PAPAL_TEST_PASS' 
        'signature' => 'MY_PAYPAL_TEST_SIG' 
        );

$this->load->library('merchant');
$this->merchant->load('paypal_express');
$this->merchant->initialize($settings);  


//this is where Im having the issue
$response = $this->merchant->purchase($params);

$message = $response->message();

当我回显 $message

echo $message; //Outputs: couldn't connect to host"

CURL - 服务器设置

以下是服务器上 CURL 设置的差异列表。也许这就是问题所在。我认为无需编译 curl 就可以更改这些设置,但我不确定。

开发服务器(WAMP 服务器 - 状态:工作中)

AsynchDNS : Yes
CurlInfo  : 7.21.7 
GSS Neg   : Yes
IDN       : No
SSPI      : Yes
libSSH    : libssh2/1.2.7 

测试服务器(Linuxserver - 状态:不工作)

AsynchDNS : No
CurlInfo  : 7.24.0  
GSS Neg   : No  
IDN       : Yes
SSPI      : No
libSSH    : <<not listed>>

【问题讨论】:

可能您的测试服务器上的防火墙阻止了传出连接。 我要去了解防火墙设置,目前在测试服务器上,我只能访问 cpanel 界面。 您能否快速运行curl -v https://api-3t.sandbox.paypal.com/nvptelnet att.com 80 来验证您的测试服务器的连接性? 我目前正在移动服务器/主机。我很快就会有 ssh、telnet 访问。我认为可能是缺少 libSSH,因为新服务器开箱即用。 【参考方案1】:

经过多次试验和错误以及朋友的一些建议,我发现这是一个缺少的 libSSH 模块。

从那时起,我已将我的网站从共享托管公司转移到更可靠的 VPS 托管。

我安装了相应的库,一切正常。

我建议任何托管其网站的人远离任何“共享”托管公司。我只遇到了非常延迟的支持,而 VPS 托管并没有比我为 VPS 支付的费用多得多。

但您需要先了解如何管理服务器。

【讨论】:

以上是关于ci-merchant purchase() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

在 ci-merchant 库 codeigniter 中接收更多响应数据

重剑无锋,大巧不工

重剑无锋 大巧不工

CGRect.offsetBy 不工​​作

重剑无锋,大巧不工

SQL 查询 Distinct / Group By 不工​​作