我正在使用 cUrl 和 PHP 向服务器发出请求(用于访问 Paypal )
Paypal 开发者网站从未提及使用 PayPal 访问 API 需要 SSL 证书,但是我用来请求 token 的代码如下:
$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);
此回显输出以下错误:
SSL certificate problem: unable to get local issuer certificate
我的问题是:
1) 如果我只需要获取用户电子邮件,是否需要 SSL 才能使用 Paypal 访问?
2) 如果我不需要 SSL,为什么会出现此错误?
PS:端点如下:https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice
最佳答案
正确的解决方案是修复您的 PHP 设置。将 CURLOPT_SSL_VERIFYPEER 设置为 false 是一个快速的 hack,但它是错误的,因为您禁用了它的证书颁发机构的证书验证。这会使您面临中间人攻击。
很容易修复(php 5.3.7 或更高)-
Download一个包含最新证书颁发机构的列表文件,并将此设置添加到您的 php.ini
curl.cainfo=<path-to>cacert.pem
重启你的网络服务器,它就会工作了!
关于php - Paypal 访问 - SSL 证书 : unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478283/