企业微信服务号,安装应用提示 该应用已下线 解决方案
最近学习微信服务商开发应用,在调试接口阶段都很顺利,但是到了生成安装授权地址的时候出现了问题,在浏览打开地址的时候,提示"该应用已下线",截图如下

这个问题找官方技术客服两天,最后才能解决。一下说说出现该问题的集中情况.
1、安装地址需要从 服务商网站发起授权请求

2、跳转安装的请求头设置referer,referer的域名需和应用配置的域名一致,如图

3、预授权码的使用,在生成授权地址前,需要调用 “设置授权配置” 接口,然后生成安装地址。在此处有一个致命的细节,调用 "设置授权配置"接口要求传入一个预授权码,安装地址上面也会有一个预授权码,此处要求两个接口的预授权码一致。才不会出现"该应用已下线"的情况。

ps:我的问题就出现在第三点,在"设置授权配置"的时候生成了一个预授权码,然后生成安装地址的时候,又重新获取了一个预授权码,两个授权码不一样,导致问题的出现。以下贴出错误的代码和更正后的代码.
错误代码:
下面展示一些 错误代码

/*** @Description: 获取授权地址* @Author: zl * @Date: 2020/12/16 0016 */ @GetMapping("getAuthUrl")public Object getAuthUrl(){//先调用 授权配置接口SWeixin.setSessionInfo();//在调用  生成安装地址return Rets.success(SWeixin.getAuthUrl());}// SWeixin.setSessionInfo();
/*** @Description: 设置授权配置* @Author: zl* @Date: 2020/12/15 0015*/public static void setSessionInfo(){Map<String,Object> map = new HashMap<>();map.put("suiteAccessToken",getSuiteToken());JSONObject body = new JSONObject();body.put("pre_auth_code",preAuthCode()); //此处获取了  预授权码加粗样式JSONObject sessionJson = new JSONObject();sessionJson.put("appid",new JSONArray());sessionJson.put("auth_type",1);body.put("session_info",sessionJson);JSONObject resultJson = post(SystemUtils.replacePlaceholder(SConstants.SET_SESSION_INFO,map),body.toJSONString());log.info("授权结果:{}",resultJson);}/*** @Description: 授权页地址* @Author: zl * @Date: 2020/12/15 0015* 此处,授权配置  和  授权地址  使用的预授权码必须一致,否则安装应用会提示 应用已下线*/ public static String getAuthUrl(){String preAuthCode = getPreAuthCode(); //此处也获取了一次  预授权码Map<String,Object> map = new HashMap<>();map.put("suiteId",appConfiguration.getSuiteId());map.put("preAuthCode",preAuthCode);String url = null;try {url = URLEncoder.encode(appConfiguration.getRedirectUri(),"UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}map.put("redirectUri",url);map.put("state", RandomUtil.randomString(8));return SystemUtils.replacePlaceholder(SConstants.TEMP_INSTALL,map);}

下面展示一些 修改后的代码

/*** @Description: 授权页地址* @Author: zl * @Date: 2020/12/15 0015* 此处,授权配置  和  授权地址  使用的预授权码必须一致,否则安装应用会提示 应用已下线*/ public static String getAuthUrl(){//此处获取一次  预授权码,然后将该授权码传给  授权配置接口  ,两者就预授权码就一样了String preAuthCode = getPreAuthCode();//授权配置setSessionInfo(preAuthCode);Map<String,Object> map = new HashMap<>();map.put("suiteId",appConfiguration.getSuiteId());map.put("preAuthCode",preAuthCode);String url = null;try {url = URLEncoder.encode(appConfiguration.getRedirectUri(),"UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}map.put("redirectUri",url);map.put("state", RandomUtil.randomString(8));return SystemUtils.replacePlaceholder(SConstants.TEMP_INSTALL,map);}

该文章仅作为参考,若有不对之处,请指出。

企业微信服务号,安装应用提示 该应用已下线 已解决相关推荐

  1. 微信公众号注册时提示该主体注册数量已超过上限怎么办?

    很多用户在注册或认证微信公众号时,遇到"该主体注册数量已超过上限"的问题,这是怎么回事呢? 原因是2018年11月16日微信官方对公众号注册数量做了调整: 1.个人主体注册公众号数 ...

  2. 微信服务号的六大价值有哪些

    微信服务号的六大价值 1. 增加收入.节约成本 顾客通过广告媒体.企业宣传品及他人介绍等各种渠道成为企业微信服务号的粉丝,从而获得企业的信息.这样,顾客就会对企业产品或服务产生一种抽象的心理预期,如果 ...

  3. 微信服务号的6大价值有哪些?

    微信服务号的6大价值有哪些? 1.增加收入.节约成本 顾客通过广告媒体.企业宣传品及他人介绍等各种渠道成为企业微信服务号的粉丝,从而获得企业的信息.这样,顾客就会对企业产品或服务产生一种抽象的心理预期 ...

  4. 微信公众号自动回复一直提示服务出现故障,原来官方文档很坑人!

    微信公众号自动回复 一直提示 服务出现故障,各种参数都没错,而且居然都是直接从微信官方文档复制代码过来也不行!后来才发现,原来官方的代码是个坑! 如图所示,官方的代码多了很多的空格,在网上查了,许多新 ...

  5. CRMEB微信公众号安装说明

    CRMEB v2.6开源地址:http://link.crmeb.net/u/lingting 完整帮助文档:http://help.crmeb.net CRMEB微信公众号安装说明,帮助文档 1.首 ...

  6. 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送

    使用公众号平台模板消息功能,无法发送模板消息,如果想要发送模板消息,可以用第三方平台微号帮功能模板消息群发实现,也可自己根据公众号平台的接口开发实现,均可以为微信服务号发送模板消息,且发送模板消息不占 ...

  7. 全面解读:微信服务号升级和群发增至4条的应用方法

    全面解读:微信服务号升级和群发增至4条的应用方法 摘要:微信公众平台正式公布微信服务号升级的消息,提供高级群发接口,火速华磊初步总结:群发接口的提供意味着企业获得了精准推送的能力.企业获得了每月多次激 ...

  8. cron每月1号_微信服务号按粉丝标签分组群发消息怎样实现?

    使用公众平台群发功能可以实现按粉丝标签分组群发消息,订阅号每天群发1次消息.服务号每月群发4次消息,如果想要实现更多功能效果,可以直接用微号帮平台的服务号每月400次群发功能实现效果,或者自己根据公众 ...

  9. 微信服务号对接流程记录

    项目背景 以web为主,以微信服务号为媒介,进行用户绑定.并通过菜单进入相应页面进行操作 技术栈 React进行微信对接,页面展示 Java负责数据获取 开始 RTFM,不过看微信的文档确实头疼,感觉 ...

最新文章

  1. ES6 module 简单整理
  2. 量子计算机 漫画,漫画 | 10分钟看懂量子比特、量子计算和量子算法
  3. 北京智能计算产业研究院成立
  4. 深入浅出 JQuery (一) 浅析JQuery
  5. ECC椭圆曲线算法(3)加密解密过程
  6. ShowAllPic--图片
  7. 内存:你跑慢点行不行?CPU:跑慢点你养我吗?内存:我不管!
  8. 本地虚拟机上的docker安装mysql_Linux虚拟机上安装docker,并使用docker安装mysql,tomcat...
  9. Java从入门到精通——数据库篇Mongo DB GridFS文件系统
  10. linux 网络io命令详解,Linux下五种网络IO模型详解
  11. vue 项目中使用粘性布局不起作用_做vue项目中遇到的坑总结与学习
  12. [蓝桥杯][2018年第九届真题]约瑟夫环
  13. 《唐人街探案3》刷新国产片单周票房纪录 票房超22亿
  14. 【干货】数字化转型工作手册.pdf(附下载链接)
  15. XDeepFM 模型,字节跳动短视频内容理解和推荐系统
  16. CF991A If at first you don't succeed...
  17. 简单使用MATLAB自带的遗传算法工具箱
  18. 三相差分编码器转成脉冲信号或集电极开路转换模块
  19. 推荐的去广告最佳的浏览器和插件
  20. 上传声音 微信小程序_微信小程序录音文件保存,播放

热门文章

  1. [7]Training Neural Network(2)—训练神经网络
  2. 面试碰壁,作为一个30岁的前端程序员,感到未来迷茫
  3. 《众病之王:癌症传》——读后感
  4. Reactor 3 (10): 数据合并concat、merge
  5. JavaScript 函数 arguments
  6. 8259a的相关知识
  7. 正则表达式-贪婪与非贪婪详解
  8. bitlocker解密(不知道密钥)
  9. 使用Lim测试平台快速完成批量造数
  10. 收藏一篇期文(来自投机岛)