C#開發微信門戶及應用(46)-基於Bootstrap的微信門戶應用管理系統功能介紹

在前面介紹不少的微信框架,基本上都採用EasyUI的界面來搭建的微信框架,如隨筆《C#開發微信門戶及應用(8)-微信門戶應用管理系統功能介紹》介紹的同樣,不過隨着微信的H5應用愈來愈多,所以轉換爲更適合作H5頁面應用框架的Bootstrap開發框架,本文介紹的整個微信模塊都是基於Bootstrap的應用。html

微信開發包括公衆號、企業號、微信小程序等方面的開發內容,須要對騰信的微信API接口進行封裝:包括事件、菜單、訂閱用戶、多媒體文件、圖文消息、消息羣發、微信支付和企業紅包、搖一搖設備、語義理解、微信小店、微信卡劵等相關接口處理,另外還包括掃一掃、圖庫和照片管理、地理位置、H5頁面開發等內容,以及企業號通信錄接口、成員消息相互發送等方面接口。前端

一、系統的重要特性總結

微信門戶應用管理系統,採用基於 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層採用Boostrap + Metronic組合的前端框架,數據訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等數據庫。在微信門戶系統裏面,實現下面這些功能操做:git

    1)實現菜單的動態配置及更新到服務器上;github

    2)動態定義事件和響應消息,實現對不一樣行業,不一樣需求的菜單動做響應;數據庫

    3)動態的應答指令配置處理,實現整套應答鏈的消息處理;小程序

    4)獲取訂閱用戶和用戶分組信息,並能夠實現用戶分組信息的維護等操做;後端

    5)管理並更新多媒體文件、圖文消息等內容,方便爲客戶推送消息作準備。微信小程序

    6)使用向選定訂閱用戶或者分組進行消息的羣發功能。api

    7)提供對用戶語音的識別,並將識別結果和事件處理進行對接,實現語音內容的處理。前端框架

    8)提供對地理位置的記錄和擴展應用,實現對百度天氣、熱映影片、影院、旅遊、交通消息等方面的第三方應用的對接。

    9)記錄用戶輸入的會話記錄,並能夠根據會話記錄向客戶進行消息的發送。

    10)集成微信掃一掃的功能,實現條碼和二維碼掃碼的功能整合,能夠在後臺整合自身應處理;。

    11)集成微信其餘最新功能,包括拍照和圖庫選擇、快速發送地理位置等功能;

    12)集成獲取關注成員的惟一ID,更新用戶備註,獲取客服聊天記錄等功能。

    13)集成微信支付和企業紅包、搖一搖設備、語義理解、微信小店、微信卡劵等相關接口處理。

    14)實現企業通信錄的管理,包括部門管理、成員管理、標籤管理,使得咱們能夠更方便同步企業號信息;

    15)實現企業號無限制的消息發送,可使企業和關注成員之間溝通更順暢;

    16)集成企業號文本消息、圖片消息、文件消息、語音消息、視頻消息、圖文消息等內容的發送整合,統一處理接口;

    17)實現企業號菜單的動態配置及更新到服務器上,動態定義菜單事件和響應消息,實現不一樣的菜單動做響應;

    18)管理並更新企業號的多媒體文件,方便同步到本身文件服務器進行存儲和處理;

    19)使用重定向功能獲訂閱用戶信息,實現企業成員身份的認證和處理。

    20)平臺和微信開放平臺整合掃描二維碼登陸,經過掃碼綁定並直接登錄系統。

    ……

二、系統功能介紹

2.1)系統登陸

 

在系統登陸界面輸入帳號和密碼後(默認帳號admin,密碼爲空),便可以超級管理員身份進入管理系統的主界面。

系統登陸後,經過水平菜單進行後臺功能管理。

2.2)微信帳號管理

 系統支持多微信帳號的接入管理和使用,同時支持訂閱號、公衆號、企業號、小程序的帳號配置。

 

能夠在系統右上角進行帳號的切換管理。

2.3)菜單管理

 在系統中管理菜單,並經過把菜單提交到服務器上,實現菜單的動態配置和生成,可以爲咱們系統適應各類的須要,實現靈活的處理。

微信菜單的添加界面以下所示。

 微信菜單的修改界面以下所示

 微信菜單定義是存儲在數據庫裏面,若是須要提交到微信服務器上並生效,則須要調用微信API接口進行處理,我在頁面的Controller控制器裏增長一個提交到服務器的處理方法。

