一、 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"

777.png