纪念一下,困扰自己近一周的微信公众号"errcode":40163,"errmsg":"code been used"问题

纪念一下,困扰自己近一周的微信公众号"errcode":40163,“errmsg”:"code been used"问题。

编译环境,SpringBoot 2.x
最近将自己SpringMvc的代码修改为SpringBoot,结果发现公众号始终报错"errcode":40163,“errmsg”:“code been used”,最开始发现公众号页面有ajax请求两次的问题,然后在请求地址中加入&connect_redirect=1,然并卵,并未解决。

最后一遍遍的单步,终于发现自己的某一步请求,Url竟然始终未变,原因在于,原来的Url是注入的,然后,直接拿来replace,在服务器重启的第一次可以通过,以后的每一次都是第一次replace的结果。

@Value("${weixin.authorize2.url}")
String authorizeUrl;

//方法内调用时
authorizeUrl = authorizeUrl.replace("CODE", code).replace("APPID", appid).replace("SECRET", scre);

//后续直接请求值微信服务器,结果只在第一次重启服务器后刷新,然后始终保持第一次的结果,导致40163问题。

//调整后如下,随便赋值个String就可以了。搞定。
String authorizeReqUrl = authorizeUrl.replace("CODE", code).replace("APPID", appid).replace("SECRET", scre);

总结,SpringBoot 的@Value标签注入的值,只在第一次修改的时候修改成功,以后每次均为修改成功,以后应注意。如使用,需要赋值到新的字符串上。

你可能感兴趣的:(Java,微信公众号)