invalid signature為簽名錯誤
前提:嚴格按照官網提供的生成簽名的方法進行簽名。
但我在這要分享的問題是這樣的:我們獲取js-sdk配置信息是通過一個單獨的Ajax請求得到的,請求的參數是當前頁面的URL地址,傳遞到后臺生成簽名,把返回的信息作為參數傳遞給(wx.config)。
問題1:在傳遞參數的過程中,如果當前頁面的URL地址中包含有參數,那么把這完整的URL地址作為參數放到Ajax中的時候,就會丟失部分參數,所以就會出現簽名失敗
解決的方案是:傳遞URL地址的時候需要對地址進行編碼(encodeURIComponent),傳遞到后臺后再進行解碼(URLDecoder.decode(url, "UTF-8"))。
問題2:如果URL地址中的參數含有空格的話,瀏覽器地址欄中會把空格顯示成加號(+),但是我們在獲取URL并傳遞后臺的時候卻依然是空格
解決的方案是:后臺把參數中的空格做一個替換(url.replace(' ', '+'))。
至此,可以解決我們項目中遇到的簽名失敗的問題。