微信公众平台获取不到Openid的一个怪问题

来源:互联网 发布:软件魔盒社‘区 编辑:程序博客网 时间:2024/05/29 19:06

微信公众平台OAuth2.0在获取Openid时出现了怪问题,在使用一个已刷新过超时时间的refresh_token去获取Openid时发现有一定几率请求不到返回数据,也就获取不到Openid了,这个怪问题折腾了一宿终于有了答案。。。


发现最终返回的数据$data为false,使用curl_error($curl)打印错误记录:“Couldn‘t connect host”

多次实验发现一般是在我一分钟内请求4次以上会出现这个情况,记得官方文档有说接口的请求每日都有数量限制,可没找到接口的调用速率的限制,只能认为腾讯处于安全的考虑限制了调用速率的情况(注:我说的调用速率是指单用户频繁调用授权接口,多用户并发调用接口并不会出现这样的问题)。

解决方案是有的,将你第一次使用OAuth2.0请求到的用户信息等信息存入你的缓存,Session,Cookie都行,直到缓存过期才再使用授权接口请求信息。

我犯的一个错误是只将refresh_token存入到Session中,然后在使用到openid的时候通过缓存中的refresh_token去请求openid,结果是真正用户重复请求的接口没被缓存。。。


0 0
原创粉丝点击