微信 {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: Cf.y.a0389s108 ]"}


分享一下我的個人微信小程序

 

 

{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: Cf.y.a0389s108 ]"}

 

問題:微信網頁授權后,獲取到 openid 了,一刷新又沒了

 

微信網頁授權獲取到的 code 只能使用一次(5分鍾內有效),使用一次后,馬上失效。

 

頁面授權跳轉成功,根據 code 也換取到 openid 了。

此時刷新頁面,並不會再次進行授權,而是直接刷新了一下上一次授權跳轉后的鏈接,帶的還是上一次的 code (如果你復制當前頁面的鏈接,會發現它就是請求授權的鏈接,然而,刷新的時候,它訪問的並不是這個請求授權鏈接)。

因為上一次的 code 已經使用過,再根據這個 code 換區 openid,就會返回:{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: Cf.y.a0389s108 ]"}

 

解決方式有很多種:

方式一:獲取 openid 的時候,判斷一下,如果為空,則重定向去授權,這樣的話,不管怎么刷新,都沒關系,一定能獲取到 openid (這種方式太簡單粗暴,雖然這個接口沒有調用次數限制,但每次都授權,總感覺壓力有點大)

方式二:將 openid 放到 session 里,如果 session 里取不到,再進行授權(微信里的 session 不知道退出登錄會不會斷開,已知關閉程序時會斷。如果換個微信登錄,session 沒斷,就不好了。只有一個微信號,沒測試過!)

方式三:將 openid 放 cookie 里,一次授權,終生可用,看你 cookie 設置的有效期是多久了(不知道換個微信號登陸,cookie 里取出的是不是還是這個,是的話,也不好了。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM