通过微信的接口开发打卡考勤很长时间了,最近遇到一个很奇怪的问题,getlocation:invalid appid?
wx.config({ beta: true,// 必须这么写,否则在微信插件有些jsapi会有问题 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '<%=appId%>', // 必填,企业号的唯一标识,此处填写企业号corpid timestamp:<%=timestamp%>, // 必填,生成签名的时间戳 nonceStr: '<%=nonceStr%>', // 必填,生成签名的随机串 signature: '<%=signature%>',// 必填,签名,见附录1 jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.error(function(res){ alert(JSON.stringify(res)+"wx.error"); // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); wx.ready(function () { GetWeiXinGps(); }) function GetIosWeiXinGps() { wx.getLocation({ type: 'wgs84', success: function (res) { hasReadGPS = true; var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。 $("#lngl").val(longitude); $("#latl").val(latitude); GetBaiduPoint(longitude, latitude); }, fail: function (res) { alertInfo(JSON.stringify(res) + "fail"); }, cancel: function (res) { alertInfo('用户拒绝授权获取地理位置'); } }); }
很奇怪,一直都好好的没有问题,但两三千人中,最近有一个人出现了,找微信的官方文档也没看见相关的错误。大部分说的都是签名错误,但使用了这么长时间,不可能是签名错误啊。
而且很奇怪,使用企业微信就APP没有错误,使用微信APP就有问题。难道是为了推广企业微信?但只有这一个同事啊?之前也发生过问题,一般都是在微信通讯录中删除对应的人员,重新添加,在重新关注就没有问题了。但这次我是所有的方法都测试了一次还是不行。实在是没有办法了,有重新看了看官方的文档,发现了两个可疑的地方。
1js文件有变化
<script src="/img/jweixin1.1.0.js9195d15379c04a51911925e3637d45aa.png" type="text/javascript"></script> <script src="/img/jweixin1.2.0.js1766a74f2e344de880b2a922aa0a39b2.png" type="text/javascript"></script>
2接口有变化,多了一个参数beta
修改之后,在测试,发现没有问题了。因为很特殊,特此记录,便于其他人员参考。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/app/5287.html