Java微信公众平台接口封装源码分享
前言:
鸣谢:感谢以下两位大神的指点http://blog.csdn.net/lyq8479 以及 http://www.cnblogs.com/txw1958
特别鸣谢:我傻傻的女朋友,这一年没她的支持不管是生活上还是心理上估计我的路会走的更加吃力,欠她的时间太多情太多,只能用“有朝一日”来还吧!!!!!
前期准备:

统统走一遍:





1.创建二维码接口 CreateQRCode
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
// 创建临时二维码
// gQHN7zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0pFTUxKVDdsS1Q1UWFOeGtvbTJ3AAIEIn4ZUwMECAcAAA==
WeixinQRCode Temporaryqrcode=createTemporaryQRCode(accessToken, 1800, 1);
System.err.println(Temporaryqrcode.getTicket());
// 创建永久二维码
// gQGx8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL1JrTlIyajNsZ2o3NzlyNXFfRzJ3AAIEGKUZUwMEPAAAAA==
String Permanentqrcode=createPermanentQRCode(accessToken, 2);
System.err.println(Permanentqrcode);
}
2.获取二维码工具 GetQRCode
public static void main(String[] args) {
String ticket="gQGx8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL1JrTlIyajNsZ2o3NzlyNXFfRzJ3AAIEGKUZUwMEPAAAAA==";
String savePath="D:/db";
// 根据ticket换取二维码
getQRCode(ticket, savePath);
}
3.获取用户基本个人信息方法 GetPersoninf
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
// 获取用户基本信息
PersonalInf personalInf=getPersonalInf(accessToken, "openId");
System.out.println(personalInf.getOpenid());
// 查询用户所在分组
int groupid=getPersonGroupId(accessToken, "openId");
System.err.println("组id是:"+groupid);
}
4.获取关注者列表 GetUserList
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
WeixinUserList weixinUserList=getUserList(accessToken, "");
System.err.println("total:"+weixinUserList.getTotal());
System.err.println("count:"+weixinUserList.getCount());
System.err.println("openid:"+weixinUserList.getOpenIdList());
System.err.println("next_openid:"+weixinUserList.getNextOpenId());
}
5.用户组操作工具 GroupUtil
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
// 获取分组列表
List<WeixinGroup> groupList=getGroups(accessToken);
// 循环输出各分组信息
for(WeixinGroup group:groupList){
System.err.println(String.format("ID: %d 名称: %s 用户数: %d", group.getId(),
group.getName(),group.getCount()));
}
// 创建分组
WeixinGroup group=createGroup(accessToken, "学生");
System.err.println(String.format("创建学生组成功: %s id: %d", group.getName(),group.getId()));
// 修改分组
boolean result=updateGroup(accessToken, 100, "傻逼");
// 移动用户分组
boolean result2=removeMemberGroups(accessToken, "openId", 100);
}
6.发送客服消息工具 SendCustomMessage
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
// 组装文本客服消息
String jsonTextMsg=MakeCustomMessage.makeTextCustomMessage("openid", "哈哈哈哈");
// 其他类型此处略去,请看源码
// 发送客服消息
sendCustomMessage(accessToken, jsonTextMsg);
}
7.上传下载多媒体文件工具 MediaUtil
public static void main(String[] args) {
// 获取接口访问凭证
String accessToken=getAccessToken("appid", "appsecret").getAccesstoken();
// 上传多媒体文件
WeixinMedia weixinMedia=uploadMedia(accessToken, "image", "http://localhost:8080/wechatapi/upload/sedion.jpg");
System.err.println(weixinMedia.getMediaId());
System.err.println(weixinMedia.getType());
System.err.println(weixinMedia.getCreatedAt());
// 下载多媒体文件
String filePath=getMedia(accessToken, "", "D:/db");
System.err.println(filePath);
}
8.OAuth2授权工具 OAuthUtil
public static void main(String[] args) {
WeixinOauth2Token weixinOauth2Token=getOauth2AccessToken("appid", "appsecret", "code");
System.err.println("weixintoken是:"+weixinOauth2Token);
String accessToken=weixinOauth2Token.getAccessToken();
System.err.println("accestoken是"+accessToken);
String openId=weixinOauth2Token.getOpenId();
System.err.println("openId是"+openId);
SNSUserInfo snsUserInfo=getSNSUserInfo(accessToken, openId);
System.err.println("snsUserInfo是"+snsUserInfo);
}
9.自定义菜单接口
public static void main(String[] args) {
// 第三方用户唯一凭证
String appId = "appid";
// 第三方用户唯一凭证密钥
String appSecret = "appsecret";
// 调用接口获取access_token
AccessToken at = CommonUtil.getAccessToken(appId, appSecret);
if (null != at) {
// 调用接口创建菜单
boolean result = MenuUtil.createMenu(getMenu(), at.getAccesstoken());
// 判断菜单创建结果
if (result)
log.info("菜单创建成功!ok");
else
log.info("菜单创建失败,错误码:" + result);
}
}
10.获取access_token
public static void main(String[] args) {
// 获取接口访问凭证
AccessToken accessToken=getAccessToken("appId", "appSecret");
if (accessToken.getAccesstoken()==null) {
System.out.println("空");
}else {
System.out.println(accessToken.getAccesstoken());
}
}
总结:
上文中草草的将代码复制黏贴了一下,已经到了2014年4月19日00:30:45,不知不觉中这几年的这些夜晚都是这么过来的,熬夜,熬夜,熬夜,其实我也喜欢睡觉,我也喜欢玩,可是条件不允许,作为一个大三学生党,把自己的大学生涯都压在了代码身上,未来任是扑朔迷离,但深信,吃得苦中苦方为人上人。此处与各位共勉!
https://git.oschina.net/codenewbie/wechatbasic
如果你觉得赞就给本博推荐下吧,希望能上精华,如果你是大神那就别搭理本博了
本文只是自我的一个总结,如果对你有所帮助是我的荣幸,文章不妥之处希望指正,大神勿喷,请通过留言或关注微信公众帐号codenewbie来支持小八哥!若有不妥之处,欢迎指点。