在微信服務帳號的門戶上,菜單的表現效果以下所示。

咱們知道,微信的服務器架起了客戶手機和開發者服務器的一個橋樑。當咱們在微信服務器上的公衆帳號建立了相應的菜單,經過消息的傳遞和響應,就能實現了與用戶的交互操做,下面是它的消息流程圖。

 

2.4)菜單事件的處理

對於動態生成的菜單,大多數狀況下是用做Click的方式,也就是須要定義每一個菜單的事件響應操做,咱們使用微信的話,能夠了解到,微信的處理事件,通常能夠響應用戶文本消息、圖片消息、圖文消息等內容,常規下,通常使用文本消息或者圖文消息居多。

爲了進一步實現響應內容的重用,咱們把菜單的事件定義和內容定義進行分開管理,事件定義可使用多個文本消息,也可使用多個圖文消息進行組合,這樣能夠實現更加靈活的使用環境。

添加事件定義以下所示

事件的響應內容編碼,能夠選擇輸入或者從「編輯」按鈕中選擇,當選擇「編輯」按鈕進行選擇的時候,系統彈出一個對話框供用戶對事件的響應內容編碼選擇。

完成選擇後,回到原來的新增界面,將會看到返回的記錄就是咱們選擇的記錄。

微信事件的編輯界面以下所示,相似新增界面的內容。

 

2.5)微信消息內容管理

上面說到,菜單的事件經過關聯事件編碼進行處理,而事件自己能夠組合多個消息內容,所以消息內容是響應客戶操做的最小單元,它們能夠是一條文本消息、圖文消息,也能夠是多條消息的組合(同類型的話)。

爲了方便管理,我把消息分爲了圖文、指令、文本類型,若是須要,還能夠根據須要把它細化爲其餘類型的消息。

消息內容的添加界面以下所示。

文本消息的手機上界面效果以下所示。

這裏無論是文本消息仍是圖文消息,咱們統一以圖文消息的定義來定義消息,若是是文本消息,咱們只須要獲取描述內容做爲消息的主體便可。

圖文消息的編輯界面以下所示,主要就是填寫完整的內容和圖片,以及頁面詳細的連接便可。

上面的這個客戶關係管理系統的消息,在手機上顯示的界面效果以下所示,單擊連接,能夠切換到消息跳轉連接地址的。

 

2.6)應答指令的維護

應答指令的維護,有點相似於事件的管理,主要就是定義一些用到的指令,方便構建應答系統的響應鏈,從而實現一步步的操做指令。

在後臺設置好應答指令後,系統就能根據應答指令鏈進行處理了。首先咱們須要提供一個進入應答鏈的提示界面,以下所示。

但咱們在菜單選擇應答系統後,系統返回一個文本提示界面,以下所示。

這個界面裏面提示了一些按鍵,包括幾個固定的按鍵和一些業務按鍵,輸入簡單的1~6能夠對選擇進行響應。

咱們看到上面的界面,輸入指令1後,系統進入下一層的應答指令,而後又列出幾個可供輸入的按鍵和內容提示。

當咱們繼續輸入業務按鍵1後,響應的是一個圖文消息,也是關於按鍵的詳細說明。

這個時候,咱們也還能夠輸入*號按鍵,返回上一級菜單的。

 

2.7)客服管理功能

輸入0則轉入了客服對話模式,後續您發的任何消息,將會轉發到多客服系統裏面了。

 

當用戶發送消息後,客服助手就能及時收到消息並處理和客戶的應答了。

 

經過使用多客服的客戶端,這樣處理消息交互起來很是方便,能得到客戶的對話信息了,在電腦客戶端上,看到的界面以下所示。

手機上的談話截圖以下所示。

這樣就可以經過多途徑,及時響應客戶的信息了。

2.8)訂閱用戶管理

爲了更有效管理訂閱用戶以及分組信息,咱們能夠從微信服務器上獲取相關的信息,供咱們瞭解關注的用戶信息,也能夠爲後續的羣發消息作準備。 

訂閱用戶的管理以下所示,默承認以經過用戶的地區進行查看,地區根據:國家-省份-城市這樣的級別進行展開。

