invalid signature簽名錯誤。建議按如下順序檢查:
- 確認簽名算法正確,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 頁面工具進行校驗。
- 確認config中noncestr, timestamp與用以簽名中的對應noncestr, timestamp一致。
- 確認url是頁面完整的url,包括GET參數部分。
- 確認 config 中的 appid 與用來獲取 jsapi_ticket 的 appid 一致。
- 確保一定緩存access_token和jsapi_ticket,可以減少兩次服務器請求加速體驗外,還避免了觸發頻率限制,提高服務穩定性。
目前項目中現在有微信支付的公眾號平台的appid1,和微信開放平台的appid2,
我按照這個順序檢驗程序,走到 4 的時候,發現項目中請求 獲取全局acess token 用的是公眾號平台的appid1,jspai ticket 用的是 開放平台的appid2,兩個appid 不一致導致的。
關於獲取全局acess token:
使用微信開放平台的appid2賬號獲取的網頁登陸授權的access token ,僅用於登陸和獲取用戶信息,在調用jsapi ticket 和其他接口的token 指的是全局的access token,這個和網頁授權得到的access token 不是一個東西,需要調用全局access token 接口獲取,並全局保存
參考地址:http://wohugb.gitbooks.io/webot/content/js-sdk/error.html