微信公众号开发框架

本文是项目 WeiXin 的说明文档。

起步

在 web.xml 中配置如下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
	<servlet>
	    <servlet-name>weixin</servlet-name>
	    <servlet-class>com.chn.wx.WeiXinServlet</servlet-class>
	    <init-param>
	        <param-name>package</param-name>
	        <param-value>com.chn.wx.listener</param-value>
	    </init-param>
	    <init-param>
	        <param-name>appid</param-name>
	        <param-value>wx391f84dcab2d80bc</param-value>
	    </init-param>
	    <init-param>
	        <param-name>secret</param-name>
	        <param-value>cf4347b8c75bb09602d16ad3495ff280</param-value>
	    </init-param>
	</servlet>
	<servlet-mapping>
	    <servlet-name>weixin</servlet-name>
	    <url-pattern>/*</url-pattern>
	</servlet-mapping>

关于

com.chn.wx.listener 中的所有实现 Service 接口的类会被组装成一棵流程树,目前结点如下:

流程图

结点与父结点的关系通过 @Node(value = "raw", parent = EncryptRouter.class) 指定。 父结点到子结点的路由通过 tree.route(context, key) 完成,key 即为 Node 中的 value 属性。

消息返回

Service 的实现方法中返回的字符串会被写回到请求流中,需要返回消息时,调用 com.chn.wx.template.PassiveMessage 中的对应方法生成报文返回即可。

主动调用

语法糖

Service 实现类中被@Param注解标记的字段,会被注入成 Context 中对应的属性值,当然也可以直接通过 Context 读取。

相关资源

lzxz1234 26 December 2014