畢業(yè)論文——教學平臺中學生信息查詢的微信接口設(shè)計_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  教學平臺中學生信息查詢的微信接口設(shè)計</p><p>  WeChat interface design of teaching platform </p><p>  for students information query</p><p>  姓 名: </p>

2、<p>  學 號: </p><p>  專 業(yè): 計算機科學與技術(shù)系 </p><p>  指導 教師: </p><p><b>  年 月</b></p><p>

3、;<b>  摘要I</b></p><p>  AbstractII</p><p><b>  第一章、引言1</b></p><p>  1.1 研究背景和意義1</p><p>  1.1.1 微信公共平臺當前背景1</p><p>  1.1.2 微信公共

4、平臺應用價值和意義1</p><p>  1.2 主要內(nèi)容、預期成果以及組織結(jié)構(gòu)2</p><p>  1.2.1 研究的主要內(nèi)容2</p><p>  1.2.2 研究的預期成果2</p><p>  1.2.3 論文組織結(jié)構(gòu)3</p><p>  第二章、相關(guān)理論和技術(shù)4</p><

5、p>  2.1 現(xiàn)有微信公共平臺技術(shù)4</p><p>  2.2 SQL Server數(shù)據(jù)庫技術(shù)4</p><p>  2.3 C#技術(shù)與asp.net5</p><p>  第三章、需求分析與程序設(shè)計框架7</p><p>  3.1 微信公共平臺用戶需求分析7</p><p>  3.2 微信公共

6、平臺接口程序設(shè)計框架7</p><p>  第四章、設(shè)計與實現(xiàn)10</p><p>  4.1 微信公共平臺接口設(shè)計10</p><p>  4.1.1 接口總體功能概述10</p><p>  4.1.2 接口功能設(shè)計分析10</p><p>  4.2 微信公共平臺接口實現(xiàn)11</p>&

7、lt;p>  4.2.1 微信公共平臺搭建11</p><p>  4.2.1.1 注冊微信公共平臺賬號11</p><p>  4.2.1.2 啟用開發(fā)者模式11</p><p>  4.2.1.3 驗證服務器地址有效性12</p><p>  4.2.2 數(shù)據(jù)庫連接12</p><p>  4.2.

8、3 具體功能模塊實現(xiàn)14</p><p>  4.2.3.1 ACCESS_TOKEN使用方式14</p><p>  4.2.3.2 用戶請求消息初處理與分配16</p><p>  4.2.3.3 用戶微信賬號綁定與解除綁定17</p><p>  4.2.3.4 用戶查詢資料18</p><p>  4

9、.2.3.5 教師用戶信息管理與群發(fā)消息20</p><p>  4.2.3.6 自定義菜單事件響應21</p><p>  第五章、總結(jié)與進一步工作24</p><p><b>  5.1 總結(jié)24</b></p><p>  5.2 存在不足與改進方向24</p><p><b

10、>  參考文獻25</b></p><p><b>  致謝26</b></p><p><b>  摘要</b></p><p>  當今智能手機普及,微信已成為信息傳播和交互的一個重要通道。微信公共平臺在交互的實時性,快捷性相比于網(wǎng)頁信息平臺和傳統(tǒng)管理系統(tǒng)有著無與倫比的優(yōu)勢,同時要滿足用戶多樣化的

11、操作需求和信息的安全性上也給公共平臺的開發(fā)帶來挑戰(zhàn)。本文設(shè)計并開發(fā)一個面向高校師生的微信公共平臺,結(jié)合SQL server數(shù)據(jù)庫技術(shù),能夠便捷地為師生提供實時的成績,課表,作業(yè),通知等信息的查詢和更改操作,并在信息的隱私和安全性上給予保證。</p><p>  關(guān)鍵詞:校園信息化、微信公共平臺、移動終端信息發(fā)布</p><p><b>  Abstract</b>&l

12、t;/p><p>  Nowadays, with the widely use of the smart mobile phone, WeChat has become an important channel for information

13、60;dissemination and interaction. WeChat public platform has the property of the real-time and fast interaction which web information&#

14、160;platforms and traditional management systems lose. However, how to hold a variety of users' demand and ensure the informat

15、ion security are the challenges that the public platform development is facing. In this paper, we design and develop a W

16、eChat public pl</p><p>  Keywords:campus information technology, Wechat Masses Platform, information publishing on mobile device</p><p><b>  第一章、引言</b></p><p>

17、  1.1 研究背景和意義</p><p>  1.1.1 微信公共平臺當前背景</p><p>  近幾年來,智能手機的出現(xiàn)改變了傳統(tǒng)信息發(fā)布和傳播的方式,成為人們?nèi)粘I钪心軌蚩焖俦憬莸孬@取信息,相互交流的重要工具。隨著智能手機的普及以及用戶的快速增長,傳統(tǒng)信息發(fā)布平臺也紛紛向手機端進行遷移,以獲取更高的使用率和信息發(fā)布效率。然而信息發(fā)布平臺在不同的手機端的兼容性經(jīng)常令開發(fā)者苦惱[1]

18、。</p><p>  圖1.1 微信用戶數(shù)增長折線圖</p><p>  微信是騰訊公司于2011年開發(fā)的一款免費網(wǎng)絡社交軟件,其結(jié)合QQ及手機通訊錄建立好友關(guān)聯(lián)的營銷方式在短時間內(nèi)迅速拉攏了千萬甚至上億的注冊用戶。龐大的用戶基礎(chǔ)吸引了大量商家,媒體,企業(yè),高校等組織機構(gòu)的關(guān)注與加入。微信提供的公共平臺服務及開發(fā)功能,更是構(gòu)建出一個線上線下能夠良好交互的自媒體平臺。12年8月起,華中科技

19、大學推出國內(nèi)首個高校官方公共平臺[2],此后公共平臺也受到越來越多的高校所青睞。</p><p>  作為一個新興的平臺,與傳統(tǒng)的網(wǎng)站式信息發(fā)布平臺不同,微信公共平臺更加注重的是信息的及時更新,簡潔的操作以及快速的交互。如何利用有限的交互方式保證傳統(tǒng)信息平臺的有效性,并不只是依靠預設(shè)內(nèi)容進行有限的問答式查詢。這為一個高效的平臺開發(fā)帶來了挑戰(zhàn)。同時如何保證數(shù)據(jù)的實時更新與同步,以及如何保證用戶信息的隱私和安全性也是

20、高校公共平臺的開發(fā)中需要注意的問題。</p><p>  1.1.2 微信公共平臺應用價值和意義</p><p>  微信公共平臺利用智能手機的優(yōu)勢,使用戶可以隨時隨地對信息及時進行實時查詢以及更新。相比于網(wǎng)頁信息發(fā)布平臺和傳統(tǒng)教學管理系統(tǒng),微信公共平臺操作更加簡便,也方便實時交互。對于課表、作業(yè)、成績、通知等關(guān)鍵信息,教師和學生都可以通過簡單的幾個關(guān)鍵字進行隨時隨地地查詢。在智能手機普及

