QuickBook PHP windows本地 操作api接口时报错 CA证书
一、 QuickBook 操作api 出现报错
//默认已获取token,已连上Quickbook $oauthLoginHelper = $dataService -> getOAuth2LoginHelper(); //获取用户公司信息 $CompanyInfo = $dataService->getCompanyInfo ();
二、报错以下信息
QuickBooksOnline\API\Exception\SdkException cURL error during making API call. cURL Error Number:[60] with error:[SSL certificate problem: self signed certificate in certificate chain] QuickBooksOnline\API\Core\HttpClients\CurlHttpClient::handleErrors D:\web\uerp\vendor\quickbooks\v3-php-sdk\src\Core\HttpClients\CurlHttpClient.php:112
三、原因 是因为 windows PHP 需要配置默认SSL CA证书,Linux 和苹果系统不需要
1、从CURL 官网下载CA 证书(当然也可以选择自己创建SSL CA证书,详情参考 https://blog.csdn.net/scuyxi/article/details/54898870 ,或自行百度)
CA 证书下载地址:https://curl.haxx.se/docs/caextract.html 页面去选择下载
或:https://curl.haxx.se/ca/cacert.pem
2、在PHP安装目录下新建一个文件夹cacert 来存放CA证书
修改php.ini配置
启用openssl, curl扩展
搜索 extension ,去掉需要开启扩展前的分号注释
extension=curl
extension=openssl
搜索 [curl] 和 [openssl] ,找到curl 和oppenssl 配置模块
;配置CA 证书存放位置
curl.cainfo= H:/phpapache/php-7.2.7-ts-x64/cacert/cacert.pem
openssl.cafile=H:/phpapache/php-7.2.7-ts-x64/cacert/cacert.pem
;配置CA 证书目录
openssl.capath=H:/phpapache/php-7.2.7-ts-x64/cacert
3、Apache 配置 SSL 证书
参考:https://jingyan.baidu.com/article/22fe7cedda56213002617f0d.html
先申请SSL证书
开启 OpenSSL module 模块
LoadModule ssl_module modules/mod_ssl.so 去掉全面的 # 号
我的PHP.ini设置
; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. curl.cainfo = "D:\phpstudy_pro\Extensions\php\php7.3.4nts\extras\ssl\cacert.pem"