调用接口很简单,写2个方法,先写一个POST,一个GET,

配置文件里配置好

每次需要用token或者是jsapi_ticket的时候,先去数据库查找有效的token

如果有则返回需要的token或者jsapi_ticket或者txlaccesstoken,

找不到,则清除表,重新调用微信接口,保存至数据库并返回,

相关代码如下。

/***
     * 获取acess_token
     * @return
     */

public static String getAccessToken(String appid,String appSecret) {

String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+appid+"&corpsecret="+appSecret;
        
        String backData = WebCharUtil.sendGet(url, "utf-8", 10000);
        String accessToken = JSON.parseObject(backData).getString("access_token") ;

return accessToken;

}

/***
     * 
     * 获取jsapiTicket
     * @return
     * 
     */

public static String getJSApiTicket(String acessToken) {

String urlStr = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token="+acessToken;

String backData = WebCharUtil.sendGet(urlStr, "utf-8", 10000);
        String ticket = JSON.parseObject(backData).getString("ticket");

return ticket;

}

/**
     * 获取微信token,先从本地数据库判断是否有未失效的,
     * 有 则从本地读取出来,
     * 没有 则从微信端获取来,在更新到数据库并缓存
     * (最好是放缓存,此处还未加缓存)
     * @return
     */
    @Override
    public String getWebChatCache(JSONObject jsonObject1) {
        JSONObject jsonObject = webChatCacheDao.getWebChatCache(jsonObject1);
        System.out.println(jsonObject);
        
        if(jsonObject==null) {   //失效或者不存在,调用微信接口获取并保存数据库
            String accessToken =WebCharUtil.getAccessToken(this.cortid, this.secret);
            String txlAccessToken =WebCharUtil.getAccessToken(this.cortid, this.txlsecret);
            String jspApiTicket = WebCharUtil.getJSApiTicket(accessToken);
            webChatCacheDao.deleteWebChatCache(null);//清掉之前的数据
            JSONObject insertObject = new JSONObject();
            //微信的token和JSapiticket默认失效2小时
            insertObject.put("expireTime", this.getBeforeByHourTime(2));
            insertObject.put("key", WebChatCommon.ACCESSTOKEN);
            insertObject.put("value", accessToken);
            webChatCacheDao.insertWebChatCache(insertObject);
            insertObject.put("key", WebChatCommon.JSAPITICKET);
            insertObject.put("value", jspApiTicket);
            webChatCacheDao.insertWebChatCache(insertObject);
            insertObject.put("key", WebChatCommon.TXLJSAPITICKET);
            insertObject.put("value", txlAccessToken);
            webChatCacheDao.insertWebChatCache(insertObject);
            if(WebChatCommon.ACCESSTOKEN.equals(jsonObject1.getString("key"))){
                return accessToken;
            }else if(WebChatCommon.JSAPITICKET.equals(jsonObject1.getString("key"))){
                return jspApiTicket;
            }else {
                return txlAccessToken;
            }
            
        }else {                    //有则直接从数据库返回
            return jsonObject.getString("value");
        }
    }

前后端分离(VUE+SPRINGBOOT)十五 微信移动端 企业微信的开发token和jsapi_ticket的存取相关推荐

  1. 学生选课系统 前后端分离 vue springboot

    学生选课系统 前后端分离 vue springboot 系统描述 一.系统功能 二.系统截图 1.网络爬虫 新闻获取代码 2.pom 源码 系统描述 基于spring boot vue的学生选课系统 ...

  2. 记录一种ssh旧系统和前后端分离新系统结合的解决方案,以及两系统间通过token进行认证的方式

    一.背景介绍 公司现有一个ssh框架的旧系统,想要转型使用前后端分离vue+springboot的新框架.由于一些原因,无法完全转型,所以考虑新增的业务需求,使用在旧系统中嵌套新系统页面的方式,之后新 ...

  3. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  4. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十四(Spring Data Elasticsearch,将数据添加到索引库) 一.创建El ...

  5. 前后端分离的探索(五)

    文桥,13级机械工程系,机械电子工程专业,大四学生.在LSGO软件技术团队负责前端部分,本图文是介绍目前流行的前后端分离技术的第五篇(一共六篇),希望大家能够对这块有所了解.

  6. Java实现图片上传功能(前后端:vue+springBoot)

    Java实现图片上传功能(前后端:vue+springBoot) 前言: 前端: 组件引入 基础文件上传 自定义上传方法 后端: 需要引入的jar包: 基础文件上传 Controller层: serv ...

  7. 单realm模式下前后端分离实现springboot+shiro+jwt+vue整合

    shiro+jwt实现前后端分离 一.RBAC概念 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在R ...

  8. Nginx实现前后端分离(springboot+vue)+双机互备

    背景介绍 项目采用springboot+vue开发,之 前项目布署时,都是采用pom中配置,把vue打包的dist文件copy到springboot项目中resource/static下做的,这样每次 ...

  9. Vue iView Admin 动态路由菜单加载 前后端分离(springboot 2.x iview admin vue 前后端分离 模型设计器 动态数据权限...

    宣传官网 xb.exrick.cn 在线Demo xboot.exrick.cn 开源版Github地址 github.com/Exrick/x-bo- 开发文档 www.kancloud.cn/ex ...

  10. 前后端分离:SpringBoot治好了我的时间内耗

    1.前后端分离为了什么 1.1前言 ​ 本文作为系列文章的第一篇,是铁柱在工作之余对自我学习的总结,以下内容是搭建基础的前后端分离的Demo来展开的,需要对MySQL,Spring,SpringMVC ...

最新文章

  1. lintcode:打劫房屋 III
  2. shell下输出字体颜色
  3. 如何将四个一字节的数转换为一个四字节数
  4. coreelec ssh访问被拒绝_GitLab官网在线仓库SSH连接故障排查和经验总结实例
  5. H5页面随机数字键盘支付页面
  6. 仿抖音视频自动播放html,vue 仿抖音视频播放切换
  7. 关于百万用户服务器架构能力(一)QQ游戏服务器架构
  8. 怎么用Linux命令查看BIOS信息,LINUX下怎样获取主板的信息用到什么命令
  9. 转载:HTML5及移动端BUG
  10. jQuery学习笔记03
  11. 2019 related conferences 相关会议 ISMAR, VRST, UIST
  12. matlab实现文本内容批量替换
  13. 14 、软件测试-MySQL的基本使用方法-增删改查
  14. 吉他效果器插件-IK Multimedia AmpliTube 5 MAX 5.0.3 macOS
  15. CSS精灵优化Retina显示屏下的网站图像
  16. hdu 4747(区间更新)
  17. cmd中的arp指令
  18. 【仅供娱乐】计算机算命之Python通天六十四卦
  19. UML 协作图(通信图) collaboration diagram
  20. 疯子坐飞机,第1个人疯了,随便坐下,第n个人能够坐在自己位置上的概率

热门文章

  1. Android第三方登录签名错误,关于应用签名修改后第三方微信登陆不了的问题
  2. github release 文件下载贼慢,干脆失败的解决方法
  3. CAN总线隔离中继器、CAN网桥的CAN滤波设置
  4. 飞书开放平台-查询已读消息示例
  5. “保姆级”车载CAN总线教程(一)-堪称全网“最细”系列
  6. 什么是高新技术企业?高新认定领域有哪些?
  7. 《论文写作》课程总结
  8. atmega16应用之DS18B20温度传感器
  9. 前端进阶--jQuery
  10. python应用之复习计划生成器