21、的現(xiàn)在,高校微信公共平臺有著無與倫比的優(yōu)勢以及廣闊地應用前景。</p><p>  同時,微信本身作為一個便捷而廣泛使用的社交工具,目前使用已經(jīng)非常普及。即使未使用的用戶也可以通過手機號或QQ號進行快速注冊與綁定。相比于傳統(tǒng)教學管理系統(tǒng),省去了繁雜的注冊步驟;對比同類的管理系統(tǒng)APP,盡管微信公公平設(shè)計上需要結(jié)合微信本身的特點,缺乏了一定的設(shè)計靈活性和專業(yè)性,然而在推廣性方面,一個限定了面向人群和內(nèi)容的專業(yè)化教學

22、用APP并不能達到良好的推廣效果,同時為了滿足多平臺手機的需要,專業(yè)APP在開發(fā)代價上遠遠超過了利用微信公共平臺進行開發(fā)的方式。</p><p>  1.2 主要內(nèi)容、預期成果以及組織結(jié)構(gòu)</p><p>  1.2.1 研究的主要內(nèi)容</p><p>  論文將主要探討如何為教學平臺中的學生查詢系統(tǒng)設(shè)計微信公共平臺接口。用戶可以通過發(fā)送關(guān)鍵詞到微信公共平臺,微信公

23、共平臺通過關(guān)鍵詞實現(xiàn)對數(shù)據(jù)庫的操作,然后將結(jié)果返回給用戶。在這種簡單而基礎(chǔ)的交互方式之上,微信公共平臺的開發(fā)要提供簡潔但又全面的功能,包括查詢、修改、新增、刪除等,即要提供可以將用戶需求準確而快速地進行轉(zhuǎn)化的接口功能。</p><p>  在保證操作的及時和準確性之上,用戶數(shù)據(jù)的隱私性和安全性也是需要關(guān)注的重點。用戶無論老師或者學生,都應只能對自己的數(shù)據(jù)進行查詢和更新,不能越權(quán)進行操作;同時用戶的信息在傳輸?shù)倪^程

24、中,也需要保證信息的安全性,包括信息的完整性及不被竊取。</p><p>  1.2.2 研究的預期成果</p><p>  論文預期實現(xiàn)教師和學生兩種用戶組的區(qū)別,在進行數(shù)據(jù)庫操作時分別實現(xiàn)不同的功能,包括查詢、修改、新增、刪除等,同時實現(xiàn)通過點擊自定義菜單實現(xiàn)具體的菜單功能。</p><p>  教師可以進行資料查閱、教學信息發(fā)布、群發(fā)消息等操作;</p&

25、gt;<p>  學生可以進行資料查閱、個人信息更新等操作。</p><p>  1.2.3 論文組織結(jié)構(gòu)</p><p><b>  文章組織結(jié)構(gòu)如下:</b></p><p>  引言,主要講述微信公共平臺的開發(fā)背景和開發(fā)意義;</p><p>  相關(guān)理論和技術(shù),主要講述在開發(fā)過程中所用到的開發(fā)工具和

26、開發(fā)技術(shù);</p><p>  需求分析和程序設(shè)計框架,主要講述在開發(fā)之前所做的包括用戶需求分析、程序設(shè)計流程等內(nèi)容的準備工作;</p><p>  設(shè)計與實現(xiàn),主要講述了微信公共平臺接口的實現(xiàn)過程;</p><p>  結(jié)果展示,主要內(nèi)容為開發(fā)完成的微信公共平臺接口的使用效果截圖;</p><p>  ,總結(jié)與進一步工作,主要內(nèi)容為總結(jié)開發(fā)

27、過程中的經(jīng)驗和不足。</p><p>  第二章、相關(guān)理論和技術(shù)</p><p>  2.1 現(xiàn)有微信公共平臺技術(shù)</p><p>  微信公共平臺于2012年8月23日正式推出,任何組織和團體都可以申請公共賬號[3],曾命名為“平臺媒體”和“媒體平臺”,在2013年微信升級的同時,微信公共平臺也跟隨升級,分為服務號和訂閱號兩種,兩種公共平臺賬號的權(quán)限和應用范圍都有

28、所不同。其中服務號的主旨是為用戶提供服務,僅為企業(yè)組織提供申請;訂閱號的主旨則是為用戶發(fā)布信息,個人和企業(yè)組織都可以申請訂閱號。并且只有企業(yè)組織申請的公共賬號才可以進行認證。在實際使用上,服務號提供自定義菜單、少量群發(fā)消息等功能,訂閱號提供大量群發(fā)消息的權(quán)限。</p><p>  微信同樣提供開發(fā)微信公共平臺接口接入第三方服務器或者新浪云的流程。第三方服務器或新浪云通過在微信公共平臺開發(fā)者模式下提交網(wǎng)址和密鑰的方

29、式提出接入申請,微信服務器訪問第三方服務器網(wǎng)址并向服務器發(fā)送驗證信息,第三方服務器將驗證信息返回即可通過驗證。通過驗證后,微信公共平臺接口需要被調(diào)用時,微信服務器就向第三方服務器網(wǎng)址發(fā)送封裝后的xml消息,微信公共平臺接口接收到消息后再進行消息處理,返回的消息仍舊以xml格式發(fā)送給微信服務器。</p><p>  圖2.1 微信JS-SDK調(diào)用流程</p><p>  此外,微信還提供基于

30、微信內(nèi)的網(wǎng)頁開發(fā)工具包JS-SDK,通過使用微信JS-SDK,網(wǎng)頁開發(fā)者可借助微信高效地使用拍照、選圖、語音、位置等手機系統(tǒng)的能力,同時可以直接使用微信分享、掃一掃、卡券、支付等微信特有的能力。</p><p>  2.2 SQL Server數(shù)據(jù)庫技術(shù)</p><p>  在計算機的各種不同的應用領(lǐng)域中,數(shù)據(jù)庫技術(shù)非常的重要,它產(chǎn)生于20世紀60年代末至70年代初,其主要目的是高效地存取

31、和管理海量的數(shù)據(jù)資源。數(shù)據(jù)庫技術(shù)主要研究如何存儲,使用和管理數(shù)據(jù)?,F(xiàn)如今,數(shù)據(jù)庫技術(shù)已經(jīng)成為計算機發(fā)展中最不可或缺的方向之一。包括微信公共平臺接口在內(nèi)的涉及用戶信息等數(shù)據(jù)的程序開發(fā)都要使用數(shù)據(jù)庫技術(shù)。SQL Server是微軟公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點,采用單進程,、多線程技術(shù) ,。 在核心層實現(xiàn)數(shù)據(jù)完整性控制, 具有很強的安全保密性, ,成為目前流行的數(shù)據(jù)庫應用系統(tǒng)的開發(fā)工具之

