【Exception】微信JS-SDK接入報錯: invalid signature 簽名無效 解決思路
一、問題描述
1、接入微信 JS-SDK實現分享鏈接時,顯示公司LOGO,便於品牌效應傳播。
2、遇到一個問題: JS-SDK 簽名一直無法通過,按照 【附錄5-常見錯誤及解決方法】逐一排除後,且本地加密後簽名和【微信 JS 接口簽名校驗工具】得出的結果一致的情況下,仍然報錯: "invalid signature" 。
3、心情如下圖:
二、問題解決
1、確認要分享的頁面URL是js動態獲取的,而非靜態域名地址。
- 正確: var url = location.href.split('#')[0];
- 錯誤: var url = "www.abc.com/xx.html".split('#')[0];
2、確認當前測試服務地址和JS安全域名IP地址一致。
- 如:js 安全域名地址爲 abc.com ,對應ip爲: 11.22.33.44
- 本地啓動 Tomcat,測試地址爲: http://localhost:999/xx.html 這種情況下,獲取到的signature 簽名,和 【微信 JS 接口簽名校驗工具】得出的結果是一樣的,但是會仍然報錯: "invalid signature" 。
三、問題總結
1、"invalid signature" 這個問題,對於新手來說,按照【附錄5-常見錯誤及解決方法】逐一排除後,仍未解決,會有點鬱悶,懷疑人生的! 這裏記錄下,希望對後續遇到此類問題的朋友能有所啓發。
2、不知道爲啥微信不支持靜態域名地址分享!!!
3、若問題描述,解決思路表述不清晰,不理解,可私信聯繫,交流溝通,謝謝。
參考資料: 微信JS-SDK說明文檔