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博客对接微信公众平台接口
随机推荐
- IdentityServer4 使用OpenID Connect添加用户身份验证
使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...
- SharePonit 2010 更改另存为列表模板的语言类型
从朋友处得来一个列表模板:AccessApplicationSharePoint.stp 将其通过:网站操作----网站设置----列表模板,上传进去.然后去创建列表,发现找不到此模板. 根据多年老司 ...
- Maven仓库搭建和配置
maven在本地搭建仓库的实际需求maven在项目构建过程需要下载一些必要的软件包,这些默认的下载链接都是访问maven的远程中央仓库Central Repo.如果项目中的成员,每次第一次构建的时候都 ...
- IP报头
位字段的值设置为二进制的0100表示IP版本4(IPv4).设置为0110表示IP版本6(IPv6) 位,它表示32位字长的IP报头长度,设计报头长度的原因是数据包可选字段大小会发生变化.IP ...
- BZOJ3198[SDOI2013]SPRING
Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINT 题 ...
- 在.NET Core控制台程序中使用依赖注入
之前都是在ASP.NET Core中使用依赖注入(Dependency Injection),昨天遇到一个场景需要在.NET Core控制台程序中使用依赖注入,由于对.NET Core中的依赖注入机制 ...
- Java 程序的打包、签名和验证
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找到这个总入口 Java SE 8 Document ...
- Sublime Text3使用总结
写在前面的话:平时做项目中在用eclipse和vs,但是对于一些小项目,感觉没有必要搞那么大的一个工具使用,比如写个小微商城,搞个小脚本了什么,所以就一直在用Sublime Text,界面清新简洁,没 ...
- ABP框架 - 值对象
文档目录 本节内容: 简介 值对象基类 最佳实践 简介 “一个表示领域的一个描述性方面的没有概念上的身份对象,称为值对象.“(Eric Evans). 与一个有身份(Id)实体相反,一个值对象没有身份 ...
- Java基础知识(贰)
一.面向对象 Java中的面向对象与C#的面向对象,本质都是一样.所以对于学过C#的同学理解Java中面向对象的概念就比较轻松. 对象 定义: 万物皆对象,客观存在的事物都称为对象. 1.面向对象 类 ...