收藏
回答

H5写的企业微信调用扫一扫功能,在安卓能正常,苹果上调用提示invalid signature

如题,用H5写了个调用微信扫一扫的功能

一、在苹果手机上运行,配置wx.config时,企业微信中提示【invalid signature more info at https://open.work.weixin.qq.com/devtool/query?e=40093

苹果手机

型号【iphone 6s plus】

软件版本【13.4.1】

提示如图

  var data = { "url": url, "AppID": AppID_znls, "AppSecret": AppSecret_znls, "Code": Code, "dyly": dyly };
    $.ajax({
        url: '../../../BLL/xxx/xxx/bll_signature.ashx?method=' + method,
        dataType: 'json',
        type: "post",
        data: data,
        success: function (rntData) {
            debugger;
            console.log('11.' + rntData);
            alert(JSON.stringify(rntData));
            //alert(rntData.appId);
            //alert(rntData.nonceStr);
            //alert(rntData.signature);
            //扫一扫
            //try {
            wx.config({
                beta: true,                          // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
                debug: true,                        // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: rntData.appId,
                timestamp: rntData.timestamp,
                nonceStr: rntData.nonceStr,
                signature: rntData.signature,
                jsApiList: [
                    'checkJsApi',
                    'chooseImage',
                    'previewImage',
                    'uploadImage',
                    'downloadImage',
                    'getNetworkType',
                    'openLocation',
                    'getLocation',
                    'hideOptionMenu',
                    'showOptionMenu',
                    'closeWindow',
                    'scanQRCode',
                    'translateVoice'
                ]
            });
            // 通过ready接口处理成功验证
            wx.ready(function () {
                alert("1.初始化成功!");
                console.log('设备已经可以使用');
            });
            wx.error(function (res) {
                alert("2.错误信息== " + JSON.stringify(res));
            });
            //} catch (e) { }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            $.toptip( "3." + jqXHR.responseText);
        }
    });

传入的 url为编码后URL

编码前URL(关键内容用XXX代替):http://b.aaa.yn.cn/view/xxx/xxx/edi_sm_znls.html?bmdm=1&zdshqr=y&shdzList=[{"data":[{"bmid":"1","bm":"xxx1","dz":"xxx1","lxr":"","tel":"","zdshqr":"y"}],"total":"1","result":"99"}]&gysList=[{"dwdm":"1","dwmc":"xxx2","dwdz":""}]

编码后URL:http://b.aaa.yn.cn/view/xxx/xxx/edi_sm_znls.html?bmdm=1&zdshqr=y&shdzList=%5b%7b%22data%22%3a%5b%7b%22bmid%22%3a%221%22%2c%22bm%22%3a%22xxx1%22%2c%22dz%22%3a%22xxx1%22%2c%22lxr%22%3a%22%22%2c%22tel%22%3a%22%22%2c%22zdshqr%22%3a%22y%22%7d%5d%2c%22total%22%3a%221%22%2c%22result%22%3a%2299%22%7d%5d&gysList=%5b%7b%22dwdm%22%3a%221%22%2c%22dwmc%22%3a%22xxx2%22%2c%22dwdz%22%3a%22%22%7d%5d

二、在安卓上正常运行

已经引用了jweixin-1.2.0.js

想请问下是什么原因造成?以及怎么解决苹果上无法调用【扫一扫】的问题?



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

4 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2020-05-26

    您好,可以检查下ios和安卓生成签名的url是不是一致的

    2020-05-26
    有用 1
    回复 5
    • 王二今
      王二今
      2020-09-01
      我这边安卓 ios pc都报40093,url是一致的
      2020-09-01
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2020-09-01回复王二今
      给下企业cropID 校验签名的时间戳 计算的签名看下
      2020-09-01
      回复
    • Z
      Z
      2022-03-02
      ios和安卓生成的签名是一致的,苹果就是调用不起来,安卓可以
      2022-03-02
      回复
    •      嗯哼?
           嗯哼?
      2023-04-14
      2023-04-14
      回复
    •      嗯哼?
           嗯哼?
      2023-04-14回复     嗯哼?
      这个问题有解决吗?时不时的扫描就不能用了,然后就抛这个错
      2023-04-14
      回复
  • 90
    90
    10-29

    四年过去了,博主解决这个问题了吗

    10-29
    有用
    回复
  • 不忘初心
    不忘初心
    03-29

    改用:jweixin-1.0.0.js 试试

    03-29
    有用
    回复
  • 王二今
    王二今
    2020-09-01

    请问题主问题解决了么,我现在也遇到同样的问题了,安卓 ios pc 都报40093,后台签名和企业微信官方生成的前面一致,一直找不到问题出在哪里,还望指点迷津

    2020-09-01
    有用
    回复
登录 后发表内容
问题标签