32、一。在與同為微軟公司開發(fā)的C#/asp.net搭配時有著天然的優(yōu)勢。</p><p>  2.3 C#技術(shù)與asp.net</p><p>  C#是微軟公司發(fā)布的一種面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,它基于.net框架,不但繼承了C語言和C++的優(yōu)點,還能以.net框架作為基礎(chǔ),實現(xiàn)快速開發(fā),在進行面向?qū)ο蟮木幊虝r有極大的便利性和優(yōu)越性。而asp.net是.NET Framework的一部分,

33、是微軟公司提供的的一種開發(fā)Web應用程序的類庫,同時還能提供網(wǎng)頁的處理與擴充、Web service框架等工作。asp.net在使用時簡單易學,使網(wǎng)站的大部分任務例如消息流動、網(wǎng)站配置等都變得十分簡單。它使用多種程序設(shè)計語言來實現(xiàn)三層體系結(jié)構(gòu)中的業(yè)務邏輯層設(shè)計,即使用ASP. N ET動態(tài)服務器頁面成表示層的設(shè)計[4]。</p><p>  圖2.2 asp.net運行架構(gòu)圖</p><p&g

34、t;  . NET開發(fā)平臺創(chuàng)建的應用程序在通用語言運行環(huán)境底層CLR(Common Language Runtime ,簡稱CLR)的控制下運行。它用來加載應用程序,確認它們可以沒有錯誤地執(zhí)行,進行相應的安全許可驗證,執(zhí)行應用程序,然后在運行完成后將它們清除。類庫集提供了使應用程序可以讀寫XML數(shù)據(jù)、在因特網(wǎng)上通信、訪問數(shù)據(jù)庫等類[5]。這些類都是實現(xiàn)微信公共平臺接口所必須的。</p><p>  第三章、需求分

35、析與程序設(shè)計框架</p><p>  3.1 微信公共平臺用戶需求分析</p><p>  高校教學用微信公共平臺作為學校教學輔助的一個載體,用戶主要是兩部分:一部分是使用公共平臺獲取教學信息的學生,一部分是使用公共平臺管理和發(fā)布教學信息的教師。對于兩種用戶而言,使用微信公共平臺主要的目的是實現(xiàn)教學信息,包括作業(yè)、成績、書籍、通知等的相互交流。因此,保證查看數(shù)據(jù)的流程快速暢通是微信公共平臺

36、的關(guān)鍵之處。而微信公共平臺自身的優(yōu)點是操作簡單,可以隨時隨地使用,比起登陸網(wǎng)頁版數(shù)據(jù)庫或者短信通知等方式成本更低,速度更快。因此,保證微信公共平臺的簡單、快捷也是不容忽視的一個方面。</p><p>  圖3.1 用戶需求分析圖</p><p>  對于學生用戶而言,使用微信公共平臺查閱的信息繁多,包括平時作業(yè),課程成績、參考書籍等,同時,因為不同學生選擇的課程可能不同,所以要保證學生用戶

37、查詢到的信息既沒有多余重復,也沒有錯誤遺漏;同時,學生用戶也應該能夠修改自己的個人信息,保證能夠及時準確的更新個人信息;最后學生用戶也要能夠及時接收到教師用戶發(fā)送的群消息。</p><p>  對于教師用戶而言,使用微信公共平臺管理的課程信息與學生信息僅限于自己所負責的科目,因此要保證教師用戶能夠自由操作自己負責的科目信息,無法操作不屬于自己的科目。此外,教師用戶對于群發(fā)消息的功能需求也很大,所以也要保證教師用戶

38、能夠簡單迅速的發(fā)送群消息。</p><p>  3.2 微信公共平臺接口程序設(shè)計框架</p><p>  微信公共平臺接口的設(shè)計要根據(jù)微信公共平臺的消息處理原理來設(shè)計。騰訊公司在微信開發(fā)上提供了通用的數(shù)據(jù)規(guī)范和驗證流程,對于自定義接口的開發(fā)者來說,不需要花費太多精力,只需要遵循對接規(guī)范就可以跟微信服務器實現(xiàn)信息交互,從而可以將開發(fā)重點集中在自定義接口的功能實現(xiàn)上。</p>&

39、lt;p>  微信公共平臺的消息處理包括用戶終端、微信服務器、公共平臺三個模塊,由用戶終端(手機或者平板等設(shè)備上的app)向微信服務器發(fā)起請求,然后微信服務器將請求轉(zhuǎn)發(fā)給公共平臺,公共平臺接收到消息后將消息傳遞到自定義接口對用戶的請求進行分析處理,處理之后將結(jié)果以同樣的消息格式返回給服務器,服務器再將消息轉(zhuǎn)發(fā)給用戶終端。</p><p>  圖3.2 微信公共平臺信息流程圖</p><p

40、>  在整個消息處理過程中所使用的協(xié)議為http[6],消息在模塊之間轉(zhuǎn)發(fā)的格式為xml。微信消息的xml格式樣例(文本)如下:</p><p><b>  <xml> </b></p><p>  <ToUserName><![CDATA[toUserName]]></ToUserName> </p>

41、<p>  <FromUserName><![CDATA[fromUserName]]></FromUserName> </p><p>  <CreateTime>1338841560</CreateTime> </p><p>  <MsgType><![CDATA[text]]><

42、/MsgType> </p><p>  <Content><![CDATA[微信文本消息]]></Content> </p><p>  <MsgId>1234567890123456</MsgId></p><p><b>  </xml></b></p&g

43、t;<p>  其中,ToUserName字段記錄的是接收方的微信號,F(xiàn)romUserName字段記錄的是發(fā)送方的微信號;CreatTime字段記錄的是這條微信消息的創(chuàng)建時間;MsgType字段記錄的是微信消息的格式,例如text(文本)、image(圖片)、link(超鏈接)等等;Content字段記錄的則是文本消息的主體內(nèi)容;MsgId字段記錄的是消息id。</p><p>  當接口接收到xm

44、l信息并且通過ACCESS_TOKEN驗證之后,將會解析xml,獲取信息里包含的內(nèi)容(Content字段),從而進行進一步操作。</p><p>  微信公共平臺要實現(xiàn)自己的功能需求,自定義接口的消息處理是主要部分。符合上面所說的數(shù)據(jù)模式和流程規(guī)范的接口才能夠正常的使用,所以在開發(fā)自定義接口的時候,要嚴格遵循微信提供的規(guī)范。自定義接口的消息處理模式如下:</p><p>  請求接口。用戶

45、發(fā)送消息給微信服務器,微信服務器將xml格式的消息以post方式發(fā)送給公共平臺接口,攜帶發(fā)送者信息、接收者信息、消息類型、消息內(nèi)容等幾個方面,接口接收到消息,并反饋給微信服務器;</p><p>  業(yè)務分析。微信公共平臺接口根據(jù)從服務器端接收到的消息類型和消息內(nèi)容的不同,分析消息所請求的服務類型,然后將獲取到的消息內(nèi)容轉(zhuǎn)至自定義接口中不同的處理函數(shù)中進行具體的業(yè)務處理;</p><p>

