微信公众平台 JSSDK 示例代码 CURL SSL配置项错误php
curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2
jssdk.php
安全
# ...... private function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); // 为保证第三方服务器与微信服务器之间数据传输的安全性,全部微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。 // 若是在部署过程当中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } # ......
修改
服务器
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
为
微信
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
CURLOPT_SSL_VERIFYHOST微信公众平台
设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。dom
译者注:公用名(Common Name)通常来说就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。curl
设置成 2,会检查公用名是否存在,而且是否与提供的主机名匹配。 在生产环境中,这个值应该是 2(默认值)。url
值 1 的支持在 cURL 7.28.1 中被删除了。.net
curl_setopt 文档code