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博客对接微信公众平台接口
随机推荐
- 如何查看w3p.exe 和IIS 应用程序池的关系
图形界面方式 命令行方式 如果找不到 appcmd Appcmd.exe exists at the location %systemroot%\system32\inetsrv\. You eith ...
- Concurrency != Parallelism
前段时间在公司给大家分享GO语言的一些特性,然后讲到了并发概念,大家表示很迷茫,然后分享过程中我拿来了Rob Pike大神的Slides <Concurrency is not Parallel ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- 转职成为TypeScript程序员的参考手册
写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...
- DOM getElementsByClassName IE兼容方案
平时写HTML时多用class来命名,为很少用id来命名,主要原因就是class使用起来比较灵活. 但是万恶的JS在操作DOM的时候对ie6+只提供了getElementById和getElement ...
- SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,合计,小计
表结构: CREATE TABLE [dbo].[Students]( ,) NOT NULL, ) NULL, [Sex] [int] NOT NULL, ) NULL, ) NULL, , ) N ...
- Jmeter安装与环境部署
Jmeter安装与环境部署 版权声明:本文为博主原创文章,未经博主允许不得转载. 博主:海宁 联系:whnsspu@163.com
- iOS-证书
1.iOS-证书相关 2.iOS-证书申请 3.iOS-APNS证书申请与使用 4.iOS-App发布证书的申请与使用
- Atitit 动态按钮图片背景颜色与文字组合解决方案
Atitit 动态按钮图片背景颜色与文字组合解决方案 转换背景颜色,setFont("cywe_img", fontScale, 50, 5) 设置文字大小与坐标 文字分拆,使用字 ...
- 【.net 深呼吸】自定义特性(Attribute)的实现与检索方法
在.net的各个语言中,尤其是VB.NET和C#,都有特性这一东东,具体的概念,大家可以网上查,这里老周说一个非标准的概念——特性者,就是对象的附加数据.对象自然可以是类型.类型成员,以及程序集. 说 ...