最近在做微信支付接入,下载运行官方sdk和demo后提示错误:
Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:phpstudywwwwxpaylibWxPay.Api.php:564 Stack trace: #0 D:phpstudywwwwxpaylibWxPay.Api.php(62):WxPayApi::postXmlCurl(‘通过查询官方文档后获取如下解决方案:
错误通过修改文件:WxPay.Api.php解决,具体如下:
第537行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TURE); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,2);//严格校验改成
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);//关闭严格校验微信支付错误问题的解决:curl出错,错误码:60
然而,我按照上述方案改完代码后发现并没有什么卵用,仍然报错。
继续再接再厉,通过php大神安正超开发的easywechat框架文档中找到了以下解决方案:
这是 SSL 证书问题所致,在使用 SDK 调用微信支付等相关的操作时可能会遇到报 “SSL certificate problem: unable to get local issuer certificate” 的错误。
微信公众平台提供的文档中建议对部分较敏感的操作接口使用 https 协议进行访问,例如微信支付和红包等接口中涉及到操作商户资金的一些操作。 wechat SDK 遵循了官方建议,所以在调用这些接口时,除了按照官方文档设置操作证书文件外,还需要保证服务器正确安装了 CA 证书。
下载 CA 证书
你可以从 http://curl.haxx.se/ca/cacert.pem 下载 或者
使用微信官方提供的证书中的 CA 证书 rootca.pem(此处废弃!微信官方不再提供rootca.pem证书下载) 也是同样的效果。在 php.ini 中配置 CA 证书
只需要将上面下载好的 CA 证书放置到您的服务器上某个位置,然后修改 php.ini 的 curl.cainfo 为该路径(绝对路径!),重启 php-fpm 服务即可。
curl.cainfo = /path/to/downloaded/cacert.pem
注意证书文件路径为绝对路径!以自己实际情况为准(比如我的是D:phpstudy/www/wxpay/cert/cacert.pem)。
其它修改 HTTP 类源文件的方式是不允许的。
按照上述方法修改后微信sdk demo运行正常。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《微信支付接入报错:curl出错,错误码:60》
文章链接:https://www.liuzhanwu.com/2667.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。相关推荐
456CDN:为网络安全与加速保驾护航,CDN测评推荐
456CDN:高防CDN,200GB DDoS防护,无视CC,1TB流量@50Mbps带宽,500元/月,安全加速,智能守护,稳定安全
#618大促#最后一天|凌霞软件旗下新一代服务器面板 1Panel:永久授权 539元起,10台4900元,即买即赠SSL证书
#618大促#最后一天|凌霞软件旗下强大易用的建站工具 Halo:永久授权 660元起,10台6000元,即买即赠SSL证书
#6.18促销#Themebetter:WordPress主题特惠7折,DUX主题折后559元,不限制域名授权数目
耗子Linux 面板:又一个轻量 Linux 服务器运维管理面板
#11.11#Themebetter:年度大放价,全场6折特惠,DUX主题折后480元,不限制域名授权数目
紧急提醒:DediPath官宣跑路