也能夠根據標籤查看,標籤能夠進行維護,以及爲標籤加入或者移除人員,界面以下圖所示。

以及能夠根據分組查看,以下所示。

訂閱用戶能夠從微信服務器上進行同步到本地,單擊同步數據,能夠把服務器上的用戶數據下載到本地進行更新或者寫入。

雙擊能夠查看訂閱用戶信息,查看訂閱用戶的詳細信息界面以下所示。

 

2.9)用戶標籤管理

微信公衆號,仿照企業號的思路,增長了標籤管理的功能,對關注的粉絲能夠設置標籤管理,實現更加方便的分組管理功能。開發者可使用用戶標籤管理的相關接口,實現對公衆號的標籤進行建立、查詢、修改、刪除等操做,也能夠對用戶進行打標籤、取消標籤等操做。

標籤管理是替代用戶組管理的一種標籤,能夠很好管理訂閱的用戶,咱們能夠經過封裝好的微信接口很容易的獲取騰訊服務器上用戶標籤列表,而後進行管理,以下圖所示。

同時前面提到了,能夠在訂閱用戶按標籤進行維護的,以下所示。

編輯標籤信息界面以下所示。

 

2.10)多媒體管理

多媒體管理是指把本地文件上傳到微信服務器上進行保存,方便信息的發送等操做。微信要求,某些信息,必須是先上傳到服務器上,而後才能使用它的媒體ID進行發送的。

文件成功上傳到服務器後,在列表裏面的「文件上傳標識,就是一串BASE64的編碼數據,同時有一個上傳的時間戳(由於微信服務器只保留了3天的媒體數據,超過時限的數據會被自動刪除。

同時,在列表的上面,有兩個重要的功能:上傳選定的記錄,從新上傳過時的記錄。方便咱們對本身多媒體文件的從新更新操做。

添加界面操做以下所示,其中引入了附件上傳的控件進行文件的操做,很是方便。同時上傳成功的文件,會在列表中列出。

多媒體文件能夠是下面幾種方式:圖片、語音、視頻、縮略圖。

保存後的數據記錄,文件上傳標識和時間戳都是空的,咱們若是要使用,必須把他們上傳到微信的服務器上,而後根據它的MediaId進行信息的發送,上傳選定的記錄操做界面以下所示。

多媒體文件順利上傳後,記錄的信息以下所示。

 

2.11)圖文消息處理

圖文消息分爲單圖文消息和多圖文消息兩種,單圖文消息以下所示。

多圖文消息以下所示:

和多媒體數據管理同樣,圖文消息也是經過一樣的方式進行管理,先上傳到服務器,而後在進行消息的發送操做,多媒體消息同樣有時間方面的限制要求,具體在咱們的微信門戶平臺裏面管理界面以下所示。

添加圖文消息界面以下所示,保存後,能夠在編輯界面中的「其餘圖文列表」裏面,繼續添加多圖文的消息內容。

在添加界面中,選擇圖文消息的縮略圖,都是經過選定指定的,已經上傳到服務器上圖片或者縮略圖資源才能夠的。

添加後的多圖文列表,能夠進行查看管理。

保存記錄後,而後繼續上傳,上傳後的記錄界面以下所示,成功後返回一個上傳後的服務器標識和時間戳,不然提示錯誤。

 

2.12)會話消息管理

爲了方便記錄客戶的輸入和發送信息,咱們在微信門戶管理平臺裏面記錄用戶的輸入數據,具體會話消息管理界面以下所示。

咱們能夠雙擊最近48小時內的任何一條記錄,能夠給關注的客戶進行消息的發送操做,若是消息發送成功,用戶在手機的微信帳號裏面就能收到相關的發送消息了。

 

2.13)羣發消息管理

爲了對客戶進行相應的營銷操做,有時候咱們須要對指定的羣主或者人員進行消息的羣發,讓客戶常常性的瞭解咱們產品的信息和活動。

因爲羣發消息,除了文本消息,能夠直接編輯發送外,其餘數據,必需要求是上傳到服務器的多媒體文件或者圖文消息內容,所以前面的多媒體管理和圖文消息管理,就是主要爲了羣發消息的目的引入的。有了上面的多媒體和多圖文信息,咱們從平臺裏面選擇記錄便可進行發送,從而省卻麻煩的連帶工做,實現高效的信息羣發操做。

