微信支付在某些情况下加载请求非常慢的问题分析和解决办法

今天在开发公司的项目过程,在使用微信支付的时候,请求非常慢。

主要请求慢的原因是微信支付需要授权,获取openid,

 $tools = new \JsApiPay();
$openId = $tools->GetOpenid();
了解微信的人都知道,微信的授权获取微信openid 需要进行2各小步骤,第一步先获取code,

第二步拿到code,再去请求第二个接口,获取openid。

由于微信授权,普通的浏览器是看不到效果的,所以可以通过抓包的时候来搞,抓包软件,我mac用的是青花瓷

通过一步步分析发现。原来是在第二部的时候,请求非常慢:主要请求接口域名是:

https://api.weixin.qq.com

但是我其他服务器都是好好的,非常快啊,为何部署支付的服务器这么慢呢?

腾讯不应该出现这么慢的服务器啊。

于是分别在2个服务器上ping了下。最后对比下发现,虽然本地和服务器上ping返回的time差不多的,

但是,明显服务器上返回1个ping,本地都返回6~9个ping了,说明还是服务器问题。

如果同时ping  ip的话,就差不多,进而想到,很可能是服务器设置的DNS的问题,

服务器DNS解析的微信接口的API地址非常慢。

ssh 登录下服务器:

看下,dns是使用安徽的一个老的dns,和谷歌的dns,果断换成腾讯的dns和阿里云的dns

搜嘎。感觉速度非常快了。

如果各位遇到这个问题,记得这么去排查下。

这个主要是由微信支付引起的一个微信授权api的问题。


上一篇: PHP CURL实现并发多线程的抓取url地址
下一篇: 微信服务器白名单IP列表

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):