概述
通過微信官方提供的接口https://api.weixin.qq.com/sns/oauth2/access_token
接口,獲取openid
,結果獲取不到。
報錯代碼
WechatUserInfo(accessToken=null, expiresIn=null, refreshToken=null, openid=null, scope=nul
l, errcode=40163, errmsg=code been used, hints: [ req_id: X6qVLa09602017 ])
解決
最後發現,當使用同一個code
,去第二次獲取openid時,會出現如上報錯。
可以走一層緩存,在redis中保存一個key爲:“open:wechat:code:xxx”的值。當使用code獲取openid時,先檢查一下redis中是否已經有這個值了,如果有,就直接用。沒有的話,再去調用微信接口獲取。
總結
使用緩存,避免一個code使用兩次,來避免code been used
異常