Php Omnipay和CI的SSl证书问题
我试图通过我的paypal沙箱从我的本地机器上进行简单的支付。我正在使用Codeigniter中的Omnipay库 我在developer.paypal.com上设置了一个沙盒帐户和一个测试应用程序。这是我正在使用的代码: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-
$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更新到一个新版本,但现在一切似乎都正常了。谢谢