46、  業(yè)務處理。自定義接口對具體的內(nèi)容進行處理,通過包括連接數(shù)據(jù)庫獲取數(shù)據(jù)庫信息、連接微信服務器獲取服務器信息等在內(nèi)的方法得到用戶需要的信息內(nèi)容,然后將反饋信息轉(zhuǎn)至發(fā)送接口;</p><p>  發(fā)送接口。將需要反饋給用戶的信息進行處理和修飾,然后轉(zhuǎn)成符合格式的xml信息,發(fā)送到微信服務器。微信服務器接收之后根據(jù)xml信息中包含的接收用戶信息將內(nèi)容轉(zhuǎn)發(fā)給用戶。</p><p><b&g

47、t;  第四章、設(shè)計與實現(xiàn)</b></p><p>  4.1 微信公共平臺接口設(shè)計</p><p>  4.1.1 接口總體功能概述</p><p>  實現(xiàn)學生用戶與教師用戶的微信賬號綁定;</p><p>  實現(xiàn)學生用戶與教師用戶通過發(fā)送關(guān)鍵詞查詢數(shù)據(jù)庫;</p><p>  實現(xiàn)學生用戶通過發(fā)送關(guān)

48、鍵詞修改個人信息;</p><p>  實現(xiàn)教師用戶通過發(fā)送關(guān)鍵詞更新數(shù)據(jù)庫;</p><p>  實現(xiàn)教師用戶通過發(fā)送關(guān)鍵詞群發(fā)消息,并且獲得消息接收人數(shù)的反饋;</p><p>  實現(xiàn)點擊自定義菜單查看幫助和個人信息;</p><p>  實現(xiàn)點擊自定義菜單跳轉(zhuǎn)到其他網(wǎng)頁。</p><p>  4.1.2 接口功

49、能設(shè)計分析</p><p>  在設(shè)計具體的功能模塊之前,首先要設(shè)計幾個基本的操作模塊,其中包括消息處理模塊、數(shù)據(jù)庫連接模塊、消息發(fā)送模塊。這幾個基礎(chǔ)模塊設(shè)計完成后,在實現(xiàn)具體的功能模塊時就可以直接調(diào)用,極大地減少了邏輯復雜度,也加快了程序處理的速度。</p><p>  消息初處理模塊是為了將用戶發(fā)起的xml格式的請求轉(zhuǎn)換成可直接操作的對象實例,以供之后的接口功能實現(xiàn)處理。轉(zhuǎn)換為具體的對

50、象實例后,用戶發(fā)起的請求中所包含的元素全都轉(zhuǎn)換為對象實例的參數(shù),而利用面向?qū)ο蟪绦蛟O(shè)計中類的繼承的思想,不同格式的消息分別為繼承了同一個消息父類的子類,根據(jù)消息格式的不同包含不同的參數(shù),在程序模塊之間的調(diào)用和傳遞也會更加的方便。</p><p>  數(shù)據(jù)庫連接模塊是將連接數(shù)據(jù)庫返回數(shù)據(jù)的過程封裝,使之后每次要連接數(shù)據(jù)庫的時候,都直接調(diào)用數(shù)據(jù)庫連接模塊即可。在數(shù)據(jù)庫連接模塊中封裝建立數(shù)據(jù)庫連接和執(zhí)行SQL語句的程序

51、代碼,最后將查詢得到的數(shù)據(jù)或者插入更新影響的行數(shù)返回,以供之后的功能實現(xiàn)。</p><p>  消息發(fā)送模塊是為了快速有效的將需要反饋給用戶的內(nèi)容轉(zhuǎn)換成符合微信數(shù)據(jù)規(guī)范的xml消息而設(shè)置。消息發(fā)送模塊中包含了文本消息發(fā)送、圖片消息發(fā)送、超鏈接消息發(fā)送等等多個子模塊,為的是適應不同格式的數(shù)據(jù)規(guī)范。調(diào)用消息發(fā)送模塊時,將必須的參數(shù)內(nèi)容傳遞到消息發(fā)送函數(shù),之后經(jīng)過處理將參數(shù)轉(zhuǎn)變?yōu)閤ml文件,再調(diào)用微信官方提供的消息傳遞

52、接口,將xml消息發(fā)送到微信服務器。</p><p>  在以上幾個基本模塊的基礎(chǔ)上,分別實現(xiàn)具體的功能模塊,即對消息初處理模塊傳遞過來的對象實例進行判斷,根據(jù)關(guān)鍵詞確定用戶請求的功能,之后根據(jù)請求功能的不同,涉及數(shù)據(jù)庫操作時編寫標準SQL語句,然后調(diào)用數(shù)據(jù)庫連接模塊,得到返回的數(shù)據(jù)后將數(shù)據(jù)處理成簡單、清晰、用戶體驗優(yōu)良的文本等格式的消息,然后交由消息發(fā)送模塊發(fā)送至微信服務器。</p><p&

53、gt;  4.2 微信公共平臺接口實現(xiàn)</p><p>  4.2.1 微信公共平臺搭建</p><p>  4.2.1.1 注冊微信公共平臺賬號</p><p>  搭建公共平臺一開始要申請一個微信公共平臺的賬號。微信公共平臺的注冊網(wǎng)址是http://mp.weixin.com。具體注冊過程對照注冊網(wǎng)站上的介紹和自己的功能需求進行,需要身份驗證等其他工序。<

54、/p><p>  4.2.1.2 啟用開發(fā)者模式</p><p>  微信公共平臺有編輯模式和開發(fā)者模式兩種,要開發(fā)自定義接口,就要開啟開發(fā)者模式。進入開發(fā)者模式之后要填寫幾個必要配置,包括TOKEN和服務器地址(URL)和EncordingASEKey。</p><p>  TOKEN為驗證接口安全性所用的數(shù)字簽名,可任意填寫;服務器地址即為處理微信消息和事件的接口地

55、址,C#&asp.net開發(fā)即使用接口的default.aspx的服務器地址;EncordingASEKey是加密消息體所用的密鑰,可手動填寫或自動生成。</p><p>  圖4.1 啟用開發(fā)者模式</p><p>  4.2.1.3 驗證服務器地址有效性</p><p>  首次提交信息時,微信會驗證提交的服務器地址的有效性,將發(fā)送GET請求到填寫的服務

56、器地址上,請求中包含四個參數(shù):signature(微信加密簽名)、timestamp(時間戳)、nonce(隨機數(shù))、echostr(隨機字符串)。</p><p>  首先將token、timestamp、nonce三個參數(shù)進行字典序排序,然后將三個參數(shù)字符串拼接成一個字符串進行sha1加密,將獲得加密后的字符串可與signature對比,標識該請求來源于微信,然后將echostr字符串使用Response.W

