Laravel集成srmklive/laravel-payPal遇SSL证书错误求助
解决Laravel集成PayPal沙箱时的cURL SSL证书错误
问题详情
本地环境使用srmklive/laravel-payPal包对接PayPal沙箱,执行获取AccessToken的代码时触发cURL错误60,错误信息如下:
Error Received : array:1 [▼ //
app\Http\Controllers\PaypalController.php:23 "error" => " cURL error 60: SSL certificate problem: unable to get local issuer certificate for https://api-m.sandbox.paypal.com/v1/oauth2/token ◀ " ]
涉及代码片段:
public function paypal(Request $request) { $provider = new PayPalClient; $provider->setApiCredentials(config('paypal')); $paypalToken = $provider->getAccessToken(); dd($paypalToken); // ... 后续代码 }
修复方案
这个错误源于本地环境缺少可信的SSL根证书,导致cURL无法验证PayPal API的证书有效性,以下是三种可行解决办法:
方案1:配置SSL根证书(推荐,适用于所有环境)
- 下载最新的cURL CA证书文件(cacert.pem)
- 打开PHP配置文件
php.ini,找到并修改以下两项配置,替换为证书文件的绝对路径:curl.cainfo = "/path/to/your/cacert.pem" openssl.cafile = "/path/to/your/cacert.pem" - 重启本地开发服务器(如XAMPP、WAMP、Valet等)
方案2:临时禁用SSL验证(仅本地开发用)
注意:生产环境禁止使用此方法,会引发安全风险
在初始化PayPal客户端后,添加一行代码关闭SSL证书验证:
public function paypal(Request $request) { $provider = new PayPalClient; $provider->setApiCredentials(config('paypal')); // 禁用SSL验证 $provider->getHttpClient()->verifyPeer(false); $paypalToken = $provider->getAccessToken(); dd($paypalToken); // ... 后续代码 }
方案3:检查开发环境SSL配置
如果使用Laravel Valet或Homestead,可尝试重新生成本地SSL证书,确保环境自带的证书可信。
内容的提问来源于stack exchange,提问作者user18514343
相关产品推荐
相关产品推荐

