最近在做微信支付接入,下载运行官方 sdk 和 demo 后提示错误:
通过查询官方文档后获取如下解决方案:
错误通过修改文件: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 框架文档中找到了以下解决方案:
微信公众平台提供的文档中建议对部分较敏感的操作接口使用 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 运行正常。
本文为原创文章,版权归主机之家测评所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ PHP 如何判断是一维数组还是二维数组?08/22
- ♥ JQuery 获取 tr 中第一个 td 的值07/06
- ♥ 禁止 vim 复制内容缩进的办法08/29
- ♥ layer 子窗体关闭后向父窗体传值的办法08/29
- ♥ 【疯狂猜成语/图猜成语】一个人身上插着一把剑旁边一个仁字是什么成语?08/18
- ♥ JS 负数转正数08/28
内容反馈