不知道新版本有沒(méi)有解決,如果還有在使用老版本的哥們很有可能會(huì)遇到二維碼生成失敗的問(wèn)題,不論是在平臺(tái)看二維碼還是在小程序中生成二維碼海報(bào)之類的時(shí)候,而且是時(shí)不時(shí)出現(xiàn)的。我嘗試了一下重啟redis刷新緩存可以短暫的解決,但是過(guò)了一會(huì),它就又會(huì)重新報(bào)錯(cuò),看來(lái)這個(gè)應(yīng)該就是和緩存相關(guān)的了
于是我到日志中查看,發(fā)現(xiàn)它在報(bào)最終錯(cuò)誤時(shí)是經(jīng)過(guò)了兩次請(qǐng)求之后才發(fā)出了最后的微信生成二維碼異常的報(bào)錯(cuò)
于是我順勢(shì)找到了代碼里做二維碼請(qǐng)求的部分,發(fā)現(xiàn)兩次都是報(bào)的40001的錯(cuò)誤,根據(jù)小程序官方文檔來(lái)看,這個(gè)是因?yàn)閠oken過(guò)期的問(wèn)題
那么答案就很明顯了,就是因?yàn)檫@個(gè)getMiniAccessToken()方法的問(wèn)題導(dǎo)致的,如果redis緩存中還沒(méi)清理掉過(guò)期的token,它就會(huì)一直獲取這個(gè)token導(dǎo)致二維碼獲取的失敗