收藏
回答

签名和官方工具生成的内容是一致的,但是为什么调用wx.config一直提示签名无效?

$.ajax({
    url: "api/GetToken/PostTicket",
    data: { "access_token": access_token },
    type: "POST",
    async: false,
    success: function (dataa) {
        //debugger;
        let jsonObject = JSON.parse(dataa);
        var ticket = jsonObject.ticket;
        localStorage.setItem("ticket", ticket);
        var aaccc = encodeURIComponent(location.href.split('#')[0]);
        $.ajax({
            url: "api/GetToken/GetQM",
            data: { "ticket": ticket, "Urll": aaccc },
            type: "POST",
            async: false,
            success: function (dataaa) {
                //debugger;
                let jsonObject = JSON.parse(dataaa);
                mytimestamp = jsonObject[0].mytimestamp;
                mynonceStr = jsonObject[0].mynonceStr;
                mysignature = jsonObject[0].mysignature;


                //alert(location.href.split('#')[0])
                wx.config({
                    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
                    appId: APPID, // 必填,公众号的唯一标识
                    timestamp: mytimestamp, // 必填,生成签名的时间戳
                    nonceStr: mynonceStr, // 必填,生成签名的随机串
                    signature: mysignature,// 必填,签名
                    jsApiList: [
                        'getLocation'
                    ], // 必填,需要使用的JS接口列表
                    openTagList: [] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
                });
                wx.ready(function () {
                    //alert("success");
                    wx.getLocation({
                        type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
                        success: function (res) {
                            latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
                            longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
                            speed = res.speed; // 速度,以米/每秒计
                            accuracy = res.accuracy; // 位置精度
                            getLocationcs();
                        },
                        fail: function (err) {
                            //$.alert("获取定位位置信息失败!");
                        },
                        cancel: function (res) {
                            $.alert('用户拒绝授权获取地理位置');
                        }
                    });
                });
                wx.error(function (res) {
                    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
                    //alert("cscs");
                });
            },
            error: function (e) {
                console.log(e);
                // alert("服务器异常")
                $.alert("服务器异常,请重试33!");
            }
        });
    },
    error: function (e) {
        console.log(e);
        // alert("服务器异常")
        $.alert("服务器异常,请重试22!");
    }
});
回答关注问题邀请回答
收藏
登录 后发表内容