收藏
回答

企业微信JSAPI调用wx.invoke时签名错误?

首先使用场景是在企业微信工作台加了菜单,需要跳转到默认浏览器。

后端通过https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket获取ticket,前端传入noncestr,timestamp,url三个参数,在后端进行sha1加密

加密出来的signature和https://work.weixin.qq.com/api/jsapisign签名工具里的一致

然后前端是使用npm引入的ts-jwsdk,先调用了wx.config,时间戳和随机串是生成signature时使用的

然后在wx.ready中使用wx.invoke跳转默认浏览器,但是一直报40093错误

ticket确认无误,url是按照文档说明,截取当前页面的‘#’前面的内容

corpId是ww0b75bc9d14e403f9,希望能得到解答

回答关注问题邀请回答
收藏

1 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2021-09-09

    你好,config签名问题

    首先可以用http://work.weixin.qq.com/api/jsapisign页面工具进行校验签名算法,如与工具一致那么说明算法没有问题

    可以核查参与签名的相关参数情况   

    常见有俩点原因

    1.url 为当前需要调用域名的url 可以动态获取当前url除了#之后的 都需要参与签名

    2.就是ticket情况是有时效 需要当前企业进行获取保证有效的

    2021-09-09
    有用
    回复 4
    • Hong。
      Hong。
      2021-09-09
      我是用到的时候才会获取ticket,应该都是最新的,然后url我是截取了当前页面#之前的所有内容(包含参数部分),传给后端没有出现转码问题,是正常的string
      2021-09-09
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2021-09-09回复Hong。
      给下corpid 签名 时间戳我看下后台计算的签名
      2021-09-09
      回复
    • Hong。
      Hong。
      2021-09-09回复企业微信运营专员-千夜
      corpid:ww0b75bc9d14e403f9,timestamp:1631180485220,signature:e5caa53aa58c7ae09a654adda73d1d26ccd8dba3,谢谢麻烦你了
      2021-09-09
      回复
    • Hong。
      Hong。
      2021-09-10回复企业微信运营专员-千夜
      找到问题了,url传过去的时候,因为是get方式,后面的&参数被识别成了其他参数,拼接上就对了
      2021-09-10
      1
      回复
登录 后发表内容