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