MPSDK4J 是JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用。-- 题记
1.介绍
MPSDK4J,非常直观的阐述了此项目的意义所在。没错,它就是JAVA语言环境下的微信公众平台开发SDK。其中MP代表的是微信公众平台的域名前缀,SDK表示开发工具包,4同音英文“for”,J代表了JAVA。虽然现网络上已经有不少JAVA版本的SDK现身,但是***[MPSDK4J]*** 的出现也并非只是造轮子的重复工作。它遵循单一设计模式规则,所有的设计与功能都是源于微信公众平台API,一切都是为了追求简单与速度。
a.设计简单:整体设计非常的简单,仅有7个包39个类对象(其中VO对象占据一半之多,详见结构设计图),核心功能部分就4类(WxBase,WxApi,WxOpenApi,WxHandler);
b.解析速度:基本SAX驱动式XML处理,结合JDK7的新特性,能够快速的解析收到用户发送的微信消息,放弃JAVA反射功能直接编码生成VO对象更加快速;
c.敏捷开发:微信交互信息全都统一封装VO对象,所有VO的属性都是微信公众平台API原生状态。开发者无须再关心它来源是XML还JSON格式,其中消息的收发只需掌握2个VO(ReceiveMsg,OutPutMsg)即可;
d.支持力度:API功能分为三个部分(后续会不断更新升级),微信基本消息的交互,高级接口(Token,自定义菜单,模板消息,群发消息等等)及开放平台功能接口的调用。
2. 结构设计
3. 交互时序图
4. 示例代码
MPSDK4J在Web环境中暂时提供了以下三种支持,欢迎提交其它环境扩展。在实际的使用过程中只需要继承相应环境的Wx***Support父类,重写init初始化方法修改其中的公众号信息及微信消息处理器,添加环境的入口(Servlet环境无需此步骤),调用wxInteract方法,最后发布上线即可。
4.1 HttpServlet环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
@WebServlet
(name =
"weixinServlet"
, urlPatterns =
"/weixin/mp/core.ser"
)
public
class
WeiXinServlet
extends
WxServletSupport {
@Override
public
void
init()
throws
ServletException {
super
.init();
MPAct mpAct =
new
MPAct();
// 修改为实际的公众号信息,可以在开发者栏目中查看
mpAct.setAppId(
"wx****"
);
mpAct.setAppSecert(
"***"
);
mpAct.setToken(
"***"
);
mpAct.setAESKey(
"******"
);
this
.setMpAct(mpAct);
// 可实现自己的WxHandler
this
.setWxHandler(
new
WxDefaultHandler());
}
}
|
4.2 SpringMVC环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
@Controller
@RequestMapping
(
"/weixin/mp"
)
public
class
WeiXinController
extends
WxSpringSupport {
@Override
protected
void
init() {
MPAct mpAct =
new
MPAct();
// 修改为实际的公众号信息,可以在开发者栏目中查看
mpAct.setAppId(
"wx****"
);
mpAct.setAppSecert(
"***"
);
mpAct.setToken(
"***"
);
mpAct.setAESKey(
"******"
);
this
.setMpAct(mpAct);
// 可实现自己的WxHandler
this
.setWxHandler(
new
WxDefaultHandler());
}
@RequestMapping
(value =
"/core"
,produces = {
"text/plain;charset=UTF-8"
})
@ResponseBody
public
String wxCore(HttpServletRequest req) {
String reply =
""
;
try
{
reply = wxInteract(req);
}
catch
(IOException e) {
log.error(e.getLocalizedMessage(), e);
}
return
reply;
}
}
|
4.3 Struts2环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
WeiXinAction
extends
WxStruts2Support {
@Override
protected
void
init() {
super
.init();
MPAct mpAct =
new
MPAct();
// 修改为实际的公众号信息,可以在开发者栏目中查看
mpAct.setAppId(
"wx****"
);
mpAct.setAppSecert(
"***"
);
mpAct.setToken(
"***"
);
mpAct.setAESKey(
"******"
);
this
.setMpAct(mpAct);
// 可实现自己的WxHandler
this
.setWxHandler(
new
WxDefaultHandler());
}
public
void
wxCore()
throws
IOException {
wxInteract();
}
}
|
5. ISSUE
BUG提交:https://git.oschina.net/lisenhui/mpsdk4j/issues
6.联系
特别希望看到该项目对您哪怕一点点的帮助。你有任何的想法和建议,除以上Issue提交外,也随时欢迎与我沟通,联系方式:
-
Email: elkan1788@gmail.com
-
QQ: 2292706174
7. 邀请
现这个项目在还在发展期, 期待你有更加好的IDEA, 也期待你能加入, 谢谢.