古詩詞大全網 - 個性簽名 - invalid signature什麽原因

invalid signature什麽原因

1.首先確認簽名算法是正確的,到/debug/cgi-bin/sandbox?t=jsapisign頁面工具進行校驗。也就是妳自己後臺生成簽名要和微信校驗算法生成的簽名壹致才可以。

2.還有壹個筆者曾遇到的坑,看到微信SDK上說token和ticket需要在服務器做緩存,有效期是7200秒,寫代碼的時候沒有仔細思索,導致把生成的簽名也給緩存了,用幾次就報invalid signature,後來仔細讀文檔之後,果斷改為每次打開頁面都重新生成簽名即可,token和ticket依然被緩存,但timestamp是變化的,因此每次簽名也是不同的。

3.參與簽名的字段包括有效的 jsapi_ticket(獲取方式詳見微信JSSDK文檔), noncestr (隨機字符串,由開發者隨機生成),timestamp (由開發者生成的當前時間戳), url(當前網頁的URL,不包含#及其後面部分。

4.特別註意:妳在利用參數生成簽名的時候,要對所有待簽名參數按照字段名的 ASCII 碼從小到大排序(字典序)後,使用 URL 鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串 string1。這裏需要註意的是所有參數名均為小寫字符。

5.確認config中nonceStr(js中駝峰標準大寫S), timestamp與用以簽名中的對應noncestr, timestamp壹致。

6.確認url是頁面完整的url(請在當前頁面alert(location.href.split('#')[0])確認),包括'http(s)://'部分,以及'?'後面的GET參數部分,但不包括'#'hash後面的部分。因為頁面壹旦分享,微信客戶端會在妳的鏈接末尾加入其它參數,如果不是動態獲取當前鏈接,將導致分享後的頁面簽名失敗。