羣發的消息,能夠按羣發分組進行查看,也能夠按照消息類型進行查看,使得咱們管理起來根據方便。

添加圖文消息,能夠選擇文本消息、圖文消息、圖片消息等內容,根據不一樣的內容,界面提供不一樣的選擇操做。

消息的羣發類型分爲兩種,一種是根據分組,那麼從平臺裏面選擇對應的分組便可;一種是根據用戶的OpenID進行發送,提供給用戶輸入。主要的操做界面以下所示。

2.14)使用語音處理

咱們知道,微信最開始就是作語音聊天而使得其更加流行的,所以語音的識別處理天然也就成爲微信交流的一個重要途徑,微信的開發接口,也提供了對語音的消息請求處理。這裏主要介紹如何利用語音的識別,對C#開發的微信門戶應用的整個事件鏈的處理操做,使得在咱們的微信帳號裏面,更加方便和多元化對用戶的輸入進行處理。

在系統後臺裏面,會檢查是否得到了微信的語音識別結果,若是得到,那麼這個時候,就是和處理用戶文本輸入的操做差很少了,語音輸入的處理邏輯以下所示。

首先我根據識別結果,尋找是否用戶讀出了微信門戶的菜單名稱,若是根據語音結果找到對應的菜單記錄,那麼咱們執行菜單事件(若是是URL的View類型菜單,咱們沒辦法重定向到指定的連接,所以給出一個連接文本提示,給用戶單擊進入;若是沒有找到菜單記錄,那麼咱們就把語音識別結果做爲通常的事件進行處理,若是事件邏輯沒有處理,那麼咱們最後給出一個默認的語音應答提示結果就能夠了。

微信門戶測試界面效果以下所示。

   

 爲了方便對客戶會話的記錄,個人微信門戶後臺,會記錄用戶的語音輸入內容,以下所示。

 

2.15)使用地理位置擴展相關應用

咱們知道,地理位置信息能夠用來作不少相關的應用,除了咱們能夠知道用戶所在的位置,還能夠關聯出一些地理位置的應用,如天氣,熱映影片,附近景點,附近影院,交通事件等等,反正全部和地理位置相關的信息,咱們均可以根據須要作一些擴展應用。這裏主要介紹利用地理位置信息,如何構建使用這些應用的操做。 

1)微信的地理位置信息 
在使用前,咱們先來看看微信的接口,爲咱們定義了那些關於與地理位置的信息。其實地理位置的信息,微信分爲了兩個方面,一個是接收用戶的地理位置請求,一個是用戶容許上報地理位置操做,定時發送的地理位置信息。

地理位置的上報操做,就是在輸入的地方,選擇+號進行添加地理位置,而後選擇當前或者指定的地理位置地圖,具體操做以下所示。

                 

首先對用戶地理位置的請求,我根據數據庫配置給出了一個用戶選擇的指令提示,以下所示。

爲了對地理位置請求的處理,我定義了一個用於處理這個操做的指令操做

這樣整個地理位置的指令操做,就在應答鏈裏面進行很好的跳轉管理了。幾個應用擴展的界面效果以下所示。

   

 

 

2.16)微信掃碼登陸

在現今不少網站裏面,都使用了微信開放平臺的掃碼登陸認證處理,這樣作至關於把身份認證交給較爲權威的第三方進行認證,在應用網站裏面能夠不須要存儲用戶的密碼了。

在用戶列表的二維碼鏈接上,單擊能夠對用戶進行微信掃碼綁定,這樣用戶能夠在掃碼登陸處直接掃碼登陸,不須要輸入帳號密碼。

一旦成功綁定用戶微信,在微信端會定位到一個綁定成功的頁面(自定義的H5頁面),以下所示。

若是用戶已經進行了二維碼綁定,則能夠在管理界面進行取消綁定,這樣能夠解綁用戶帳號和微信之間的關聯。

 

2.17)微信搖一搖紅包功能

 搖一搖周邊紅包接口是爲線下商戶提供的發紅包功能。用戶能夠在商家門店等線下場所經過搖一搖周邊領取商家發放的紅包,在線上轉發分享無效。

