【TS】curl chars 15,问题自查自纠

    昨天在测试服务器测试APP支付功能的时候突然发现无法调起微信支付,支付宝是可以支付的。因为测试服务器和商用服务器用的环境和代码都是一致的,所以立刻切换到商用服务器去测试一下微信支付,还好,商用服务器一切正常(不正常早就炸锅了)。只有测试服务器不能用,这样就不用着急忙慌了,我便开始了慢慢修复之路。

    登录测试服务器,把微信支付的重要地方都记录log,很快就发现是curl请求微信服务器的时候返回false,curl errno:28。

通过CURLcode释义查询发现,28就是请求超时。百度上给出的解决办法,都是讲请求超时时间修改大一些,然而并没有用,我的问题明显不是网络延迟问题,所以各位程序员解决问题还是要谷歌啊。

    有下面几种解决办法:

    1.增大超时时间

    2.去除请求头中的referer

    3.去掉CURLOPT_HEADER这一项

    三个办法都试了一下,并没有解决我的问题。真是奇了怪。然后我怀疑谁动了测试服务器的代码,于是就比对商用服务器和测试服务器的代码,发现代码都是一模一样的,问了一圈,也没人动过测试服务器的环境,眼看找不出问题准备放弃。突然灵光一闪,在服务器ping一下微信接口的域名,然后就发现问题了。在商用服务器解析出来的ip地址在商用服务器和测试服务器都能ping通,测试服务器解析出来的ip地址在两个服务器都ping不同。然后我就百度了这个ping不通的ip地址,然后就找到了微信支付HTTPS服务器证书验证指引这里

【TS】curl chars 15,问题自查自纠

看到这里我大概就知道怎么回事了。进入host配置果然看到有113.96.240.139 api.mch.weixin.qq.com这么一行,删除之后测试微信支付,成功。

    原来我在测试服务器测试微信支付的新证书的时候修改了host配置,测试完之后一直没有修改回来,只到微信关停了这个IP才发现这个问题,惭愧,惭愧!

以上是 【TS】curl chars 15,问题自查自纠 的全部内容, 来源链接: utcz.com/a/68217.html

回到顶部