您的位置:首页 > 移动开发 > 微信开发

使用WX-SDK开发微信公众号(一) 接收处理来自微信用户的消息

2017-06-12 15:28 711 查看
WX SDK是一款基于Java平台的微信公众号开发SDK,封装了微信公众号平台所开放的调用接口及消息接口,为微信公众号开发者提供极简的API和配置方法,旨在让开发者能够脱离繁琐的HTTP接口调用和调试,专注于业务功能的开发。

WX SDK是根据微信公众平台开放的接口文档进行封装,因此建议开发者先阅读一遍微信公众平台接口文档以便于能够更快的理解WX SDK的使用。

WX SDK开源项目地址:https://git.oschina.net/iterable/WX-SDK

一、引入WX SDK库文件
开发者可以直接下载源代码自行进行编译,本工程是使用maven进行管理,需要开发者安装maven环境
开发者也可直接下载jar包,放在classpath下即可
如果开发者使用maven或者gradle,可以在pom.xml或build.gradle文件中加入如下配置

二、通过配置快速支持微信公众号消息接收功能
微信公众号最基本的功能是微信用户与公众号之间的消息通信。 消息通信分为了:

微信公众号接收消息:微信用户->微信公众号

微信公众号发送消息:微信公众号->微信用户

微信公众号接收消息
针对开发者需要接收微信用户发送给公众号的消息,WX SDK根据开发框架为Java开发者提供两种配置选择:

Filter配置

Spring框架配置

Filter配置
使用Filter配置方式,开发者需要在web.xml加入如下配置:

<filter>
<filter-name>wxsdk</filter-name>
<filter-class>cn.topcodes.unicorn.wxsdk.WXFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>wxsdk</filter-name>
<url-pattern>/wx-api</url-pattern>
</filter-mapping>

Spring框架配置
使用Spring框架配置需要配置两个地方,首先需要在web.xml加入如下配置:

<filter>
<filter-name>wxFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>wxFilter</filter-name>
<url-pattern>/wechat-api</url-pattern>
</filter-mapping>

接着在spring xml配置文件加入如下配置:

<bean id="wxFilter" class="cn.topcodes.unicorn.wxsdk.WXFilter">
<property name="appId" value="${wechat.AppID}" />
<property name="appSecret" value="${wechat.AppSecret}" />
</bean>

其中${wechat.AppID}和${wechat.AppSecret}替换为开发者自己公众号的appId和appSecret。

开发者选择上述其中一种方式配置完成后,还需要在公众号平台指定url地址到此服务器的/wechat-api

三、编写消息监听处理器
配置完成后,编写一个消息监听处理器(继承于WXMessageListener类)即可接收微信用户发送的消息:

public class TextMessageListener extends WXMessageListener<TextMessage> {

@Override
public ReplyMessage handle(TextMessage message) {
ReplyTextMessage reply = new ReplyTextMessage(message);
reply.setContent("你好");
return reply;
}

}

微信公众号平台开发了包括文本、语音、视频、图文等多种消息类型的接口,因此在监听消息时需要为WXMessageListener指定消息类型泛型,在用户发送不同类型的消息时,开发者就能够接收到对应的消息。

每个类型的监听器在应用程序中应该是单例的,监听器最终将返回处理结果给微信服务器,因此如果允许多个监听器监听同一类型的消息或事件,在响应结果时将出现问题,所以WX SDK中重复注册同类型监听器将会覆盖。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  WX-SDK 微信公众号
相关文章推荐