1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JFinal Weixin微信公眾號極速 SDK

        聯(lián)合創(chuàng)作 · 2023-09-24 16:04

        JFinal Weixin 是基于 JFinal 的微信公眾號極速 SDK,只需參考 Demo 代碼即可進(jìn)行極速開發(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"。項(xiàng)目啟動后,在微信服以務(wù)器上配置 url:http://域名/msg

        重要:后續(xù)新版本的配置方式有所改進(jìn),詳情見官方文檔: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ù)新版本改進(jìn)了配置方式,下面的配置不再需要,詳情見下面的官方文檔:
           *      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ù)新版本改進(jìn)了配置方式,下面的配置不再需要,詳情見下面的官方文檔:
           *      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)注官方微信號馬上體驗(yàn) demo 功能:

        瀏覽 27
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            freehdxxxxchina麻豆 | 小早川怜子绝顶菊门狂在线 | 国內精品久久久久久久久久变脸 | 国产三级视频 | 小舞被各种性器折磨哭求饶的视频 | 777午夜精品久久久 | 亚洲欧美精品 | 阿娇张开双腿冠希13分钟 | 男男军人警察裸体gay网站 | 91丨九色丨国产在线观看 |