y1379269335 2016-12-13 00:43 采纳率: 50%
浏览 2392
已采纳

微信企业号页面打开企业通讯录选人报错:fail_invalid signature,请问如何解决?

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

  • 写回答

3条回答 默认 最新

  • y1379269335 2016-12-22 02:15
    关注

    问题已解决,原因是ios微信上调用此js接口,传入的timestamp必须是字符串类型,我之前传的是数字类型。安卓上无此问题。
    见知乎:
    https://www.zhihu.com/question/53490788/answer/136897593?group_id=794851608767893504

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决