事件背景:
在为 WordPress 平台开发电商类插件以支持用户在线交易时,需集成 PayPal 支付功能。在对接 PayPal Server SDK 的过程中,遭遇了OAuth 令牌获取失败与SSL 证书验证问题。
具体表现为:初始化 PayPal 客户端并调用 API 时,系统持续返回 “Client is not authorized. An OAuth token is needed to make API calls” 错误,表明 SDK 未能成功获取认证令牌;
进一步调试为何未能成功获取认证令牌:获取令牌失败提示:SSL certificate problem: self-signed certificate in certificate chain

所以问题根源找到了: 是SSL 证书验证失败:我的本地服务器服务器(WAMP 环境)在向 PayPal 令牌接口(HTTPS 协议)发起请求时,无法识别或信任 PayPal 的 SSL 证书,因为证书链中存在 “自签名证书”(通常是你的服务器本地配置的测试证书,或未安装权威 CA 根证书)。
本地配置 cacert.pem
配置 CA 根证书,即cacert.pem文件。
1:本地服务器环境版本:Wampserver 3.3.2(64 位) + PHP 8.2.13
2:访问 curl 官方 CA 证书库下载页,点击页面中的 cacert.pem 链接下载文件:地址如下:
3:将cacert.pem 到指定路径(无则新增):C:\wamp64\bin\php\php8.2.13\extras\ssl

4:修改 php.ini 配置
路径:C:\wamp64\bin\apache\apache2.4.58\bin\php.ini
注意确认有效的路径,Wampserver有多个php.ini文件,别绕晕了。最好用php测试下
Loaded Configuration File:确认加载的 php.ini 路径
// phpinfo.php
<?php
phpinfo();
?>
在 php.ini 文件中,搜索以下两个配置项(若无则新增)
; 配置 cURL 证书验证
curl.cainfo = "C:\wamp64\bin\php\php8.2.13\extras\ssl\cacert.pem"
; 配置 OpenSSL 证书验证(可选,增强兼容性)
openssl.cafile = "C:\wamp64\bin\php\php8.2.13\extras\ssl\cacert.pem"
5:保存后,重启 WAMP 服务。
6:继续验证,调试成功:
