GitHub地址:wx-tools
Wx-tools是基于微信公眾平臺(tái)API的輕量級(jí)框架。 基于Wx-tools你可以開(kāi)速開(kāi)發(fā)一個(gè)訂閱號(hào)/服務(wù)號(hào)的web應(yīng)用后臺(tái)。
另外:wx-tools核心是處理消息,這個(gè)消息包括了事件推送,用戶消息等。 后面會(huì)有詳細(xì)的介紹。
wx-tools適合中小型項(xiàng)目,快速開(kāi)發(fā)。因?yàn)檫€未支持微信支付/商戶接口等。所以如果需要使用微信支付/微信小店的同學(xué),可以選擇性的使用學(xué)習(xí)。
另外,小小的埋怨一下:
肯定有人要問(wèn):為什么這么久了還不實(shí)現(xiàn)商戶接口???
原因很簡(jiǎn)單:測(cè)試號(hào)不支持測(cè)試這些支付接口,而我又沒(méi)有服務(wù)號(hào)或者認(rèn)證過(guò)的訂閱號(hào)!如果有哪位同學(xué)有多余的號(hào)愿意分享給我測(cè)試使用,萬(wàn)分感謝,wx-tools將更加強(qiáng)大。:D
先有個(gè)大概了解,后續(xù)會(huì)詳細(xì)講到如何使用。
該框架還有個(gè)特點(diǎn)就是鏈?zhǔn)劫x值,用過(guò)jQuery的人都知道這樣的寫(xiě)法
$("#id").hide().attr().html()....
而wx-tools對(duì)于微信服務(wù)器發(fā)過(guò)來(lái)的消息是這樣處理的:
//初始化統(tǒng)一API調(diào)用入口
WxService wxService = new WxService();
//來(lái)自微信服務(wù)器的消息
WxXmlMessage msg = XStreamTransformer.fromXml(WxXmlMessage.class, request.getInputStream());
//實(shí)例化消息路由器,作用是將消息路由去匹配器,攔截器,處理器。
WxMessageRouter router = new WxMessageRouter(wxService);
//添加路由規(guī)則,只處理滿足規(guī)則的消息,可以自定義匹配器,攔截器,處理。
//每條路由規(guī)則必須以next()或者end()結(jié)束。否則不生效。這個(gè)后續(xù)會(huì)講到。
//這里意思是,只接收TEXT類型的消息,交給DemoMatcher匹配器、DemoInterceptor攔截器、DemoHandler處理器處理。
router.rule().msgType(WxConsts.XML_MSG_TEXT).matcher(new DemoMatcher()).interceptor(new DemoInterceptor()).handler(new DemoHandler()).end();
//開(kāi)始路由
router.route(wx);
看不懂?沒(méi)關(guān)系,我來(lái)解釋一下:
路由器每個(gè)家庭都有把?我們來(lái)看看百度百科的路由器的定義:
路由器(Router),是連接因特網(wǎng)中各局域網(wǎng)、廣域網(wǎng)的設(shè)備,它會(huì)根據(jù)信道的情況自動(dòng)選擇和設(shè)定路由,以最佳路徑,按前后順序發(fā)送信號(hào)。
而wx-tools中的路由器的定義類似:
路由器(WxMessageRouter),是路由處理微信服務(wù)器發(fā)來(lái)的一切消息(消息包括了事件推送,普通消息等),它會(huì)根據(jù)設(shè)置的規(guī)則(Rule)的不同而自動(dòng)選擇不同的處理器(Handler/Matcher/Interceptor),按前后順序處理并返回用戶處理結(jié)果。
這樣講不知道明白沒(méi)明白!不明白也沒(méi)關(guān)系,接下來(lái)跟著做一個(gè)demo就知道怎么使用了~
下一篇會(huì)說(shuō)明當(dāng)前版本實(shí)現(xiàn)了哪些功能。
更多建議: