問題:
????????集成微信js-sdk,出現(xiàn)invalid signature簽名拋錯。
解決初步思路:
????????根據(jù)問題拋錯开镣,去查閱js-sdk的常見錯誤及解決辦法,通過對比發(fā)現(xiàn)拋錯是簽名咽扇,按照解決辦法一一對比去檢查代碼邪财,確認(rèn)前端傳給后端的URL是否正確,前端按照上述方法把URL轉(zhuǎn)碼傳給后端后肌割,發(fā)現(xiàn)依然獲取簽名報錯。
最終解決思路:
????????仔細(xì)閱讀jssdk的錯誤寄解決辦法以及簽名算法的生成帐要,發(fā)現(xiàn)還是URL的問題把敞,根據(jù)js-sdk上面簽名算法的生成上,URL參數(shù)是為解碼后的URL榨惠,后端沒解碼URL奋早,所以導(dǎo)致簽名拋錯,前端傳給后端是通過encodeURIComponent()方法轉(zhuǎn)碼過后的URL赠橙,而后端拿到前端轉(zhuǎn)碼過后的URL耽装,是需要解碼才能生成正確的簽名。