ACCESS DENIED
小Z小Z  2019-08-24 06:10 主机之家测评 隐藏边栏 |   抢沙发  84 
文章评分 0 次,平均分 0.0

最近在做微信支付接入,下载运行官方 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 运行正常。

声明:1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
小Z
小Z 关注:0    粉丝:0
【声明】:本站宗旨是为方便站长、科研及外贸人员,请勿用于其它非法用途!站内所有内容及资源,均来自网络。本站自身不提供任何资源的储存及下载,若无意侵犯到您的权利,请及时与我们联系。

发表评论

扫一扫二维码分享