使用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加入如下配置:
Spring框架配置
使用Spring框架配置需要配置两个地方,首先需要在web.xml加入如下配置:
接着在spring xml配置文件加入如下配置:
其中${wechat.AppID}和${wechat.AppSecret}替换为开发者自己公众号的appId和appSecret。
开发者选择上述其中一种方式配置完成后,还需要在公众号平台指定url地址到此服务器的/wechat-api
三、编写消息监听处理器
配置完成后,编写一个消息监听处理器(继承于WXMessageListener类)即可接收微信用户发送的消息:
微信公众号平台开发了包括文本、语音、视频、图文等多种消息类型的接口,因此在监听消息时需要为WXMessageListener指定消息类型泛型,在用户发送不同类型的消息时,开发者就能够接收到对应的消息。
每个类型的监听器在应用程序中应该是单例的,监听器最终将返回处理结果给微信服务器,因此如果允许多个监听器监听同一类型的消息或事件,在响应结果时将出现问题,所以WX SDK中重复注册同类型监听器将会覆盖。
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中重复注册同类型监听器将会覆盖。
相关文章推荐
- 【JAVA微信开发】WxMessageSDK-轻量的微信公众号消息处理SDK
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息(下)
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息 (中)
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息(上)
- 使用WX-SDK开发微信公众号(四)微信网页授权
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息(下)
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息 (中)
- (Java)微信之个人公众账号开发(二)——接收并处理用户消息(上)
- 使用C# .net开发微信公众号之给用户发送模板消息
- 使用delphi+intraweb进行微信开发3—微信消息处理
- 使用WX-SDK开发微信公众号(三)为js sdk提供接口
- 微信开发——微信公众平台实现消息接收以及消息的处理(Java版)
- 微信开发后台处理消息时使用反射,去掉繁琐的if判断
- php微信开发备忘-接收处理文本消息
- 使用delphi+intraweb进行微信开发3—微信消息处理
- 微信开发中消息接收、回复及事件处理通用函数与php语法的详解(index.php文件)
- C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密
- C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密
- C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)
- .net开发微信公众号(3)-接收微信推送的消息