微信公众号开发教程java_微信公众号开发java框架:wx4j(入门篇)
导航
功能介绍
-接收文本、视频、图片、语音等所有消息推送;
-接收关注、取消关注、扫码、菜单点击等所有事件推送;
-响应文本、视频、图片、语音、图文内容;
-新增video、image、voice、thumbs、news永久素材;
-新增video、image、voice、thumb临时素材
-删除永久素材
-支持明文和安全安全两种模式
-任意地方获取AccessToken
-创建菜单、删除菜单、获取菜单、增加个性菜单、删除个性菜单、测试匹配个性菜单、获取当前菜单配置
-新增客服、删除客服、更新客服信息、上传客服头像、获取客服列表
-群发图文、视频、图片、文本
配置部署
1、准备java web开发环境,jdk版本1.6+,tomcat6.0+
2、创建一个java web项目,并引入wx4j1.0.jar包,下载地址:
(jar包在dist中)
dependency:
3、新建一个类WxAdapterImpl继承AbstractWxAdapter,并实现其抽象方法。initMenu()方法需要返回一个Menu对象,你可以先使用MenuUtils.getSampleMenu()来获取一个实例菜单对象。
public class WxAdapterImpl extendsAbstractWxAdapter {
@Override
publicMenu initMenu() {
System.out.println("on create menu");
return MenuUtils.getSampleMenu();}
@Override
public voidonReceiveText(ReceiveTextMessage message) {
System.out.println("onReceiveTextMessage");
}
@Override
public voidonReceiveVoice(ReceiveVoiceMessage message) {
System.out.println("onReceiveVoice");
}
@Override
public voidonReceiveImage(ReceiveImageMessage message) {
System.out.println("onReceiveImage");
}
//还有很多方法暂不列出
}
4、在web.xml中配置WxServlet,并将该servlet的load-on-startup设置为1,保证其能够在web服务器启动时初始化
WxServlet
cn.zr.wx4j.servlet.WxServlet
1
WxServlet
/WxServlet
5、将sys.properties放在src根下并配置它
app_id、app_secret、token可以直接在公众号基本配置中找到;
adapterPath地址填写步骤3中你创建的WxAdapterImpl的全路径;
如果是安全模式,is_safe设置为true,并配置encodingAesKey,encodingAesKey同样可以在公众号基本配置页面找到,非安全模式,设置为false,encodingAesKey可以不用配置。
app_id=wx7cd11cb5c49exxxx
app_secret=ba787a886fe3158492e8a0056361xxxx
token=abc
adapterPath=cn.zr.wx4j.test.WxAdapterImpl
is_safe_mode=true
encodingAesKey=1k5oHRxklEy6YNueIOIyn7qE6XpKJSVl8uuUwcPxxxx
6、以上配置完毕后,启动tomcat服务,观察控制台信息。
在WxAdapterImpl中处理被动消息的响应
1、在WxAdapterImpl中,你实现的每个方法中都可以获得微信服务器发送过来的消息对象,下面是一个实例,用户给你发送了一条message,你得到了一个ReceiveTextMessage对象message,message主要包含以下信息:
message.getFromUser();//获得消息来源
message.getToUser();//获得消息去向
message.getTimeStamp();//获得发送时间戳
message.getContent();//获得消息内容
现在,你可以创建一个TextMessage对象,直接调用AbstractWxAdapter继承下来的sendTextMessage方法,完成一条text消息的发送。
@Override
public voidonReceiveText(ReceiveTextMessage message) {
System.out.println("onReceiveTextMessage");
TextMessage text = newTextMessage();
text.setContent("哈咯,这是一条文本消息");
text.setCreateTime(System.currentTimeMillis());
text.setFromUserName(message.getToUserName());
text.setToUserName(message.getFromUserName());
text.setMsgType(MessageType.TEXT);
sendTextMessage(text);
}
当然,你也可以响应video、image等消息,可供调用的方法如下:
public voidsendTextMessage(TextMessage msg);
public voidsendNews(NewsMessage msg);
public voidsendImage(ImageMessage msg);
public voidsendVoice(VoiceMessage msg);
public voidsendVideo(VideoMessage msg);
public void sendMusic(MusicMessage msg);
在WxAdapterImpl构建自定义菜单
1、你只需要在WxAdapterImpl中的initMenu()方法中返回你需要的创建的Menu对象,框架会帮助你自动将它创建在公众号上,如果你不知道如何构建一Menu,可以调用MenuUtils.getSampleMenu()获得一个示例Menu,代码如下:
public staticMenu getSampleMenu() {
Menu m = newMenu();
Button b1 = newButton();
b1.setName("客户服务");
ViewButton b11 = newViewButton();
b11.setName("测试1");
b11.setType(ButtonType.VIEW);
b11.setUrl("http://www.zhour.net");
ViewButton b12 = newViewButton();
b12.setName("测试2");
b12.setType(ButtonType.VIEW);
b12.setUrl("http://www.zhour.net");
ViewButton b13 = newViewButton();
b13.setName("test1");
b13.setType(ButtonType.VIEW);
b13.setUrl("http://www.zhour.net");
ViewButton b14 = newViewButton();
b14.setName("test2");
b14.setType(ButtonType.VIEW);
b14.setUrl("http://www.zhour.net");
b1.setSub_button(newButton[] { b11, b12, b13, b14 });
Button b2 = newButton();
b2.setName("infomation");
ViewButton b21 = newViewButton();
b21.setName("官网");
b21.setType(ButtonType.VIEW);
b21.setUrl("http://www.huapengfei.com");
ViewButton b22 = newViewButton();
b22.setName("APP");
b22.setType(ButtonType.VIEW);
b22.setUrl("http://www.zhour.net");
b2.setSub_button(newButton[] { b21, b22 });
ViewButton b3 = newViewButton();
b3.setName("联系我们");
b3.setType(ButtonType.VIEW);
b3.setUrl("http://www.zhour.net");
m.setButton(newButton[] { b1, b2, b3 });
returnm;
}
微信公众号开发教程java_微信公众号开发java框架:wx4j(入门篇)相关推荐
- 公众号第三方平台开发 - 教程五 代公众号发起网页授权源码
教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...
- SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- STM32F103C8T6基础开发教程(HAL库)—开发环境配置
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux ...
- [libGDX游戏开发教程]使用LibGDX进行游戏开发(1)-游戏设计
声明:本章是一个系列的开始,英文原文是<Learning libGDX Game Development>,大家请周知. [libgdx游戏开发教程]使用Libgdx进行游戏开发(2)-游 ...
- java微信公众号开发教程_微信公众平台开发教程(java版本含代码) 中文PDF版 3.13MB...
本文档将对即将推出的微信公众帐号开发系列连载教程做简单的说明. 教程主要是面向有一定 Java 编程基础的朋友, 目录: 微信公众帐号开发教程第 1 篇-引言 2 微信公众帐号开发教程第 2 篇-微 ...
- python微信公众号开发教程_python微信公众号开发简单流程实现
本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下 网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总 ...
- 公众号支付demo java_微信公众号支付开发全过程(java版)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 一.微信官方文档微信支付开发流程(公众号支付) 首先我们到微信支付的官方文档的开发步骤部分查 ...
- 微信跳一跳怎么修改java_微信跳一跳怎么用抓包修改分数_改数据[多图]
这里给大家提供抓包工具修改分数的教程,以及抓包工具的安装包,请大家仔细看教程,放心使用. 如果玩家们觉得跳一跳玩起来很难,不想自己跳,可以看看下面的微信跳一跳辅助合集,里面包含了各种版本的跳一跳辅助, ...
- Conflux 开发教程 | 使用 IDE 在 Conflux 开发 DApp 的实战操作指南
Conflux DApp 开发教程 对本教程有任何疑问或建议可以在 GitHub 给我们留言. 简介 Conflux DApp 开发教程将使用 Conflux Studio 在 Oceanus 网络下 ...
最新文章
- 【javascript系列】字符串:字符串单个字符访问
- js实现promise.all promise.race promise.resolve
- 把Array说透(续一)
- 进程通信之 Binder 机制浅析
- 机器学习数据挖掘笔记_14(GMM-HMM语音识别简单理解)
- 面试必问之【数组】篇
- c++ find_last_of 函数应用一个例子
- ajax发送请求-同步和异步
- windows下使用Caffe框架和matlab实现SRCNN官方代码的步骤
- Windows进程管理类封装
- math.hypot java_Java Math hypot()用法及代码示例
- android移植jdk,重装windows后移植jdk和Android Studio
- 【自用】手工编译lnmp环境
- 阿里云CentOS服务器搭建静态网站(零基础)
- 维刻柠檬鲜果冰怎么样?
- html可以转为psd格式吗,网页ps模板-请问,PSD格式的网页模板应该如何导成HTML里所用的东西?现在 爱问知识人...
- matlab rti dds,[译]*RTI_DDS测试
- 国际汇款之账户体系与记账处理
- 嵌入式OCR+RFID识别电子护照阅读器模块MRZ码电子证件识别模组的应用与攻略
- 【总目录3】Python、神经网络与深度学习、毕业设计总结大全
热门文章
- Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码
- 设计模式-行为型软件设计模式(四)
- 5G+MEC+V2X车联网解决方案白皮书
- opencv库函数学习:Rect函数
- ftp服务器查看所有文件夹,查看ftp服务器所有文件夹
- Python数据处理Tips数据特征处理离散化和二值化
- 【免费】搜狗站长URL自动推送工具1.4.1
- Python画图显示中文
- C++设计模式:抽象工厂模式
- workbench动力学周炬_ANSYSWorkbench有限元分析实例详解(动力学)