转帖请注明本文出自小八哥的博客(http://www.cnblogs.com/Codenewbie),请尊重他人的辛勤劳动成果,谢谢!
Java微信公众平台接口封装源码分享的更多相关文章
- Java微信公众平台开发之扫码支付模式一
官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了大体过程:先扫码(还没有确定实际要支付的金额),这个码是商品的二维码,再生 ...
- Java微信公众平台开发之扫码支付模式二
官方文档点击查看 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案借鉴了很多大神的文章,在此先谢过了大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款模式二支付的流程 ...
- Java微信公众平台开发_02_启用服务器配置
源码将在晚上上传到 github 一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[ Java微信公众平台开发_01_本地服务器映射外网 ] 2.一个微信公众平台账号: 去注册: ...
- Java微信公众平台开发_07_JSSDK图片上传
一.本节要点 1.获取jsapi_ticket //2.获取getJsapiTicket的接口地址,有效期为7200秒 private static final String GET_JSAPITIC ...
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- 微信公众平台接口API
<?php /** * Author: helen * CreateTime: 2015/12/9 20:14 * description: 微信公众平台接口API */ class Wecha ...
- VopSdk一个高逼格微信公众号开发SDK(源码下载)
看之前回复很多说明大家很有热情&文章被误删掉了,不想让有的朋友错失这个高逼格的东西,现在重新发布,这次就直接放出源码,文章最末下载地址. 看之前回复很多说明大家很有热情&文章被误删掉了 ...
- Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请
转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...
- the5fire博客对接微信公众平台接口 | the5fire的技术博客
the5fire博客对接微信公众平台接口 | the5fire的技术博客 the5fire博客对接微信公众平台接口
随机推荐
- Web开发安全之文件上传安全
很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...
- RMS:不能对生产服务器使用测试清单
问题说明:在使用office软件RMS加密时报:不能对生产服务器使用测试清单,或者使用 rmsbulk.exe进行RMS加密时,报不能连接到RMS服务器. 解决办法: 请到https://suppor ...
- VisualStudio 2015 开启IIS Express可以调试X64项目
现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中调试.不要总是放在IIS中,在Attach这样好慢. 如果不设置直接调试X64的程序,我们有可能会受到以下类似的错误 ...
- SpringMVC(关于HandlerMapping执行流程原理分析)
请求过来先碰见中央调度器(前端调度器) //Determine handler for the current request; 对当前请求决定交给哪个handler, 当前请求地址过来 处理器执行链 ...
- Orcale 三层嵌套分页代码
select * from( select emp.*,rownum a from ( select * from emp ) emp where rownum<7) where a>3
- Backbone源码解析(六):观察者模式应用
卤煮在大概一年前写过backbone的源码分析,里面讲的是对一些backbone框架的方法的讲解.这几天重新看了几遍backbone的源码,才发现之前对于它的理解不够深入,只关注了它的一些部分的细节和 ...
- 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...
- 基于Kubernetes在AWS上部署Kafka时遇到的一些问题
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线 ...
- chrome拓展开发实战:页面脚本的拦截注入
原文请访问个人博客:chrome拓展开发实战:页面脚本的拦截注入 目前公司产品的无线站点已经实现了业务平台组件化,所有业务组件的转场都是通过路由来完成,而各个模块是通过requirejs进行统一管理, ...
- Android ButterKnife配置使用
ButterKnife在GitHub的地址:https://github.com/JakeWharton/butterknife 最新的版本是:8.4.0 app 模块的build.gradle: a ...