为了持续集成自动化,很多人在都用了wx.getAccountInfoSync()接口,来判断微信所处的运行环境,根据环境自动连接对应后端。如下示例
const {
miniProgram: {
envVersion
}
} = wx.getAccountInfoSync();
let devUrl = 'http://192.168.88.20:8080';
// let devUrl = 'http://127.0.0.1:8080';
let trialUrl = 'https://trial.api.com';
let releaseUrl = 'https://api.com';
let domain = '';
switch (envVersion) {
case 'develop':
// domain = devUrl;
domain = trialUrl;
break;
case 'trial':
domain = trialUrl;
break;
case 'release':
default:
domain = trialUrl;
break;
}
使用体验版好好的,审核却被拒绝了,原因是审核版使用的wx.getAccountInfoSync()返回的是develop。那么开发只能在代码里面把本应该返回线下环境数据的逻辑,改为返回线上的数据才能通过审核。
主要问题
1、代码如果根据wx.getAccountInfoSync()返回的env,来判断链接的后端地址,会被驳回审核,因为审核时调用该接口返回的是develop,导致审核版本无法正常连接后端服务器
2、这样改来改去,太麻烦了,很有可能在修改之后,因为没有及时改回去,导致线下测试操作了线上数据,引发生产问题
3、小程序审核时,应该确定的是小程序上线之后的情况是怎么样的,返回develop显然无法确认审核看到的东西与线上看到的东西一致
4、都2022年了,上个线还要这样手动修改代码逻辑,提审完后又要改回来,真有点麻烦
建议
1、小程序审核版本运行时,调用wx.getAccountInfoSync()应返回release,确保小程序审核版本与与上线后的运行结果一致
2、微信小程序吃掉相关逻辑,让开发者通过配置的方式来选择各环境调用的后端域名
陈年老问题,很多人反馈了,麻烦官方解决一下吧
https://developers.weixin.qq.com/community/develop/doc/000e28a6ee8e08ca010b46cc35bc00
https://developers.weixin.qq.com/community/develop/doc/00088ada61c090c2b8cb5aca653400
https://developers.weixin.qq.com/community/develop/doc/00082e0ef44d3842982c3808a56c00
https://developers.weixin.qq.com/community/develop/doc/000c688e4b4cf864ff7d0be845b000
https://developers.weixin.qq.com/community/develop/doc/00080e7ea38400e6a15cc713453400
https://developers.weixin.qq.com/community/develop/doc/00028e82ba87b054a9ba30c3f5fc00
https://developers.weixin.qq.com/community/develop/doc/0006463d38c6c0b426cbcc2b05b000
问题已修复,麻烦重试验证看看
快到2024年了,解决了吗?
你们制作团队是不是水平有问题??自己提供的API,结果审核的时候你们自己去审核测试环境的数据,说违反存在以demo形式提交非正式功能行为,违反 《微信小程序平台运营规范常见拒绝情形3.3》,还有时候通过,有时候不能通过,是审核组的人是学生不会操作?还是开发组的人连切换环境的功能都没??如果不是国内用户都用微信,谁喜欢去开发你这小程序,陈年问题修都不修一下
// 服务器上的版本配置文件:verConfig.json { "testVer": "v0.1", "reviewVer": "v0.2" }
// 服务器上的资源目录结构 |- wechat |- wechat_test |- wechat_shenhe |- verConfig.json |- .............
// 注:http://192.168.0.79:1470/是我本地启动的web服务,非可用的正式服务器ip及端口 var RootUrl = "http://192.168.0.79:1470/"; /**尝试请求版本更换配置并更改根目录 */ var requestVerConfig = function(config) { let hr = new Laya.HttpRequest(); hr.once(Laya.Event.COMPLETE, this, function () { window.testVer = hr.data.testVer; window.reviewVer = hr.data.reviewVer; changeResVersion(); }); hr.once(Laya.Event.ERROR, this, function (e) { console.error("get verConfig.json Error!"); }); let url = RootUrl + "verConfig.json"; // 设置请求头的Cache-Control,避免缓存 hr.send(url, null, "get", "json", ["Cache-Control", "no-cache"]); } /**切换版本资源目录 */ var changeResVersion = function() { let resourceFolder = "wechat"; let testVer = window.testVer, gameVer = window.gameVer; // 是否是开发测试用的版本 let isTest = testVer != null && gameVer == testVer; if(isTest) resourceFolder = "wechat_test"; else { let reviewVer = window.reviewVer; // 是否是审核用的版本 let isShenHe = reviewVer != null && gameVer == reviewVer; if(isShenHe) resourceFolder = "wechat_shenhe"; } Laya.URL.rootPath = Laya.URL.basePath = RootUrl + resourceFolder + "/"; } window.gameVer = "v0.1"; // 代码包中内置版本号 requestVerConfig(config);
麻烦之处在于:verConfig.json中的配置需要根据版本定位(即开发测试版本、审核版本、正式版本)自己手动更改,以确保该版本的正确性。我是通过python的paramiko库的接口将服务器上verConfig.json文件下载到本地,然后读取本地verConfig.json文件并修改;修改完成后,再将保存到本地的verConfig.json回传到服务器上。
马上2025了,还没解决。以前卡我审核反馈一下还给我过,今天拒绝了我2次,你们不改也行,能不能给审核人员培训一下啊?还是说你们审核有卡审api,一定要恶心开发几次?
2023年了这问题还改吗
同样被恶心到 有时过 有时不过。
2025年了,今天审核被打回,发现的这个帖子。。。
2025年了 依旧还是老样子,你们到底要怎样,这个api的作用是什么?
快2025年了,解决了吗