Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Omnipay和CI的SSl证书问题_Php_Codeigniter_Buzz_Omnipay - Fatal编程技术网

Php Omnipay和CI的SSl证书问题

Php Omnipay和CI的SSl证书问题,php,codeigniter,buzz,omnipay,Php,Codeigniter,Buzz,Omnipay,我试图通过我的paypal沙箱从我的本地机器上进行简单的支付。我正在使用Codeigniter中的Omnipay库 我在developer.paypal.com上设置了一个沙盒帐户和一个测试应用程序。这是我正在使用的代码: $gateway = GatewayFactory::create('PayPal_Express'); $gateway->setUsername([username]); $gateway->setPassword([password]); $gateway-

我试图通过我的paypal沙箱从我的本地机器上进行简单的支付。我正在使用Codeigniter中的Omnipay库

我在developer.paypal.com上设置了一个沙盒帐户和一个测试应用程序。这是我正在使用的代码:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername([username]);
$gateway->setPassword([password]);
$gateway->setSignature([signature]);
$gateway->setTestMode(true);

$params = array(
    'amount' => '1.00',
    'currency' => 'USD',
    'description' => 'test purchase',
    'transactionId' => '123',
    'transactionReference' => '123ref',
    'returnUrl' => [returnUrl],
    'cancelUrl' => [cancelUrl],
);

$response = $gateway->purchase($params);
我得到以下错误:

致命错误:未捕获异常“Buzz\exception\ClientException”,并显示消息“SSL证书问题,请验证CA证书是否正常”。详细信息:错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败,'in

我使用composer安装了omnipay,并带有一个名为BUZZ的东西。我对在线进行paypal交易非常陌生,不确定是否需要设置本地ssl证书。如果我这样做了,有人能为我指出设置的方向吗


谢谢。

我在omnipay的问题页面上找到了答案(至少对于测试而言):

仅适用于本地测试:

将这些行添加到文件/buzz/lib/buzz/Client/Curl.php,就在Curl\u exec方法之前

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0)

这听起来很狡猾。Omnipay用于向PayPal发出HTTPS请求,Guzzle为您捆绑最新的根SSL证书。因此,您不应该看到任何HTTPS警告

这在当地对你有用吗?你试过不同的服务器吗?如果您使用的是共享主机,那么您的web主机可能正试图代理您的请求,这意味着这些请求实际上是在执行代理,这可能会使您的网站不安全


编辑:刚刚注意到错误实际上来自嗡嗡声,而不是狂饮声。你是怎么安装的?composer.json文件是什么样子的?您正在运行哪个版本的Omnipay?如果您升级到最新版本的Omnipay(2.0),它将在内部使用Guzzle,这将修复SSL错误。

请注意,这会破坏SSL证书的一个用途:验证您是否正在与您希望执行的服务器进行通信。特别注意不要在生产中使用它,或者知道它有什么影响并处理后果。本质上,禁用SSL检查会启用中间人攻击,因此任何人都可以在您发送付款时篡改您的付款。我必须安装最新版本的omnipay,但没有在composer文件中正确设置版本。这导致我不得不将php更新到一个新版本,但现在一切似乎都正常了。谢谢