開發者可經過接口開發搖一搖紅包功能,特色包括:

  1. 可選擇使用模板加載頁或自定義Html5頁面調起微信原生紅包頁面(詳見建立紅包活動中use_template字段,1爲使用模板,2爲使用自定義Html5頁面)
  2. 原生紅包頁面拆紅包,無需經過公衆號消息下發
  3. 提供關注公衆號能力,用戶可自行選擇是否關注(裂變紅包分享時無效)
  4. 完成頁面可配置跳轉連接,可跳轉商戶的其餘自定義Html5頁面
  5. 同一個用戶在單個紅包活動中只能領取1次紅包

用戶側交互流程

常規的搖一搖紅包的流程以下所示,這裏沒有使用用戶自定義的模板,也就是使用系統內置的(努力加載中。。。)的頁面,紅包須要本身拆開。

紅包組件接口調用流程

  1. 申請紅包接口權限:登陸搖一搖周邊商戶後臺https://zb.weixin.qq.com ,進入開發者支持,申請開通搖一搖紅包組件接口;
  2. 紅包預下單:調用微信支付的api進行紅包預下單,告知須要發放的紅包金額,人數,生成紅包ticket;
  3. 建立活動並錄入紅包信息:調用搖周邊平臺的api錄入建立紅包活動並錄入信息,傳入預下單時生成的紅包ticket;
  4. 調用jsapi抽紅包:在搖出的頁面中經過調用jsapi抽紅包,抽中紅包的用戶能夠拆紅包;
  5. 調用以上接口時,紅包提供商戶和紅包發放商戶公衆號要求一致。

搖一搖紅包的處理過程能夠先的流程說明,申請權限後,須要在搖一搖後臺配置相關的紅包處理頁面,而後經過紅包接口處理提交紅包數據,最後經過搖一搖的設備搖出界面,使用JSAPI實現抽取紅包的操做,具體過程以下所示。

其中紅包接口處理,是調用一系列的紅包接口實現的,包括紅包預下單、建立紅包活動、錄入紅包信息等操做,以下所示。

 

 其中微信支付的相關配置信息在帳號的信息裏面

 

 利用搖一搖以及微信紅包接口,使用手機搖一搖得到紅包的過程界面效果以下所示。

對封裝好的微信接口,接口成功調用後,咱們能夠在公衆號的對話裏面看到紅包的信息結果,以下是整個紅包發送及拆開的過程。

另外咱們也對裂變紅包進行了接口的封裝,若是咱們須要發送裂變紅包的時候,直接調用裂變紅包的接口便可實現紅包發送的操做。

 

2.18)微信H5頁面及JSDK開發

在咱們開發微信頁面的時候,須要大量用到了各類呈現的效果,通常可使用Boostrap的效果來設計不一樣的頁面,不過微信團隊也提供不少這方面的資源,包括JSSDK的接口,以及Weui的頁面樣式和相關功能頁面,給咱們提供了很大的便利。

1) JSSDK

微信JS-SDK是微信公衆平臺面向網頁開發者提供的基於微信內的網頁開發工具包。經過使用微信JS-SDK,網頁開發者可藉助微信高效地使用拍照、選圖、語音、位置等手機系統的能力,同時能夠直接使用微信分享、掃一掃、卡券、支付等微信特有的能力,爲微信用戶提供更優質的網頁體驗。

目前JSSDK支持的接口分類包括下面幾類:基礎接口、分享接口、圖像接口、音頻接口、智能接口、設備信息、地理位置、搖一搖周邊、界面操做、微信掃一掃、微信小店、微信卡券、微信支付,隨着微信功能的所有整合,估計更多的接口會陸續開放出來。

2)WeUI和Jquery WeUI

WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊爲微信內網頁開發量身設計,能夠令用戶的使用感知更加統一。在微信網頁開發中使用 WeUI,有以下優點:

  • 同微信客戶端一致的視覺效果,令全部微信用戶都能更容易地使用你的網站
  • 便捷獲取快速使用,下降開發和設計成本
  • 微信設計團隊精心打造,清晰明確,簡潔大方

該樣式庫目前包含 button、cell、dialog、progress、toast、article、icon 等各式元素,已經在 GitHub上開源。訪問 http://weui.github.io/weui/ 或微信掃碼便可預覽。

jQuery WeUI 中使用的是官方 WeUI 的 CSS 代碼,並提供了 jQuery/Zepto 版本的 API 實現。JQuery WeUI相對於在官方WeUI的基礎上作了一些功能擴展,已豐富界面設計和相關功能,所以咱們能夠考慮直接基於JQuery  WeUI的基礎上進行頁面開發便可。

