最近开发一个项目,有公众号的,要求从公众号的快捷菜单进入365bet网址开户_bst365老牌体育_365net
,然后实现自动登录的功能。其实就是一个通过Code获取OpenId的过程。以前做项目时,也用过。不过最近不知道为什么,总是提示code been used, hints: [ req_id: **************]的40163的错误 。
找度娘问了,才知道,原来是用已得到的Code连续请求了两次,可是为什么会请求两次呢。排查了半天,真是半天的时间,浪费呀,也做了不少的测试。在我的项目里我找到了一个原因:
点一下微信公众号的快捷菜单,跳转到365bet网址开户_bst365老牌体育_365net
页面会请求两次。
比如说:一个快捷菜单为:365bet网址开户_bst365老牌体育_365net
首页,它的链接为:http://www.home.com,把么你就会发现,这个首页里会有两次访问。
这还不是奇怪的地方,更奇怪的是安卓系统和苹果系统还不一样。安卓请求两次,苹果请求一次。
具体是什么原因我还是没找到,只是发现了这样的问题。
我是这样解决的。
在第一次请求时,把得到的OpenId缓存下来。返回OpenId,走正常程序流。
第二次请求时,把OpenId直返回。不再请求。注意,这里,如果有第二次请求的话,第一次请求会正常走完,但页面不会返回,第二次请求时将页面返回。
可能说的有点乱。希望能给您带去一点思路。