JFinal Weixin微信公眾號極速 SDK
JFinal Weixin 是基于 JFinal 的微信公眾號極速 SDK,只需參考 Demo 代碼即可進行極速開發(fā)。自 JFinal Weixin 1.2 版本開始已添加對多公眾號支持
0?Maven 坐標(biāo)
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal-weixin</artifactId>
<version>3.4</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 設(shè)為開發(fā)模式可以在開發(fā)階段輸出請求交互的 xml 與 json 數(shù)據(jù)
ApiConfigKit.setDevMode(me.getDevMode());
}
public void configRoute(Routes me) {
// 從 jfinal 3.6 版本開始,需設(shè)置 setMappingSuperClass(true) 才能支持 jfinal weixin
me.setMappingSuperClass(true);
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"。項目啟動后,在微信服以務(wù)器上配置 url:http://域名/msg
重要:后續(xù)新版本的配置方式有所改進,詳情見官方文檔: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 極速開發(fā)就是這么爽,有木有 ^_^", "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文本消息已成功接收,內(nèi)容為: " + inTextMsg.getContent() + "\n\n" + helpStr);
render(outMsg);
}
}
protected void processInImageMsg(InImageMsg inImageMsg) {
OutImageMsg outMsg = new OutImageMsg(inImageMsg);
// 將剛發(fā)過來的圖片再發(fā)回去
outMsg.setMediaId(inImageMsg.getMediaId());
render(outMsg);
}
/**
* 如果要支持多公眾賬號,只需要在此返回各個公眾號對應(yīng)的 ApiConfig 對象即可
* 可以通過在請求 url 中掛參數(shù)來動態(tài)從數(shù)據(jù)庫中獲取 ApiConfig 屬性值
*
* 注意:后續(xù)新版本改進了配置方式,下面的配置不再需要,詳情見下面的官方文檔:
* https://gitee.com/jfinal/jfinal-weixin/wikis/Home
*/
public ApiConfig getApiConfig() {
return new ApiConfig(...);
}
// 其她自動接收并解析消息的便利方法省略
}
WeixinMsgController 通過繼承自 MsgController 便擁有了接收消息和發(fā)送消息的便利方法。
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());
}
/**
* 獲取公眾號關(guān)注用戶
*/
public void getFollowers() {
ApiResult apiResult = UserApi.getFollows();
renderText(apiResult.getJson());
}
/**
* 如果要支持多公眾賬號,只需要在此返回各個公眾號對應(yīng)的 ApiConfig 對象即可
* 可以通過在請求 url 中掛參數(shù)來動態(tài)從數(shù)據(jù)庫中獲取 ApiConfig 屬性值
*
* 注意:后續(xù)新版本改進了配置方式,下面的配置不再需要,詳情見下面的官方文檔:
* https://gitee.com/jfinal/jfinal-weixin/wikis/Home
*/
public ApiConfig getApiConfig() {
return new ApiConfig(...);
}
}
通過調(diào)用 MenuApi、UserApi 等 Api 的相關(guān)方法即可獲取封裝成 ApiResult 對象的結(jié)果,使用 render 系列方法即可快捷輸出結(jié)果。
4、更多支持
JFinal Weixin 官方文檔: https://gitee.com/jfinal/jfinal-weixin/wikis/Home
關(guān)注官方微信號馬上體驗 demo 功能:
評論
圖片
表情
