最近一直在作微信公衆號開發,遇到個DT的問題:java
你們都知道使用jssdk的時候開發人員必須在後臺按照官方文檔給定的規則生成簽名,我前前個月就寫好了這個測試demo頁面,並且徹底正常能用,像分享等這些功能都親測使用過;但昨天再用的話就一直提醒 invalid signature,天吶,確認本身沒動過這代碼呀,怎麼好端端忽然 invalid signature呢?通過層層排查,終於找出了這個蛋疼的地方。c#
c#後臺實現signature簽名:api
舊版的是註釋的那一行(之前一直這麼用好好的),新版的是下一行。話說剛開始實在沒找出緣由,無賴又看了一遍文檔,按照條數逐一排查了一遍,前5條徹底沒問題。那麼問題確定就出在第6條了,微信
將當前請求的url換成 自動獲取之後,終於config:ok 了;返回頭對比了一下二者區別:測試
http://xxxx/weixin/Test/Jsapi
http://xxxx/weixin/Test/jsapi 加密
發現了問題在於jJ大小寫上;發現問題了,但我一直納悶前段時間我一直用着好好的呀,也沒動過這的代碼;莫非是官方更新?? 本人是這麼理解的,後臺開發人員通過Shal加密後,將必要的參數傳給前臺(nonceStr,timestamp,signature),而後微信再進行一次Shal加密,最終和後臺傳過去的簽名signature作比較,但微信加密 這可能大小寫沒有處理(或者人家就是故意要區分大小寫,或者像javaURl原本就區分大小寫,本人以爲不合適),全部出現了兩邊signature一直不等的狀況,因此就一直出現 invalid signature。。。。給正在作或將要作的朋友提個醒,繞過它。url