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

access_token失效40001微信公衆號invalid or not lates 更多

做微信開發偶爾會有好多用戶的信息獲取不到,提示:{"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失效的日誌,在定時處理後,再沒出現過問題。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章