1. 程式人生 > >微信公眾號開發 獲取openid時報錯40163:code been used問題的解決

微信公眾號開發 獲取openid時報錯40163:code been used問題的解決

概述

通過微信官方提供的介面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異常