1. 程式人生 > >(已解決)access_token沒過期,但已失效的問題{errcode:40001}-java-微信

(已解決)access_token沒過期,但已失效的問題{errcode:40001}-java-微信

做微信開發偶爾會有好多使用者的資訊獲取不到,提示:{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [C7NhMA0380vr31!]"},意思是access_token已經失效,但access_token的有效期是7200S也就是兩個小時,但我的token失效的時候才30分鐘左右,其他地方也沒有單獨呼叫獲取token的介面,讓人匪夷所思。

而且發現用同一個token再次請求,就成功了,雖然沒找到什麼問題所致,大部分答案說是微信的bug,但也不是肯定。只能迂迴用自己的方案來解決了。

1.首先伺服器是有定時任務的,每一小時更新一次access_token

2.有了第一步之後理論上不會出現40001錯誤了,為了防止此問題出現當請求返回40001後重復請求3次

3.請求3次後,如果還有此問題出現(機率已經很小了,不過為了保證準確性),把此資訊存入到一個記錄token失效錯誤的日誌表中,定時的去處理這個表中的資料。

親測10萬用戶,在經過第二步之後半月內只有幾十條token失效的日誌,在定時處理後,再沒出現過問題。

之前一直沒找到好的解決方案,於是自己寫的。如果有更好方案,歡迎分享。