网页授权获取微信用户信息错误40029:不合法的oauth_code


这几天测试刚完成的网页授权获取微信用户信息功能。

在第一步:用户同意授权获取code,通过code获取access_token时,有时会出现40029错误。

经过调试,发现问题出现在redirect_uri=REDIRECT_URI当跳转到授权链接后,微信会发出两次转向至redirect_uri的相同请求(两次带进来的code是相同的)。

第一次的code后已经成功换取得openid以及access_token;

第二次转向到redirect_uri时,该code已经失效(code只能使用一次),从而导致了40029:不合法的oauth_code的错误,不能再获取到access_token。

由于面一次被终止,生效的为第二次,因而不能获取到用户信息。(可这种情况只是偶尔发生,过一会儿再进入又正常了),请教这个问题应该如何解决?

===========================================================================

下面贴一张我获取微信用户信息的流程图,请教各位这个流程是不是存在什么问题呢?改怎么改善一下?

图片描述

微信开发 微信公众平台

舔盘子的神 10 years, 2 months ago

静默获取也偶尔会有这样的问题,结果用户自己结束微信程序再登录就好了,很奇怪有没有人知道为什么

饼梦幻想中 answered 10 years, 2 months ago

我最后选择了在用户关注微信公众号的时候一次获取用户信息,保存数据库,然后用户访问页面的时候静默获取openid,再根据openid从数据库中读取用户的相关信息。

arsch answered 10 years, 2 months ago

我这也是40029错误,根据日志中数据分析,不止是2次,基本是个位数,然后最多的就是123、78、70、65(只是一天的数据4台机器),时间点是10:37:04~16:11:06(偏差在5分钟内),我也是醉了,不知道有没有人可解答

至少放过妈妈吧 answered 10 years, 2 months ago

请问有答案吗?

囧rz—— answered 10 years, 2 months ago

Your Answer