57、rite函數(shù)原樣返回,微信驗證成功則代表接入成功。之后就進行正式的接口開發(fā)。</p><p>  4.2.2 數(shù)據(jù)庫連接</p><p>  C#連接SQL SERVER有多種方法,為了達到性能最優(yōu)的效果,要根據(jù)微信連接數(shù)據(jù)庫的特點來選擇。在微信公共平臺接口開發(fā)中,進行數(shù)據(jù)庫連接的特點有:建立的數(shù)據(jù)庫連接是一次性的,即此次讀取數(shù)據(jù)庫與下次讀取數(shù)據(jù)庫之間是完全獨立的,因此,建立一次數(shù)據(jù)庫連接

58、并且得到需要查詢的數(shù)據(jù)之后,即可立即關(guān)閉數(shù)據(jù)庫連接,不需要保存連接以供下一次操作;因為用戶只能夠查詢或者更改自己的數(shù)據(jù),所以無論是數(shù)據(jù)庫的讀取還是寫入,涉及的數(shù)據(jù)量都很小,因為對數(shù)據(jù)的操作比較小,多以簡單的查詢、更新為主,不需要犧牲內(nèi)存換取更快的連接速度;微信公共平臺接口運行在服務器端,不涉及大數(shù)據(jù)操作時,應以運行速度為第一優(yōu)先,就用戶體驗而言,使用微信公共平臺進行查詢等操作時,查詢速度為第一要務。</p><p&g

59、t;  因為以上幾個特點,選擇連接式連接數(shù)據(jù)庫,即使用SqlConnection類建立數(shù)據(jù)庫連接,然后使用SqlCommand類執(zhí)行sql命令,將執(zhí)行命令后得到的結(jié)果(查詢得到的數(shù)據(jù)或更新影響的行數(shù))返回給其他類,隨后關(guān)閉數(shù)據(jù)庫連接。這種方法的好處是使用標準化sql語句,對內(nèi)存的占用較小,雖然每進行一次數(shù)據(jù)庫連接就要占用帶寬,但是因為得到數(shù)據(jù)之后馬上關(guān)閉連接,所以實際上并不會造成資源浪費。而另一種使用SQLAdapter類的連接方法,基

60、于緩存技術(shù),即將數(shù)據(jù)操作在內(nèi)存中完成之后提交到數(shù)據(jù)庫,犧牲內(nèi)存換取連接速度,在大數(shù)據(jù)操作時比較合適,微信公共平臺接口這種操作小數(shù)據(jù)量的Web應用,還是SqlConnection類加SqlCommand類的連接方式更合適。</p><p><b>  示例代碼如下:</b></p><p>  public SqlDataReader GetDataReader(str

61、ing query)</p><p><b>  {</b></p><p>  SqlConnection sqlcon = new SqlConnection("server=IP地址;uid=賬號;pwd=密碼;database=數(shù)據(jù)庫名");</p><p>  sqlcon.Open();</p>

62、<p>  SqlCommand sqlcmd = new SqlCommand(query,sqlcon);</p><p>  SqlDataReader sr = sqlcmd.ExecuteReader();</p><p>  sqlcon.Close();</p><p>  return sr;</p><p><

63、;b>  }</b></p><p>  之后每次需要讀取數(shù)據(jù)庫操作時,就調(diào)用GetDataReader函數(shù)。進行插入或者更新操作需要返回的值應該是整型數(shù),為執(zhí)行ExecuteNonQuery函數(shù)的返回值,將GetDataReader稍加改寫,就可以得到用于執(zhí)行插入或者更新的新函數(shù)了。</p><p>  盡管高校教學用微信公共平臺連接的是已有的數(shù)據(jù)庫,但是為了適應部分新

64、的需求,仍然需要增加部分內(nèi)容。數(shù)據(jù)庫中需要查看和修改的數(shù)據(jù)已經(jīng)十分完整,需要添加的是用戶賬號相關(guān)的內(nèi)容。對于學生用戶而言,添加一列微信號的數(shù)據(jù)位,使公共平臺應用后能夠綁定用戶微信號;對于教師用戶而言,因之前沒有教師賬號的表,所以添加一個新的教師信息表,主要內(nèi)容為教師工號、教師姓名、教師科目、密碼、微信號,以供教師綁定微信號。</p><p>  調(diào)整過后的數(shù)據(jù)庫關(guān)系模型如下圖:</p><p&

65、gt;  圖4.2 數(shù)據(jù)庫結(jié)構(gòu)圖</p><p>  4.2.3 具體功能模塊實現(xiàn)</p><p>  4.2.3.1 ACCESS_TOKEN使用方式</p><p>  ACCESS_TOKEN是微信調(diào)用通用接口的通行證,必須通過ACCESS_TOKEN驗證才能調(diào)用通用接口。驗證ACCESS_TOKEN的方法是在向微信服務器發(fā)起調(diào)用通用接口請求時,將ACCESS

66、_TOKEN一起發(fā)送到微信服務器。通用接口是微信已經(jīng)定義好的一些常用接口,包括更改用戶所在分組、文件上傳等等。調(diào)用微信已經(jīng)規(guī)定好的通用接口的好處是一些涉及微信服務器端的操作減少代碼失誤的可能,還可以減少編程的工作量。</p><p>  獲取ACCESS_TOKEN的方法是以http協(xié)議攜帶幾個參數(shù)發(fā)送get請求到固定網(wǎng)址(https://api.weixin.qq.com/cgi-bin/token?grant

67、_type={0}&appid={1}&secret={2}),參數(shù)通過驗證之后,微信服務器會返回一個JSON數(shù)據(jù)包給公共平臺接口,格式為{“access_token”:”ACCESS_TOKEN”,”expires_in”:7200}。其中access_token就是獲取到的憑證,expires_in為憑證的有效時間,單位是秒。得到數(shù)據(jù)包之后進行解析,之后每次調(diào)用通用接口都需要使用這個ACCESS_TOKEN進行驗證[

68、7]。</p><p>  圖4.3 驗證ACCESS_TOKEN流程圖</p><p>  ACCESS_TOKEN是調(diào)用通用接口的通行證,而一個ACCESS_TOKEN的有效時間是兩小時,在憑證有效期內(nèi)不需要重復獲取,重復獲取會導致之前獲取的憑證失效。所以為了保證通用接口能夠正常的調(diào)用,必須保證ACCESS_TOKEN通過驗證。在進行ACCESS_TOKEN驗證的時候,有兩種使用方法,

69、一種是每次進行ACCESS_TOKEN驗證都重新獲取一次,這種方法的好處是操作簡單,運行速度快,占用內(nèi)存較小,缺點是ACCESS_TOKEN每日獲取次數(shù)有上限,頻繁獲取可能會導致ACCESS_TOKEN不可用;另一種方法是將獲取到的ACCESS_TOKEN儲存在數(shù)據(jù)庫或者臨時文件中,保證獲取到的憑證能最大效率的利用,缺點是每次調(diào)用ACCESS_TOKEN都要訪問數(shù)據(jù)庫或者臨時文件,速度慢且程序復雜。</p><p&g