在我前面的一些案例中,都利用了We UI樣式來進行不少微信H5頁面的功能設計,包括微信支付頁面、簽到頁面等等。

如微信支付頁面以下所示:

     

以及簽到頁面效果以下所示。

 

固然咱們能夠根據業務須要,增長不少這樣和微信色調樣式一致的頁面,這個就是利用WeUI樣式帶來的界面體驗一致性的好處。

本篇主要介紹微信H5頁面開發的經驗總結,上面提到了利用JSSDK和WeUI來對微信應用的H5頁面進行開發,所以下面的相關效果也就是利用這些技術進行處理的。

 

字典數據的綁定:

和常規網頁功能同樣,咱們在設計微信頁面應用的時候,不少數據也是來源字典數據的,並且須要把它們動態綁定在頁面上,微信頁面的JQuery WeUI提供了一些列表字典數據的展現效果以下所示。咱們在微信框架裏面也使用了這些頁面組件,實現字典的綁定處理,以下所示。

同時,咱們則能夠在微信後臺對數據字典進行維護便可進行實時的數據更新。

 

三、設備維修案例功能介紹 

本節介紹的是設備維修案例的微信應用場景,該需求主要圍繞固定資產(如醫療設備)的微信應用展開,包括錄入及查詢資產信息、資產盤點、設備的維修保養、平常巡檢、維修、計量檢測等事務。

整個案例微信端應用採用的是H5頁面以及微信的JSDK進行相關的接口開發,符合微信的界面風格。後端管理就是本後臺管理系統。

3.1 組織機構及用戶分類(角色)

在系統中,根據系統應用,創建了相關的組織機構,以及對應的用戶分類(即用戶角色),根據不一樣的角色能夠受權不一樣的功能管理界面。

組織機構以下所示。

用戶角色以下所示:

系統根據角色對菜單進行不一樣的顯示設置。

超級管理員(帳號admin,密碼爲空)登錄系統,能夠對總體微信功能進行設置管理。

普通管理員(帳號gl,密碼爲12345678)登陸系統,能夠對相關的設備信息進行維護管理,以下所示。

 

3.2 微信菜單

 在微信端,咱們須要根據咱們的應用,設置一些功能菜單,咱們能夠經過後臺進行菜單的設置,而後經過接口提交到微信服務器便可。

這樣咱們提交菜單後,在公衆號上就能夠對相關的功能進行操做了。

 

 

3.3 設備添加及查看

 

在咱們應用系統中,通常都爲每一個設備指定一個設備編碼,咱們經過生成二維碼後,能夠經過微信掃碼進行設備信息的添加或者完善,以及相關的操做。

 

設備二維碼採用鏈接+設備編碼的方式生成,以下所示:

 

 

設備二維碼的生成測試頁面地址是:/h5/Test,測試生成二維碼的界面效果以下所示。

 

 

有了這些帶有連接地址的二維碼,當用戶使用微信掃碼操做的時候,會指定調整到對應的鏈接,實現相應的設備添加、維修保養、平常巡檢、維修、計量檢測等事務。

 

在微信端使用對應的功能菜單掃碼(如使用【設備管理】=>【設備信息錄入】掃碼上面的設備二維碼),那麼就能夠進行設備信息的添加操做了。

 

 

若是是設備信息查看,那麼在微信端列出主要的設備信息;

也能夠單擊進入查看詳細設備明細信息。

 

3.4設備其餘管理

設備盤點和設備計量以下所示: 

 

預防性維護和設備計量界面以下所示。

 

 

3.5 設備管理

 設備相關信息能夠在微信後臺進行詳細查看,以下界面是全部設備的信息列表,能夠進行相關的查詢、修改、刪除、查看明細等操做。

設備詳細信息查看,在後臺管理界面效果以下所示。

以及設備相關的維修信息:

 

四、微信接口封裝介紹

4.1)微信API封裝管理

以上全部在後臺管理的功能,都是經過對微信API的封裝管理實現的,咱們在開發頂層的應用前,已經把全部的微信提供的接口進行了有效的封裝。微信的相關接口的管理。

公衆號接口的分類圖以下所示。

企業號接口的分類圖以下所示:

