qyapi.weixin.qq.com频繁更换IP,DNS缓存旧IP导致访问不通的Bug
获取访问用户身份: https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo doc:https://work.weixin.qq.com/api/doc/90000/90135/91707 openid转userid: https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token= doc:https://work.weixin.qq.com/api/doc/90000/90135/90202 登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见 小程序登录: https://api.weixin.qq.com/sns/jscode2session doc:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html 我们项目的需要频繁用到该3个接口,解决的场景是微信小程序完成企业登录验证。 qyapi.weixin.qq.com和api.weixin.qq.com这个两个域名,一天变几回IP,而且不是负载均衡那种,负载均衡一般是多个IP都通,这两个域名换了IP后,旧的IP不通。 任何一款DNS(腾讯DNS、阿里DNS、114.114.114.114、8.8.8.8、私有DNS)都会把域名解释到的IP,缓存10分钟,下次访问时如果命中DNS缓存,则直接由DNS缓存返回。再加上操作系统(Windows、Linux)也会有自己的10分钟DNS缓存。 如果在DNS服务器域名缓存第10分钟快要过期时,操作系统命中了DNS服务器的缓存,把DNS的缓存重新缓存到操作系统DNS缓存,就会导致最长20分钟无法正常使用系统,因为这段时间ping qyapi.weixin.qq.com和ping api.weixin.qq.com,得到的IP是旧IP,已经不提供接口响应。 请腾讯官方解决这个问题,在更换域名更换IP时,延长旧IP的有效时间,或者固定几个长期有效的负载均衡IP。这个问题不是开发者能解决的了。