全民付手机接口开发生产环境error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

近日,公司业务需要,做手机web支付,用的是全民付的手机支付,对方给的php开发文档很简陋,逻辑还是很简单的,经过写代码,测试环境下一切正常,
切换到线上环境时,返回空白,
打印curl的错误信息为 error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
低版本的curl也正常。
百度,google都没找到解决方案,最后查阅curl的文档:
CURLOPT_SSLVERSION 使用的SSL版本(2 或 3)。默认情况下PHP会自己检测这个值,尽管有些情况下需要手动地进行设置。
最后curl添加 
  curl_setopt($ch, CURLOPT_SSLVERSION, 3); //设定SSL版本
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
解决问题。
全民付的测试环境ssl版本为1,生产环境的ssl版本为3

你可能感兴趣的:(php)