70、t;  兩種方法適用范圍不同,后者適用于訪問人數(shù)眾多、調(diào)用通用接口頻繁、以主動推送消息為主的微信公共平臺(例如媒體新聞訂閱號),前者適用于以特定功能為主導、用戶群體特殊的公共平臺(例如網(wǎng)店微信平臺支付)。以高校教學為目的的微信公共平臺的用戶群體主要為學生,功能以查詢教學信息、發(fā)布教學通知為主,公共平臺主動推送消息的頻率低,調(diào)用通用接口的頻率不高,可以選擇第一種方式。</p><p>  4.2.3.2 用戶請求消

71、息初處理與分配</p><p>  因為所有的用戶請求都是以http post方式發(fā)送到公共平臺的,而xml格式的消息對于操作來說有極大的不便,因此,接收到用戶發(fā)送過來的xml消息后,首先要對xml消息進行初步處理,將xml消息轉(zhuǎn)化為自定義的消息對象,才能進行進一步的分析反饋。將xml消息轉(zhuǎn)換成消息對象的優(yōu)點是充分利用面向?qū)ο蟮乃枷氲奶攸c,將對消息的判斷和處理全都轉(zhuǎn)變?yōu)閷ο嶓w對象的特征的判斷和處理,一方面在操

72、作時保證更加快捷和清晰,另一方面對象在不同模塊之間的傳遞也變得更為簡單。</p><p>  圖4.4 用戶請求消息初處理流程圖</p><p>  首先聲明一個ReceiveMessageBase的基類,包含所有類型的消息所含的共同變量:MsgType(消息類型)、FromUserName(發(fā)送方id)、ToUserName(接收方id)、CreatTime(創(chuàng)建時間)、MsgBody(

73、消息原文)等。其中MsgType為枚舉類型,包含text(文本)、imge(圖片)、voice(聲音)、link(超鏈接)、event(事件)等類型。創(chuàng)建基類的目的是將所有消息類型中共通的內(nèi)容提前定義,在之后繼承基類的子類中不需要重復聲明共通的變量,在之后進行修改和添加時也變得更為簡單。</p><p>  然后根據(jù)不同的消息類型,分別聲明繼承了ReceiveMessageBase類的子類,增加具體類型所對應的變

74、量。例如文本消息類TextReceiveMessage類在繼承的同時,增加了Content變量,儲存文本消息的消息內(nèi)容。</p><p>  接收到微信服務器發(fā)來的xml消息后,首先找到MsgType節(jié)點,判斷消息類型,然后聲明對應的對象,將解析后的xml節(jié)點內(nèi)容分別賦給對應的變量。為了之后的函數(shù)調(diào)用操作方便,將消息中最主要的內(nèi)容(文本消息中的消息文本、圖片消息中的圖片url等)全部存放在MsgBody變量中。之

75、后將完成的消息對象傳遞給下一個模塊,詳細的消息處理都對這個對象進行。</p><p>  4.2.3.3 用戶微信賬號綁定與解除綁定</p><p>  用戶使用微信公共平臺的功能之前,首先要將微信賬號與數(shù)據(jù)庫中的學生信息或者教師信息綁定。綁定學生信息的用戶才能使用公共平臺的功能,保證了數(shù)據(jù)庫中信息的安全性和用戶的唯一性,即每個學生只能使用一個微信賬號來訪問公共平臺,每個微信賬號也只能訪問

76、自己的數(shù)據(jù),無法查閱其他學生的資料;而教師類用戶可以對數(shù)據(jù)庫中具體課程的數(shù)據(jù)進行增、刪、查、改的多種操作,因此在使用微信公共平臺的功能之前首先綁定賬號保證了數(shù)據(jù)的安全性。</p><p>  圖4.5 用戶賬號綁定流程圖</p><p>  因為綁定微信賬號需要提交學號/工號和密碼,所以選擇用戶發(fā)送文本消息方式進行綁定。當用戶發(fā)送“綁定/解綁 學號 密碼”形式的文本消息到公共平臺,公共平臺

77、接口即可接收到用戶發(fā)來的綁定請求,在將xml消息轉(zhuǎn)換成TextReceiveMessage消息對象的時候,就能執(zhí)行綁定操作了。</p><p>  xml信息中的Content節(jié)點即消息的主體內(nèi)容,在TextReceiveMessage對象中存放在string格式的MsgBody變量里。對這個變量進行字符串分割,分離得到“綁定/解綁”、“學號”和“密碼”三個字符串。對第一個字符串判定確保當前執(zhí)行的是賬號綁定(或解

78、除綁定)操作。賬號和密碼則用于與數(shù)據(jù)庫中信息相匹配。</p><p>  在綁定操作之前,首先在數(shù)據(jù)庫中查詢請求用戶的微信號是否存在,即是否已經(jīng)綁定到某個學號,若尚未綁定,則判斷請求消息中的學號是否已經(jīng)有微信號綁定,若沒有微信號綁定則判斷密碼是否正確。全部信息匹配完畢之后若沒有錯誤,則將請求用戶的微信號儲存在數(shù)據(jù)庫中,與對應學號綁定完畢;若綁定步驟中出現(xiàn)問題,則將具體問題的信息返回給請求用戶。</p>

79、<p>  解除綁定的操作類似,請求用戶發(fā)送來的學號、密碼、微信號必須與數(shù)據(jù)庫中的信息一一對應,之后將請求消息發(fā)來的學號對應的微信號清空,即解除綁定完畢。教師賬號和學生賬號的操作基本類同。</p><p>  4.2.3.4 用戶查詢資料</p><p>  綜合微信手機版的操作局限性與查詢數(shù)據(jù)類型的多樣化,用戶使用微信公共平臺查詢時,仍然是以發(fā)送文本消息的方式進行查詢。用戶

80、發(fā)送“查詢 內(nèi)容 附加條件(可省略)”的文本消息到公共平臺,經(jīng)過消息初處理之后,將得到的消息示例傳遞給業(yè)務處理模塊。</p><p>  圖4.6 用戶資料查詢流程圖</p><p>  在業(yè)務處理模塊,先使用split函數(shù)對消息實體內(nèi)容,即MsgBody變量中儲存的字符串以空格字符為界限進行切割處理,得到一個新的字符串。當判斷切割后的字符串數(shù)組中的第一個值為“查詢”時,即可進入查詢功能的

81、分支模塊。</p><p>  進入查詢模塊后,即可根據(jù)用戶請求中的查詢內(nèi)容和查詢條件,編寫SQL語句。若是用戶沒有提交查詢條件,則按照默認的查詢條件進行處理。編寫查詢語句時,直接使用用戶的微信號,也就是消息對象中的FromUserName作為關(guān)鍵的查詢條件。因此,使用查詢功能之前,必須先進行微信號綁定,才能確保查詢到的數(shù)據(jù)準確完整。將標準SQL語句傳遞到數(shù)據(jù)庫連接模塊,從數(shù)據(jù)庫返回SqlDataReader數(shù)據(jù)

