微信公众号开发教程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:

155f4532d4a61812fde9764b3e9a8711.png

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

5d602be3ef73ea670c4b4d02fca45ec6.png

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值