企業號頁面中,想打開企業通訊錄選人。
access_token獲取成功;
jsapi_ticket獲取成功;
group_ticket也獲取成功;
wx.config調用成功(由於debug模式,彈出ok,說明jsapi_ticket的簽名算法是正確的);
但是的就是調用WeixinJSBridge.invoke("openEnterpriseContact", {......}, function(){......})的時候,總是報fail_invalid signature的錯誤。
簽名算法與wx.config中用的簽名算法一樣,簽名用的字符串也是按照官網開發文檔拼接的。
以下是我的代碼片段:
而且,我已經按照官方文檔附錄6的方式檢查了:
1、企業管理組權限驗證簽名算法無法驗證,因為這個工具只能驗證jsapi的簽名算法。企業管理組權限驗證簽名算法與jsapi_ticket簽名算法相同,並通過了http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 此頁面工具的驗證。
2、wx.config中的nonceStr是大寫S,並且timestamp和noncestr與簽名中的一樣。
3、url是完整的,以http://開頭,與location.href.split('#')[0]相同,我的這個url沒有get參數。
4、檢查過,一樣。
5、access_token和group_ticket都是緩存的。
6、檢查了,是一樣的。
頁面獲取group_ticket簽名的controller:
簽名的方法:
請問是哪裡出了問題?
懇請有能之士幫下忙,幫我解決下這個問題,非常感謝。
2016年12月22日修改
問題已解決,原因是ios微信上調用此js接口,傳入的timestamp必須是字符串類型,我之前傳的是數字類型。安卓上無此問題。
見知乎:
https://www.zhihu.com/question/53490788/answer/136897593?group_id=794851608767893504
問題已解決,原因是ios微信上調用此js接口,傳入的timestamp必須是字符串類型,我之前傳的是數字類型。安卓上無此問題。
見知乎:
https://www.zhihu.com/question/53490788/answer/136897593?group_id=794851608767893504