82、之后,再對返回數(shù)據(jù)做進一步處理。</p><p>  根據(jù)查詢內(nèi)容的不同,對SqlDataReader數(shù)據(jù)的處理也不同。若查詢的數(shù)據(jù)是以行方式返回結(jié)果的,例如作業(yè)列表,則將返回數(shù)據(jù)按照順序排列即可;若查詢的數(shù)據(jù)是以列方式返回結(jié)果的,例如個人資料,則還要將列名所對應的中文含義與列中的信息一一匹配。將返回數(shù)據(jù)處理后得到一個字符串,最后在數(shù)據(jù)前后分別添加友好的客服內(nèi)容,即可將數(shù)據(jù)傳遞到文本消息發(fā)送模塊。對返回數(shù)據(jù)進行細

83、致處理的目的是提高用戶友好性,因為數(shù)據(jù)庫中儲存的數(shù)據(jù)的可讀性不高,直接返回給用戶會造成極大地閱讀困難,經(jīng)過處理后的數(shù)據(jù)則十分利于閱讀,方便用戶獲得有效信息和進一步操作。</p><p>  文本消息發(fā)送模塊是一個封裝好的xml生成類,將發(fā)送方與接收方的微信號(即用戶請求中的接收方與發(fā)送方)、發(fā)送內(nèi)容一起傳遞到發(fā)送模塊,即可生成符合微信數(shù)據(jù)規(guī)范的xml文件,然后提交到微信服務器,由微信服務器發(fā)送給微信用戶。作為xm

84、l節(jié)點中必須的消息生成時間,則在發(fā)送模塊中由時間生成函數(shù)自動生成。因為不同類型的微信消息的xml格式不同,所以發(fā)送圖片、圖文、音頻、視頻、超鏈接等格式的消息時,要調(diào)用其他的消息發(fā)送模塊。所有消息發(fā)送模塊可以被隨意調(diào)用,保證其他業(yè)務消息發(fā)送時不必再考慮復雜的格式問題。</p><p>  4.2.3.5 教師用戶信息管理與群發(fā)消息</p><p>  為了保證信息的安全性,學生用戶大多數(shù)情況

85、下都只能使用查詢功能,只能修改自己的個人資料。而與學生用戶相對應的,教師用戶可以修改所負責的科目的課程信息、作業(yè)信息、成績表等等數(shù)據(jù),這些數(shù)據(jù)的插入和修改也可以通過微信公共平臺來實現(xiàn)。</p><p>  圖4.7 教師功能流程圖</p><p>  與學生用戶查詢類似,教師用戶綁定微信號之后,即可通過發(fā)送關(guān)鍵詞的方式操作公共平臺。發(fā)送“插入/修改 項目 值 條件(可省略)”的文本消息到微

86、信公共平臺,經(jīng)過消息初處理后,將MsgBody中的字符串切割,之后根據(jù)用戶請求的功能是插入或者修改分別轉(zhuǎn)至不同的功能模塊。轉(zhuǎn)移到具體的功能模塊后,再根據(jù)用戶附加的請求條件填寫SQL語句,調(diào)用數(shù)據(jù)庫連接模塊執(zhí)行SQL語句。</p><p>  執(zhí)行插入或者修改功能時,數(shù)據(jù)庫連接模塊將會返回SQL語句所影響的行數(shù),若返回行數(shù)是0,則證明插入數(shù)據(jù)失敗或者沒有符合修改條件的數(shù)據(jù)。將返回的影響行數(shù)包裝后回饋給用戶,即可使用

87、戶清晰地了解數(shù)據(jù)操作是否成功,若操作失敗會提醒用戶可能出現(xiàn)的問題,方便用戶進行修改。同時,用戶也可以再次發(fā)送查看的關(guān)鍵詞,來查看數(shù)據(jù)是否已經(jīng)更新到數(shù)據(jù)庫。</p><p>  對于教師用戶而言,發(fā)送群通知是經(jīng)常使用的一項功能,可以用來發(fā)送通知和公告,所以在微信公共平臺接口中向教師用戶提供群發(fā)消息的功能是必要的。教師用戶利用微信公共平臺發(fā)送群發(fā)消息的方法仍然是向微信公共平臺發(fā)送“群發(fā) 消息內(nèi)容”的文本信息,微信公共

88、平臺接收到經(jīng)過微信服務器轉(zhuǎn)發(fā)來的xml文件后,仍舊按照消息處理流程,將xml消息轉(zhuǎn)化為TextReceiveMessage對象,然后轉(zhuǎn)入文本消息處理模塊。在文本消息處理模塊,將MsgBody中的文本使用split函數(shù)切割后,得到一個字符串數(shù)組。當判斷字符串數(shù)組的第一個值為“群發(fā)”時,即可轉(zhuǎn)入群發(fā)消息模塊,進行群發(fā)消息的操作。</p><p>  在群發(fā)消息模塊,首先調(diào)用數(shù)據(jù)庫連接模塊,查詢發(fā)起群發(fā)請求的教師用戶的

89、姓名與教授的全部學生用戶的微信號,得到教師姓名后對教師發(fā)來的群發(fā)消息進行包裝,增加發(fā)起請求的教師用戶的姓名和發(fā)送時間。最后進入一個循環(huán),在循環(huán)中調(diào)用文本消息發(fā)送模塊,依次向數(shù)據(jù)庫連接模塊返回的學生用戶的微信號發(fā)送消息。消息全部發(fā)送完畢后,向發(fā)起請求的教師用戶回饋發(fā)送結(jié)果,包括是否發(fā)送成功以及接收信息的學生人數(shù)。</p><p>  4.2.3.6 自定義菜單事件響應</p><p>  微

90、信公共平臺提供自定義菜單的功能,使用自定義菜單在一定程度上擺脫了只能靠發(fā)送文字等待公共平臺反饋的互動方式,直接點擊菜單即可實現(xiàn)相關(guān)功能。將一些常用的功能轉(zhuǎn)換為自定義菜單,能夠?qū)崿F(xiàn)更好的用戶友好性,也節(jié)省了響應用戶請求的條件判斷程序。</p><p>  微信公共平臺的自定義菜單有click和view兩種觸發(fā)方式,前者為用戶點擊菜單時,向公共平臺發(fā)送一個事件消息,后者則是直接跳轉(zhuǎn)到事先確定的網(wǎng)址。兩者有不同的應用。

