通过微信的接口开发打卡考勤很长时间了,最近遇到一个很奇怪的问题,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="http://res.wx.qq.com/open/js/jweixin-1.1.0.js" type="text/javascript"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript"></script>
2接口有变化,多了一个参数beta
修改之后,在测试,发现没有问题了。因为很特殊,特此记录,便于其他人员参考。