在开发远程调用的过程中,特别是微信的二次开发中,为了安全微信使用了ssl的方式,即访问地址是https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack,response过程始终失败,最后解决把过程记录下。
微信二次开发在向微信服务器提交 https地址请求时服务器返回无法访问,同样的web应用程序与源代码同样的方式部署在rhel6.5的机器上一切正常,首先想到是不是编译过程出现了问题,于是重新编译PHP,测试还是失败,然后又重新编译php5.2.17自带的ext中的curl,生成curl.so,配置php文件加载curl扩展,用phpinfo查看,加载成功,但是程序调用还是失败,查询各种资料,发现curl在centos中有个DNS超时的BUG,通过写入curl_setopt($ch,CURLOPT_NOSIGNAL,1); 可以禁用这个功能,尝试还是失败,网上个各种同样的环境centos+php5.2.17均出现了curl无法访问https的问题,有说直接升级PHP到5.3版本即可解决,问题是升级以后又要一大堆的编译,心想是否是curl版本在centos中的问题,动手开干,查看现在版本是7.29于是下载7.35版本,编译curl,然后再重新编译php5.2.17,最后测试成功,如果碰到centos下php5.2.17环境中curl无法访问https的可以按照我这个方法试下。