Curl error: Problem with the SSL CA cert (path? access rights?)

今天发现微信公众号的JSSDK没办法工作了,提示是签名错误,哎呀,昨天可以用,今天却不行,真痛苦~

经过调试发现是jsapi_ticket的值为空,那就好玩了,这个怎么会是空呢?!

又继续跟踪下去,因为程序本身就没有错误输出,那么增加错误输出。

        $curl = curl_init();
        // ......
        $res = curl_exec($curl);
        
        if( $res === false ){
            echo '调用错误: ' . curl_error($curl);
        }else{
            echo '没有错误噢~';
        }

然后就出现错误提示了:

Curl error: Problem with the SSL CA cert (path? access rights?)

网上找了一下《 curl call error(77): Problem with the SSL CA cert (path? access rights?)

然后原因基本正确,因为昨天我对系统做了yum update操作了。

重启一下

service php-fpm restart

然后恢复正常。

Warning: http_build_query(): Parameter 1 expected to be Array or Object. Incorrect value given in …

今天,在开发微信公众号发送模板消息的时候调用ECSTORE系统的发送模块base_httpclient类。结果死活出错误,一直提示:

Warning: http_build_query(): Parameter 1 expected to be Array or Object.  Incorrect value given in /data/ECS_Site/Demo/app/base/lib/curl.php on line 31

其他时候基本上没有,没有看到错误,可能也许大概没有错误,但是增加模板调用就会出现错误,所以调试一圈发现没有涉及到相关的其他调用,完全是系统本身的调用,不知道哪里涉及到了,没时间一步步的调试了。

根据错误提示:

参数1预计的参数是数组或者对象,错误的值在…

好吧翻译的有点问题但是基本的意思我们懂啦,查看手册发现http_build_query()这个方法的参数1是:可以是数组或包含属性的对象。

那么问题就在于调用的时候不是这两类的类型。

查看错误代码所在的上下文发现,这个参数的来源可能是null类型,好吧,所以增加一个判断,问题解决。

至于会不会造成其他的错误那就不好说了噢。