- 授权协议: Apache
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: http://git.oschina.net/jfinal/jfinal-weixin
- 软件文档: http://git.oschina.net/jfinal/jfinal-weixin/wikis/home
软件介绍
JFinal Weixin 是基于 JFinal 的微信公众号极速 SDK,只需参考 Demo 代码即可进行极速开发。自 JFinal Weixin 1.2 版本开始已添加对多公众号支持
0、Maven 坐标
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal-weixin</artifactId>
<version>2.3</version>
</dependency>
1、WeixinConfig
public class WeixinConfig extends JFinalConfig {
public void configConstant(Constants me) {
loadPropertyFile("a_little_config.txt");
me.setDevMode(getPropertyToBoolean("devMode", false));
// ApiConfigKit 设为开发模式可以在开发阶段输出请求交互的 xml 与 json 数据
ApiConfigKit.setDevMode(me.getDevMode());
}
public void configRoute(Routes me) {
me.add("/msg", WeixinMsgController.class);
me.add("/api", WeixinApiController.class, "/api");
}
public void configPlugin(Plugins me) {}
public void configInterceptor(Interceptors me) {}
public void configHandler(Handlers me) {}
}
以上通过 configRoute 方法配置了访问路由 "/msg" 与 "/api"。项目启动后,在微信服以务器上配置 url:http://域名/msg
重要:后续新版本的配置方式有所改进,详情见官方文档:https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal-weixin%E4%B8%AD%E7%9A%84WeixinConfig%E9%85%8D%E7%BD%AE
2、WeixinMsgController
public class WeixinMsgController extends MsgController {
protected void processInTextMsg(InTextMsg inTextMsg) {
String msgContent = inTextMsg.getContent().trim();
// 帮助提示
if ("help".equalsIgnoreCase(msgContent)) {
OutTextMsg outMsg = new OutTextMsg(inTextMsg);
outMsg.setContent(helpStr);
render(outMsg);
}
else if ("美女".equalsIgnoreCase(msgContent)) {
OutNewsMsg outMsg = new OutNewsMsg(inTextMsg);
outMsg.addNews("秀色可餐", "JFinal Weixin 极速开发就是这么爽,有木有 ^_^", "http://mmbiz.qpic.cn/mmbiz/zz3Q6WSrzq2GJLC60ECD7rE7n1cvKWRNFvOyib4KGdic3N5APUWf4ia3LLPxJrtyIYRx93aPNkDtib3ADvdaBXmZJg/0", "http://mp.weixin.qq.com/s?__biz=MjM5ODAwOTU3Mg==&mid=200987822&idx=1&sn=7eb2918275fb0fa7b520768854fb7b80#rd");
render(outMsg);
}
// 其它文本消息直接返回原值 + 帮助提示
else {
OutTextMsg outMsg = new OutTextMsg(inTextMsg);
outMsg.setContent("\t文本消息已成功接收,内容为: " + inTextMsg.getContent() + "\n\n" + helpStr);
render(outMsg);
}
}
protected void processInImageMsg(InImageMsg inImageMsg) {
OutImageMsg outMsg = new OutImageMsg(inImageMsg);
// 将刚发过来的图片再发回去
outMsg.setMediaId(inImageMsg.getMediaId());
render(outMsg);
}
/**
* 如果要支持多公众账号,只需要在此返回各个公众号对应的 ApiConfig 对象即可
* 可以通过在请求 url 中挂参数来动态从数据库中获取 ApiConfig 属性值
*
* 注意:后续新版本改进了配置方式,下面的配置不再需要,详情见下面的官方文档:
* https://gitee.com/jfinal/jfinal-weixin/wikis/Home
*/
public ApiConfig getApiConfig() {
return new ApiConfig(...);
}
// 其她自动接收并解析消息的便利方法省略
}
WeixinMsgController 通过继承自 MsgController 便拥有了接收消息和发送消息的便利方法。
3、WeixinApiController
public class WeixinApiController extends ApiController {
public void index() {
render("/api/index.html");
}
/**
* 获取公众号菜单
*/
public void getMenu() {
ApiResult apiResult = MenuApi.getMenu();
if (apiResult.isSucceed())
renderText(apiResult.getJson());
else
renderText(apiResult.getErrorMsg());
}
/**
* 获取公众号关注用户
*/
public void getFollowers() {
ApiResult apiResult = UserApi.getFollows();
renderText(apiResult.getJson());
}
/**
* 如果要支持多公众账号,只需要在此返回各个公众号对应的 ApiConfig 对象即可
* 可以通过在请求 url 中挂参数来动态从数据库中获取 ApiConfig 属性值
*
* 注意:后续新版本改进了配置方式,下面的配置不再需要,详情见下面的官方文档:
* https://gitee.com/jfinal/jfinal-weixin/wikis/Home
*/
public ApiConfig getApiConfig() {
return new ApiConfig(...);
}
}
通过调用 MenuApi、UserApi 等 Api 的相关方法即可获取封装成 ApiResult 对象的结果,使用 render 系列方法即可快捷输出结果。
4、更多支持
JFinal Weixin 官方文档: https://gitee.com/jfinal/jfinal-weixin/wikis/Home
关注官方微信号马上体验 demo 功能:
Learn Python the Hard Way
Zed A. Shaw / Addison-Wesley Professional / 2013-10-11 / USD 39.99
Master Python and become a programmer-even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's re......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!
