微信企业号开发常用工具类总结(一)
微信企业号开发常用工具类总结之与微信企业号的配置和连接
在使用前需要先在微信企业号中找到正确的corpid,corpsecret
方法:在设置下面的权限管理->新建一个普通管理分组,设置好应用权限和通讯录权限,
在应用中心中选择一个消息型应用设置好已经备案成功的域名,设置后才能正常使用微信提供的jsjdk相关功能.
至少选择一个消息型应用,将模式设置为回调模式,在回调模式中需要配置好相应的URL和token和ecodeng, token和ecodeng,必须要和代码中保持一致才能正常配置好服务器,在回调接口中我们只要成功返回微信需要的echostr,该参数是微信请求所带,我们只需要将其获取到在返回给微信即可,不需要进行各种加密解密操作,当初在这里摸索时可没少花时间.
只要在微信企业号中看见就可以开始通过微信后台向指定成员发送各种类型的微信消息了.
其中回调接口有很多功能,微信后台会返回很多信息,比如客户通过企业号发送的消息,
在企业微信中需要从我的企业->企业信息->获取CorpID,;通过权限管理->新建的管理组中获取Secret (如果不行就需要从企业应用中获取Secret ).
/**
* 获取微信调用接口凭证
* @param com_id
*
* @return 调用接口凭证
*/
public String getAccessToken(String com_id) {
//access_token有访问限制和session时长,可通过定时器定时清理后从微信后台获取然后存入到服务器,每次使用前即可自动取出,
String access_token=getWeixinParam("access_token");
if (StringUtils.isNotBlank(access_token)) {
return access_token;
}
String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="
+ corpid+ "&corpsecret=" + corpsecret;
String result = getData(url); //请求后微信后台会返回一个json格式字符串,
if (StringUtils.isNotBlank(result)) {
JSONObject json = JSONObject.fromObject(result);
try {
result = json.getString("access_token");
BaseController.saveFile(getWeixinParamFile(com_id,"access_token"), result);
access_token = result;
} catch (Exception e) {
if ("invalid corpid".equals(json.getString("errmsg"))) {
result = "CorpID号错误!";
} else {
result = "Secret错误";
}
}
} else {
result = "连接微信访问出错!";
}
return result;
}
/**
* 以get方式获取数据
* @param url
* @return 获取的数据
*/
public String getData(String url) {
String result = "";
try {
SSLContext sc = SSLContext.getInstance("TLSv1");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },
new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console
.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setDoOutput(true);
conn.setRequestMethod("GET");
// conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
// conn.setRequestProperty("Content-Type", "UTF-8");
conn.setDoInput(true); // 设置输入流采用字节流
conn.setUseCaches(false); // 设置缓存
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.setRequestProperty("Charset", "utf-8");
conn.connect();
BufferedReader readin = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
String CurLine;
StringBuffer resultb = new StringBuffer();
while ((CurLine = readin.readLine()) != null) {
resultb.append(CurLine);
}
readin.close();
conn.disconnect();
LoggerUtils.info(resultb.toString());
result = resultb.toString();
} catch (Exception e) {
e.printStackTrace();
result = e.getMessage();
}
return result;
}
微信企业号开发常用工具类总结(一)相关推荐
- java escape工具类_java开发常用工具类
在Java中,,工具类定义了一组公共方法.你把你的类继承这些类或者实现这些接口,就可以使用这些类的方法了.下面给大家介绍一下十六种最常用的java开发常用工具类. 一. org.apache.comm ...
- Android开发常用工具类集合
转载自:https://blog.csdn.net/xiaoyi_tdcq/article/details/52902844 Android开发常用工具类集合 android开发中为了避免重复造轮子, ...
- Android开发常用工具类
来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...
- java inputtools_Java后台开发常用工具类
本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...
- android开发常用工具类、高仿客户端、附近厕所、验证码助手、相机图片处理等源码...
Android精选源码 android开发过程经常要用的工具类源码 Android类似QQ空间个人主页下拉头部放大的布局效果 Android高仿煎蛋客户端,Android完整项目 android帮你找 ...
- android开发常用工具类、高仿客户端、附近厕所、验证码助手、相机图片处理等源码
Android精选源码 android开发过程经常要用的工具类源码 Android类似QQ空间个人主页下拉头部放大的布局效果 Android高仿煎蛋客户端,Android完整项目 android帮你找 ...
- (转)Android开发常用工具类
原地址:http://blog.csdn.net/axi295309066/article/details/52884973 不管是前端,后端,还是我们的Android开发,实际工作中都会用到很多的工 ...
- android 快速开发常用工具类,实例详解Android快速开发工具类总结
一.日志工具类 Log.java public class L { private L() { /* 不可被实例化 */ throw new UnsupportedOperationException ...
- Android项目开发常用工具类GlideEngine
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl GlideEngine概述 GlideEngine用于利用Glide加载图片. GlideEn ...
- android文件管理工具类,GitHub - RyanYans/Android-Utils: 安卓开发 常用 工具类 汇总
天下文章一大抄,因为从开始学习到现在大约一年多 积攒的工具类.很多都是别人的. 但是也不知道是谁的了 如果涉及什么的问题.请联系我.我会做出相应修改: PS:不懂怎么用的,都可以看demo 一些都是已 ...
最新文章
- 删除数据 DataIntegrityViolationException: not-null property references a null or transient value解决...
- 畅通工程 HDU - 1233
- 卷积层 convolutional networks
- 雅虎欲出售核心业务 忠诚用户何去何从
- java optional_JAVA Optional总结
- sql查询禁用缓存_如何在SQL Server 2017中启用和禁用身份缓存
- 微信小程序中的闭包写法
- Altium Designer放置数码管字体
- 计算机系统 基础知识点汇总,超全!!!
- SIP协议及与Freeswitch的关系
- MySQL学习笔记第8课(共10课)
- 暨南大学人文社科a类期刊_暨南大学A类期刊目录.pdf
- VBV大小-H.264
- easyphp 12 mysql 启动_easyphp使用教程
- 2020移动apn接入点哪个快_为什么别人的4g网总比你快?手机这个设置没开启,难怪网络...
- 拓嘉启远:关于拼多多搜索溢价,你了解多少
- AWS白皮书 中文版(中英对照版) - 001 概述
- 数据恢复软件:FonePaw Data Recovery for mac中文版
- Blender PS Zbrush 人物眼球制作1 - 贴图制作、雕刻、渲染
- 领英利用深度表征学习提升人才搜索和推荐系统