企业号页面中,想打开企业通讯录选人。
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