现象
做好了微信公众号扫描登录后,很稳定的运行,后来增加了微信开放平台,结果偶尔就出现了这个redirect_uri错误。然后重启服务器后,又正常。
探查
网上的说法都是网页授权配置的问题,检查微信公众号后台的配置,一起正常。
复制oauth跳转的url,放到微信开发者工具里,结果提示公众号没有绑定开发者,log里也变红了有错误,仔细检查输出的网址,好像没什么问题,发现有appid这个变量。
于是怀疑appid,检查了一下这个appid,果然不对。
解决
复查代码,原来是微信开放平台和微信公众号的代码都操作了同一个对象,结果当使用微信开放平台登录后,原来微信公众号的对象就不是初始化的那个对象了。
吐槽
吐槽一下,微信的报错,根本不是uri不对,其实仔细想想,微信应该是通过appid找uri,所以才这么报错,但是可以做的更好一点,如果提示“appid和redirect_uri不一致”,那就更好了。