微信公众号极速 SDK - JFinal Weixin

jopen 5年前

JFinal Weixin 是基于 JFinal 的微信公众号极速 SDK,只需参考 Demo 代码即可进行极速开发。

1、WeixinConfig

public class WeixinConfig extends JFinalConfig {    public void configConstant(Constants me) {      loadPropertyFile("a_little_config.txt");      me.setDevMode(getPropertyToBoolean("devMode", false));          // 配置微信 API 相关常量      ApiConfig.setDevMode(me.getDevMode());      ApiConfig.setUrl(getProperty("url"));      ApiConfig.setToken(getProperty("token"));      ApiConfig.setAppId(getProperty("appId"));      ApiConfig.setAppSecret(getProperty("appSecret"));    }       public void configRoute(Routes me) {      me.add("/weixin", DemoController.class);      me.add("/api", ApiController.class, "/api");    }       public void configPlugin(Plugins me) {}    public void configInterceptor(Interceptors me) {}    public void configHandler(Handlers me) {}  }

通过 ApiConfig 提供 Weixin 公众平台所需的相关配置,并在configRoute 方法配置路由。

2、DemoController

public class DemoController extends WeixinController {    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);    }        // 其她自动接收并解析消息的便利方法省略  }

DemoController 通过继承自 WeixinController 便拥有了接收消息和发送消息的便利方法。

3、ApiController

public class ApiController extends Controller {    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());      }  }

通过调用 MenuApi、UserApi 等 Api 的相关方法即可获取封装成 ApiResult 对象的结果,使用 render 系列方法即可快捷输出结果。

4、更多支持

JFinal Weixin 官方网站:http://www.jfinal.com