91、一般來說,在微信范疇內(nèi)的菜單事件或者需要提交部分數(shù)據(jù)的外網(wǎng)觸發(fā)事件多數(shù)以click方式進行,在代碼編寫時有更大的自由度和完善性;普通的外網(wǎng)觸發(fā)事件可以選擇view方式,比起click方式的跳轉(zhuǎn)連接,view方式更加快捷,減少了在服務器與公共平臺之間的消息交互和接口調(diào)用,缺點是自主性不足,局限性很大。</p><p>  菜單在使用之前首先要創(chuàng)建。創(chuàng)建菜單要在微信網(wǎng)頁版的開發(fā)者模式中執(zhí)行,使用微信提供的網(wǎng)頁工具,按

92、照規(guī)定的數(shù)據(jù)格式提交創(chuàng)建菜單的代碼,將菜單名、菜單類別(click或view)、菜單關(guān)鍵值(若是click類型的菜單則為菜單點擊事件的判別關(guān)鍵詞,若是view類型的菜單則為直接跳轉(zhuǎn)的網(wǎng)頁鏈接)。</p><p>  圖4.8 自定義菜單流程圖</p><p>  在高校教學微信公共平臺中,click方式的自定義菜單主要用于查看幫助和個人信息確認。點擊查看菜單,就會發(fā)送一個xml格式的事件信

93、息到微信公共平臺。經(jīng)過消息初處理后,xml消息會轉(zhuǎn)換為EventReceiveMessage類的消息對象,然后會轉(zhuǎn)入事件處理模塊。在事件處理模塊,根據(jù)用戶請求中的菜單關(guān)鍵值(仍然儲存在MsgBody中),判斷用戶點擊的具體菜單,從而實現(xiàn)用戶請求。若是點擊“幫助”菜單,則直接調(diào)用文本消息發(fā)送模塊,向用戶發(fā)送詳細的關(guān)于微信公共平臺的功能介紹與使用說明,方便用戶熟悉和使用;若是點擊“個人信息”菜單,則首先要調(diào)用數(shù)據(jù)庫連接模塊,在數(shù)據(jù)庫中查詢用

94、戶的個人信息,將返回結(jié)果進行修飾后,調(diào)用文本消息發(fā)送模塊將內(nèi)容發(fā)送給用戶。其他click類型的菜單響應流程均類似。</p><p>  View方式的自定義菜單則用來做快速連接,包括學院官網(wǎng)、教務處官網(wǎng)等超鏈接,方便用戶快速訪問。點擊view方式的菜單,向微信服務器直接發(fā)起請求,即可跳轉(zhuǎn)到具體網(wǎng)址,不需要經(jīng)過公共平臺,減少了程序運行時間和接口調(diào)用時間。</p><p>  第五章、總結(jié)與進

95、一步工作</p><p><b>  5.1 總結(jié)</b></p><p>  在當前信息交互頻繁的互聯(lián)網(wǎng)時代背景下,微信以其快捷、便利、迅速的特點,占據(jù)了信息傳播和交互的一個重要方面。而作為微信這個載體的一個重要應用,微信公共平臺在交互的實時性、快捷性等方面相比于論壇、貼吧等網(wǎng)頁信息平臺和傳統(tǒng)管理系統(tǒng)有著無與倫比的優(yōu)勢。本文所實現(xiàn)的面向高校師生的微信公共平臺,就是利

96、用微信公共平臺為載體,結(jié)合SQL server數(shù)據(jù)庫技術(shù),以為師生快速、便捷的提供實時的成績、課表、作業(yè)、通知等信息的查詢和更改操作為目的所設(shè)計的。面向高校教學的微信公共平臺,連接課程信息數(shù)據(jù)庫,當用戶需要查詢或者更新某些數(shù)據(jù)時,只需要發(fā)送對應的關(guān)鍵詞到微信公共平臺,微信公共平臺根據(jù)關(guān)鍵詞判斷用戶所需求的服務,之后在數(shù)據(jù)庫執(zhí)行相關(guān)操作,將結(jié)果處理之后返回給用戶。</p><p>  5.2 存在不足與改進方向&l

97、t;/p><p>  本次課題也存在一些不足之處:頻繁訪問數(shù)據(jù)庫容易給數(shù)據(jù)庫帶來負載。由于所有的操作都需要直接對數(shù)據(jù)庫進行操作,當并行用戶過多時,數(shù)據(jù)庫訪問和更新就成了系統(tǒng)瓶頸,由此可能帶來數(shù)據(jù)庫負載過大,信息反饋延誤等性能問題;視頻、音頻、菜單等消息互動方式?jīng)]有充分利用。盡管在結(jié)構(gòu)中設(shè)計了多種格式的消息類與消息發(fā)送模塊,但是在實際開發(fā)中并沒有充分利用。</p><p>  在之后的改進中,會

98、結(jié)合數(shù)據(jù)庫管理技術(shù)進一步完善微信公共平臺與數(shù)據(jù)庫之間的互動,同時也可以考慮進一步利用微信公共平臺的素材實現(xiàn)例如群發(fā)語音通知等更加強大的功能等。</p><p><b>  參考文獻</b></p><p>  [1][中]陸鋼,朱培軍,李慧云.等智能終端跨平臺應用開發(fā)技術(shù)研究[J].電信科學.2012</p><p>  [2][中]劉歡,盧蓓

99、蓉,陳穎.高校微信平臺簡潔之道[J].中國教育網(wǎng)絡,2013</p><p>  [3][中]魏超.微信的功能和屬性分析[J].《出版廣角》2014年12期,2014</p><p>  [4][美]Fabio Claudio Ferracchiati ,Jay Glynn.毛堯飛譯.NET數(shù)據(jù)服務C#高級編程[ M].北京:清華大學出版社,2002.</p><p&g

100、t;  [5][美]Dan Rahmel.天宏工作室譯.使用Visual Studio 6開發(fā)Web數(shù)據(jù)庫應用程序[M].北京:清華大學出版社,2002.</p><p>  [6][美]Miller T H ,BERGER D W.Totally Integrated Enterprises[M].New York: St.Lucie Press,2001.</p><p>  [7][

101、中]微信公共平臺開發(fā)者文檔.http://mp.weixin.qq.com/wiki/home/index.html.2015</p><p><b>  致謝</b></p><p>  本人的學位論文是在我的導師蒲鵬老師的認真指導和耐心幫助下完成的。蒲老師嚴肅的科學態(tài)度,風趣的交流方式,嚴謹?shù)闹螌W精神,親切的關(guān)懷都深深地感染著我。從課題的選擇到程序的開發(fā)再到項目的

102、最終完成,蒲老師都始終給予我耐心、認真的指導和幫助。在此謹向蒲老師致以誠摯的謝意和崇高的敬意。</p><p>  在此,還要感謝一起度過大學生活、給予我團結(jié)幫助的同學和給予我知識水平及治學精神的老師,正是由于他們的幫助和支持,我才能克服一個一個的困難,直至本文的順利完成。</p><p>  從開始進入課題到論文的順利完成,許多可敬的師長、同學、朋友給了我很多的幫助,在這里請接受我誠摯的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論