<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MPSDK4JJAVA微信公平臺(tái)開發(fā)SDK

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

          MPSDK4J 是 JAVA 微信公平臺(tái)開發(fā) SDK,沒有復(fù)雜的功能,一切源于微信 API。

          1.介紹

          MPSDK4J,非常直觀的闡述了此項(xiàng)目的意義所在。沒錯(cuò),它就是JAVA語(yǔ)言環(huán)境下的微信公眾平臺(tái)開發(fā)SDK。其中MP代表的是微信公眾平臺(tái)的域名前綴,SDK表示開發(fā)工具包,4同音英文“for”,J代表了JAVA。雖然現(xiàn)網(wǎng)絡(luò)上已經(jīng)有不少JAVA版本的SDK現(xiàn)身,但是***[MPSDK4J]*** 的出現(xiàn)也并非只是造輪子的重復(fù)工作。它遵循單一設(shè)計(jì)模式規(guī)則,所有的設(shè)計(jì)與功能都是源于微信公眾平臺(tái)API,一切都是為了追求簡(jiǎn)單與速度。

              a.設(shè)計(jì)簡(jiǎn)單:整體設(shè)計(jì)非常的簡(jiǎn)單,僅有7個(gè)包39個(gè)類對(duì)象(其中VO對(duì)象占據(jù)一半之多,詳見結(jié)構(gòu)設(shè)計(jì)圖),核心功能部分就4類(WxBase,WxApi,WxOpenApi,WxHandler);
               b.解析速度:基本SAX驅(qū)動(dòng)式XML處理,結(jié)合JDK7的新特性,能夠快速的解析收到用戶發(fā)送的微信消息,放棄JAVA反射功能直接編碼生成VO對(duì)象更加快速; 
              c.敏捷開發(fā):微信交互信息全都統(tǒng)一封裝VO對(duì)象,所有VO的屬性都是微信公眾平臺(tái)API原生狀態(tài)。開發(fā)者無(wú)須再關(guān)心它來(lái)源是XML還JSON格式,其中消息的收發(fā)只需掌握2個(gè)VO(ReceiveMsg,OutPutMsg)即可; 
              d.支持力度:API功能分為三個(gè)部分(后續(xù)會(huì)不斷更新升級(jí)),微信基本消息的交互,高級(jí)接口(Token,自定義菜單,模板消息,群發(fā)消息等等)及開放平臺(tái)功能接口的調(diào)用。

          2. 結(jié)構(gòu)設(shè)計(jì)

           

          3. 交互時(shí)序圖

          4. 示例代碼

          MPSDK4J在Web環(huán)境中暫時(shí)提供了以下三種支持,歡迎提交其它環(huán)境擴(kuò)展。在實(shí)際的使用過(guò)程中只需要繼承相應(yīng)環(huán)境的Wx***Support父類,重寫init初始化方法修改其中的公眾號(hào)信息及微信消息處理器,添加環(huán)境的入口(Servlet環(huán)境無(wú)需此步驟),調(diào)用wxInteract方法,最后發(fā)布上線即可。

          4.1 HttpServlet環(huán)境

          @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();
                  // 修改為實(shí)際的公眾號(hào)信息,可以在開發(fā)者欄目中查看
                  mpAct.setAppId("wx****");
                  mpAct.setAppSecert("***");
                  mpAct.setToken("***");
                  mpAct.setAESKey("******");
                  this.setMpAct(mpAct);
                  // 可實(shí)現(xiàn)自己的WxHandler
                  this.setWxHandler(new WxDefaultHandler());
              }
          }

          4.2 SpringMVC環(huán)境

          @Controller
          @RequestMapping("/weixin/mp")
          public class WeiXinController extends WxSpringSupport {
          
              @Override
              protected void init() {
                  MPAct mpAct = new MPAct();
                  // 修改為實(shí)際的公眾號(hào)信息,可以在開發(fā)者欄目中查看
                  mpAct.setAppId("wx****");
                  mpAct.setAppSecert("***");
                  mpAct.setToken("***");
                  mpAct.setAESKey("******");
                  this.setMpAct(mpAct);
                  // 可實(shí)現(xiàn)自己的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環(huán)境

          public class WeiXinAction extends WxStruts2Support {
          
              @Override
              protected void init() {
                  super.init();
                  MPAct mpAct = new MPAct();
                  // 修改為實(shí)際的公眾號(hào)信息,可以在開發(fā)者欄目中查看
                  mpAct.setAppId("wx****");
                  mpAct.setAppSecert("***");
                  mpAct.setToken("***");
                  mpAct.setAESKey("******");
                  this.setMpAct(mpAct);
                  // 可實(shí)現(xiàn)自己的WxHandler
                  this.setWxHandler(new WxDefaultHandler());
              }
          
              public void wxCore() throws IOException {
                  wxInteract();
              }
          }

          5. ISSUE

          BUG提交:https://git.oschina.net/lisenhui/mpsdk4j/issues

          瀏覽 33
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  性爱无码AV | 中国操逼小视频 | 伊人成年网站综合网 | 狠狠热视频 | 伊人网在线视频观看 |