我正在使用cUrl和PHP向服务器发出请求(用于访问PayPal)
Paypal开发者网站从未提及使用PayPal访问API需要SSL证书,但是我用来请求令牌的代码如下:
$options = array(
CURLOPT_URL => $url,
CURLOPT_POST => 1,
CURLOPT_VERBOSE => 1,
CURLOPT_POSTFIELDS => $postvals,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSLVERSION => 3
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
echo curl_error($ch);
Run Code Online (Sandbox Code Playgroud)
此echo输出以下错误:
SSL certificate problem: unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1)如果我只需要获取用户电子邮件,是否需要SSL才能使用PayPal访问?
2)如果我不需要SSL,为什么会出现此错误?
PS:端点如下:https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice
我在 CurlFactory.php 第 187 行中收到错误RequestException:cURL 错误 60:SSL 证书问题:尝试登录时无法获取本地颁发者证书(请参阅 curl.haxx.se/libcurl/c/libcurl-errors.html)与社交名媛脸书。这是我遵循的教程http://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-facebook-login.html#.V2K-ersrLIV。
这是我的控制器:
public function redirect()
{
return Socialite::driver('facebook')->redirect();
}
public function callback()
{
// when facebook call us a with token
$providerUser = \Socialite::driver('facebook')->user();
}
Run Code Online (Sandbox Code Playgroud)
从我的研究中,我发现错误是由 guzzlehttp/guzzle 的版本引起的。我尝试了这些链接中提供的解决方案,但对我不起作用。本地主机上的 Laravel Socialite 测试,SSL 证书问题?和 https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/52954。请帮忙。