收藏
回答

【陈年BUG】能否解决小程序审核版调用wx.getAccountInfoSync()获取env的问题

审核类型 框架类型 问题类型 提审时间 AppID
代码审核 小程序 Bug 2022-04-06 wx6db14b7a6780be31

为了持续集成自动化,很多人在都用了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

https://developers.weixin.qq.com/community/develop/doc/000888450b40e8f0256c622e751400?highLine=wx.getAccountInfoSync


最后一次编辑于  2022-10-19
回答关注问题邀请回答
收藏

26 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-02-10

    问题已修复,麻烦重试验证看看

    2023-02-10
    有用
    回复 25
    •  
       
      2023-02-14
      请问修复了什么呢 目前审核是什么版本呢
      2023-02-14
      回复
    • 阿磊
      阿磊
      2023-02-27
      没改,今天审核一看没通过,服务器上请求的日志也没有,肯定返回develop
      2023-02-27
      回复
    • 松松
      松松
      2023-04-26
      确定是release吗?
      2023-04-26
      回复
    • Const
      Const
      2023-08-28
      2023年8月28日,此问题依旧存在,真恶心呀
      2023-08-28
      回复
    • zoelaae
      zoelaae
      2023-08-29回复Const
      避坑了,官方竟然还回复已修复
      2023-08-29
      回复
    查看更多(20)
  • 时空旅者
    时空旅者
    2023-12-15

    快到2024年了,解决了吗?

    2023-12-15
    有用 6
    回复 1
    • 追求@
      追求@
      2024-08-07
      现在也没有
      2024-08-07
      回复
  • 手机不要放外套口袋!!!
    手机不要放外套口袋!!!
    2024-04-23

    你们制作团队是不是水平有问题??自己提供的API,结果审核的时候你们自己去审核测试环境的数据,说违反存在以demo形式提交非正式功能行为,违反 《微信小程序平台运营规范常见拒绝情形3.3》,还有时候通过,有时候不能通过,是审核组的人是学生不会操作?还是开发组的人连切换环境的功能都没??如果不是国内用户都用微信,谁喜欢去开发你这小程序,陈年问题修都不修一下

    2024-04-23
    有用 2
    回复
  • ㅤ
    01-23
    // 服务器上的版本配置文件: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, thisfunction () {
                   window.testVer = hr.data.testVer;
                   window.reviewVer = hr.data.reviewVer;
                   changeResVersion();
           });
           hr.once(Laya.Event.ERROR, thisfunction (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回传到服务器上。

    01-23
    有用 1
    回复
  • 包包
    包包
    2024-12-16

    马上2025了,还没解决。以前卡我审核反馈一下还给我过,今天拒绝了我2次,你们不改也行,能不能给审核人员培训一下啊?还是说你们审核有卡审api,一定要恶心开发几次?

    2024-12-16
    有用 1
    回复
  • ๛
    2023-01-05

    2023年了这问题还改吗

    2023-01-05
    有用 1
    回复
  • vANADIC
    vANADIC
    2022-08-28

    同样被恶心到 有时过 有时不过。

    2022-08-28
    有用 1
    回复
  • Daotin
    Daotin
    01-20

    2025年了,今天审核被打回,发现的这个帖子。。。

    01-20
    有用
    回复
  • DW
    DW
    2024-12-24

    2025年了 依旧还是老样子,你们到底要怎样,这个api的作用是什么?

    2024-12-24
    有用
    回复
  • .
    .
    2024-12-10

    快2025年了,解决了吗

    2024-12-10
    有用
    回复

正在加载...

登录 后发表内容