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

微信企业号页面打开企业通讯录选人报错: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 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了