在申请token时并不是每发送一次消息就要申请一次token,因为token是有次数限制的,规则就是下面

主动调用的频率限制

当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息。

为了防止企业应用的程序错误而引发企业号服务器负载异常,默认情况下,每个企业号调用接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。

以下是当前默认的频率限制,企业号后台可能会根据运营情况调整此阈值:

  • 基础频率

每企业调用单个cgi/api不可超过1000次/分,30000次/小时

每ip调用单个cgi/api不可超过2000次/分,60000次/小时

第三方应用提供商由于需要同时服务于多个企业,ip频率限制如下:每ip调用单个cgi/api不可超过20000次/分,600000次/小时

  • 发消息频率

每企业不可超过帐号上限数*30人次/天

  • 创建帐号频率

每企业创建帐号数不可超过帐号上限数*3/月

  • 创建应用频率

每企业最大应用数限制为30个,创建应用次数不可超过30*3/月

---------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------

那么我们处理token的时候,就可以使用static进行处理,定义两个变量

<pre name="code" class="java">   //主动调用:发送消息获得tokenpublic static String access_token;//主动调用:请求token的时间public static Date access_token_date;

在每次请求token的时候:

1、判断jsapi_ticket是否存在,不存在的话直接申请;

2、判断时间是否过期,过期(>=7000秒)则重新申请token,否则不用请求直接返回之前的token。

这样可以避免请求token频繁导致的系统不能使用的问题

 /*** 从微信获得access_token* @return*/public  String getTokenFromWx(){//微信企业号标识String corpid=RESP_MESSAGE_CORPID;//管理组凭证密钥String corpsecret=RESP_MESSAGE_SECRET;//获取的标识String token="";//1、判断access_token是否存在,不存在的话直接申请//2、判断时间是否过期,过期(>=7200秒)申请,否则不用请求直接返回以后的tokenif(null==access_token||"".equals(access_token)||(new Date().getTime()-access_token_date.getTime())>=(7000*1000)){CloseableHttpClient httpclient = HttpClients.createDefault();try {//利用get形式获得tokenHttpGet httpget = new HttpGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret);// Create a custom response handlerResponseHandler<JSONObject> responseHandler = new ResponseHandler<JSONObject>() {public JSONObject handleResponse(final HttpResponse response) throws ClientProtocolException, IOException {int status = response.getStatusLine().getStatusCode();if (status >= 200 && status < 300) {HttpEntity entity = response.getEntity();if(null!=entity){String result= EntityUtils.toString(entity);//根据字符串生成JSON对象JSONObject resultObj = JSONObject.fromObject(result);return resultObj;}else{return null;}} else {throw new ClientProtocolException("Unexpected response status: " + status);}}};//返回的json对象JSONObject responseBody = httpclient.execute(httpget, responseHandler);if(null!=responseBody){token= (String) responseBody.get("access_token");//返回token}httpclient.close();//设置全局变量access_token=token;access_token_date=new Date();}catch (Exception e) {e.printStackTrace();} }else{token=access_token;}return token;}

微信企业号开发二:TOKEN缓存处理相关推荐

  1. 微信企业号开发[二]——获取用户信息

    注:文中绿色部分为摘自微信官方文档 在<微信企业号开发[一]--创建应用>介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我 ...

  2. python企业微信回调_Python+Flask 微信企业号开发二之开启回调模式

    一.  概述 上文主要是关于微信主动发送消息给用户, 这篇文章主要是用来描述如何开启微信企业号的回调模式 二 . 操作 1. 登陆微信企业号应用中心--我的应用--模式选择--回调模式 2. 代码 # ...

  3. 微信企业号开发:微信考勤百度地图定位,错误修正二

    在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...

  4. 微信企业号开发之 企业号人员身份认证与开发

    前言 这里完全可以链接一个登录页面,让用户输入用户名密码进行登录的...2333 但是,这样所就完全失去了微信企业号的意义,本来进入微信企业号的时候,就已经对人员身份进行认证了,你这里再让别人登录,不 ...

  5. 新书《微信企业号开发揭秘》已出版,全书采用WeChatEnterprise框架开发

            新书<微信企业号开发揭秘>已出版,全书基于源码与API逐步讲解,采用WeChatEnterprise框架开发 纸质书购买地址:  天猫    京东    当当    亚马逊 ...

  6. 微信企业号开发:启用回调模式

    微信企业号开发怎样启用回调模式?就是简单的登陆PC版微信,点击应用中心,选择须要应用,再点击回调模式启用? 似乎不是这么简单.! 能够看到核心的仅仅有三个URL.Token,EncodingAESKe ...

  7. Jeewx-Enterprise_1.1版本发布,开源微信企业号开发平台

    JEEWX企业号简介 JEEWX微信企业号开发平台是一款开源.免费.高效.敏捷的微信企业号开发平台,采用JAVA语言基于Jeecg快速开发框架实现,实现了微信企业号管理平台的基础功能,便于用户二次开发 ...

  8. 微信企业号开发(2)--建立连接(主动)

    [本文所描述的内容具有一定的时效性,请以实际开发所处环境为准] 在微信企业号开发(1)--基础入门中,我们已经学习了,我们的程序结构应该如何设计.接下来,我们会按照微信企业号开发者接口文档的顺序,逐一 ...

  9. 微信企业号开发01 - 获取corpid 和 corpsecret

    刚开始接触微信企业号开发的小伙伴难免会遇到一个问题,就是我们从哪里去找企业号的corpid和corpsecret,其实很简单,corpid可以从企业号主页->设置->基本信息 中可以看到, ...

最新文章

  1. K项目轶事之被客户通报批评
  2. 2016抢票软件分享
  3. 第四周项目五-用递归方法求解(输出Fibnacci序列的第20个数)
  4. 【清华集训2016】数据交互
  5. Spring MVC使用拦截器实现权限控制
  6. 计算机网络总结:第三章 运输层
  7. 通过JDBC连接取得数据库相关的元数据
  8. linux内核c1bcbc40,【资料共享】给学习linux内核的大餐
  9. Verilog语言实现并行(循环冗余码)CRC校验
  10. 服务器型号惠普RX3600,384854-B21 389344-001 146G SAS 15K 3.5寸HP服务器硬盘批发
  11. DaDa英语宣布12月31日起全面停止所有外教服务
  12. NiosII软处理器快速入门- 10分钟学会NiosII(1)
  13. Mac系统如何安装php,MAC系统如何快速安装php
  14. SQL常用语句一览(增删改查Easy)
  15. python兼职程序员工资-没想到,学会Python即使不做程序员都能月入过万!
  16. linux之atoi,atol,atoll,atof
  17. 究竟什么是token??
  18. 在IT呆了好久了,给大家科普下这个行业的行话
  19. c语言字母大小写转换程序
  20. GIS开源软件大全(备用)

热门文章

  1. Linux硬盘镜像获取与还原(dd、AccessData FTK Imager)
  2. RoCE与RDMA技术
  3. DeferShading + VSM + HDR + SSAO
  4. 教你如何在高铁动车高峰期购票
  5. 犀牛插件开发-显示MFC对话框-Rhino插件
  6. XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
  7. spi总线 上层调用_spi总线的mmc卡驱动调试总结 | 学步园
  8. 如果5秒后地球没有水了,你会怎么样?丨钛空舱
  9. 各种中文乱码解决大全
  10. 关于TL431和光耦PC817反馈控制部分电阻取值计算