天天看點

微信授權回調時,回調位址中原有參數丢失

做登入微服務的時候,需要做微信授權認證.出現各種坑,(有坑才有成長).

之前一直是隻帶有一個參數, 沒有發現任何問題, 今天在測試項目一些功能時,發現授權後的回調位址中,丢失了原有的參數. 授權頁時顯示回調位址中參數有2個,當點選确認授權按鈕後, 參數剩了一個了.網上沒有查到相關問題解決方案,文檔上也沒有明确記錄. 經多方測試,老大指點後.問題終于得到解決.現記錄于下.以作錯誤的經驗總結,也給類似問題的同行一個簡單的方案或者思路.

先看下伺服器抓到的日志資訊;

微信授權回調時,回調位址中原有參數丢失

上圖明顯的可以看出, 授權後參數剩下一個了;為什麼回調位址經過編碼後,還會出現這樣的問題呢?剛一開始還以為是微信的問題, 限制傳多個參數.後來想想不可能這麼low. 後來老大說,你檢視下你的編碼.然後就統一檢查了所有需要編碼的地方,都經過編碼了,但是還存在這樣的問題. 但是,但是有一個地方,就是在拼接的時候, 為了省事,先進行了拼接,後編碼. 這時,将統一編碼改為分布編碼,然後再拼接.OK,問題解決. 看來有時候真是不能偷懶呀!

看下錯誤的寫法:

微信授權回調時,回調位址中原有參數丢失

正确寫法:

微信授權回調時,回調位址中原有參數丢失

這裡需要做兩次編碼處理.引以為戒呀!

繼續閱讀