在各類程序模塊裏面,咱們全部處理的數據,基本上都是經過自定義實體類的方式進行傳遞(注意:實體類是我根據程序開發須要本身定義的,非微信自己的實體類),這樣很是方便咱們處理操做,不然每次須要解析不一樣的消息內容,很容易出現問題,這樣強類型的數據類型,提升了咱們開發微信應用的強壯型和高效性。這些實體類的對象有必定的繼承關係的,他們的繼承關係以下所示。

 

微信的回覆消息處理,它也是繼承自BaseMessage實體類的(一樣,下圖的實體類及其繼承關係也是自定義的,方便程序開發),它的關係以下所示

 

4.2)微信框架項目模塊

咱們在開發微信相關的應用的時候,通常須要完善的基礎模塊支持,包括微信公衆號,微信企業號,微信小程序等,以及一些業務模塊的支持,通常隨着功能的增多,咱們須要很是清晰的界定他們的關係。模塊的分拆以及合併每每須要考慮的代碼的重用,並且儘可能作到簡單而不重複。

1)公衆號模塊封裝

微信開發,咱們首先須要利用咱們的語言(這裏是利用C#語言),爲全部用到的API接口實現進一步的封裝,方便使用,微信API模塊包含的內容不少,大概能夠分爲下面的項目。

有了這些接口功能的封裝類,只是萬里長征的第一步,咱們還須要圍繞這些接口,以及咱們的業務模塊實現更多交互功能的。

咱們在WHC.Weixin.Data模塊裏面,定義了包含公衆號的消息分派處理接口,這個分派接口是對接收來自微信服務器的各類消息事件進行響應;另外該模塊還包含一些常規的數據存儲,如關注用戶、菜單、文章內容等方面數據的存儲,以下所示。

固然,這個WHC.Weixin.Data是集大成者,它須要使用WHC.Weixin.API的項目內容來作數據提交,同時也是須要使用內部的數據存儲處理模塊。

 

2)企業號模塊封裝

企業號的作法和公衆號相似,也是須要對微信提供的各類API進行封裝,方便咱們後面的接口調用,不過企業號目前支持的功能相對公衆號少一些,大概包括有基礎接口、企業號應用接口、菜單管理、通信錄管理、消息管理、搖一搖周邊等模塊。隨着企業號功能的逐步完善和加入,可能騰訊會加入更多的一些功能模塊。

 

一樣咱們參考微信公衆號的作法,也是創建一個數據存儲管理的項目,做爲微信消息事件的處理入口,同時也管理存儲一些必須的數據,包括須要同步的用戶、標籤、部門等數據。

隨着微信公衆號和企業號的功能逐漸統一,不少接口的交互數據幾乎是同樣的,所以咱們能夠把公用的實體類部分做爲一個獨立的項目,方便公衆號和企業號兩個項目的共同使用,這個項目命名爲WHC.Common.Entity

它們幾個項目關係以下所示。

項目目錄以下所示,包括了基礎模塊、搖一搖紅包、菜單及多媒體管理模塊、消息請求模塊、消息應答模塊、搖一搖周邊、微信支付等。

因爲微信支付的接口實現,是在企業號和公衆號相對比較獨立的一個API接口羣,所以咱們能夠微信支付部分獨立做爲一個接口實現來處理,公衆號或者企業號須要的時候,包含進去使用便可。

咱們把它命名爲WHC.Common.API項目。

整個插件業務接口包括:百度的地理位置解析接口、電影院信息查詢、天氣信息查詢、交通訊息查詢、旅遊信息查詢等,還有短信、郵件發送等常規接口,均可以使用這種方式進行處理。接口的效果展現以下所示。

所以上面這些以WHC.Common命名的項目,基本上就是能夠通用在公衆號和企業號兩邊的項目模塊了,它們包含前面介紹過的幾個模塊,以下所示。

固然,除了這些以外,咱們作項目,通常還涉及到一些基礎功能模塊,如公用類庫,以及附件管理、通信錄管理、權限管理模塊等內容,咱們能夠把後者幾個模塊放在一塊兒,組成基礎模塊。

 

3)微信界面項目

微信界面部分是前面模塊組件的綜合使用,在微信應用裏面,通常須要使用80端口和微信服務器作交互,而這個同時每每也是咱們項目的端口地址。 

 

1.1.  設備添加及查看

相關文章
相關標籤/搜索