曲廣強,關曉輝,王建元,楊永清,孫 悅
(1.東北電力大學 教務處,吉林 吉林 132012;2.東北電力大學 信息化辦公室,吉林 吉林 132012)
基于微信公眾平臺的教務信息查詢系統(tǒng)設計與實現(xiàn)
曲廣強1,關曉輝1,王建元2,楊永清1,孫悅1
(1.東北電力大學 教務處,吉林 吉林 132012;2.東北電力大學 信息化辦公室,吉林 吉林 132012)
摘要:騰訊公司在微信的基礎上增加了微信公眾平臺功能模塊,通過這一平臺,個人和企業(yè)都可以打造一個微信的公眾號,并實現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動。本文以微信公眾平臺開發(fā)為基礎,利用PHP,WebService等技術,完成了基于微信公眾平臺的教務信息查詢系統(tǒng)的設計與實現(xiàn)。文中對于開發(fā)過程中所遇到的微信公眾平臺接口、數據源問題、圖文模式回復功能等進行重點的闡述。
關鍵詞:微信公眾平臺;WebService;頁面解析
在騰訊公司推出微信公眾平臺后,媒體和個人都可以通過自己的平臺,發(fā)布自己的信息和資訊,并且信息資訊除了文字以外,還可以是語音和視頻的富媒體形式。微信擁有了公眾平臺以后,用戶除了接收朋友信息以外,還可以接收跟手機報有點類似的新聞資訊,微信的媒體功能就此加強,增強了用戶的粘度。
很多媒體和個人通過利用自己的公眾平臺,提高了自己的品牌效益和工作效率,例如招商銀行,如果你是持卡人,可快捷查詢信用卡賬單、額度及積分;快速還款、申請賬單分期;微信轉接人工服務;信用卡消費,可微信免費提醒等眾多的功能[1]。
基于微信平臺強大的功能特性,我校推出了教務信息查詢平臺,在校學生可以通過關注該微信公眾號,且綁定個人的學號后,不僅可以快速查詢自己的成績、課表、二教三教空余教室、教學通知、教學動態(tài),還可以查詢天氣預報等信息,非常方便快捷。
在成為開發(fā)者后,你可以使用公眾平臺的開發(fā)功能。需要填寫URL和Token。URL填寫微信公眾平臺需要數據接收的頁面(必須以http://開頭,目前只支持80端口),Token是微信平臺的安全認證,該認證必須為英文或數字,長度為3-32字符。具體申請消息接口如圖1。
圖1 申請消息接口
在開發(fā)者首次提交驗證申請時,微信服務器將發(fā)送GET請求到填寫的URL上,并且?guī)纤膫€參數(signature、timestamp、nonce、echostr),通過對簽名(即signature)的效驗,來判斷此條消息的真實性。此后,每次本系統(tǒng)接收用戶消息的時候,微信也都會帶上前面三個參數(signature、timestamp、nonce)訪問開發(fā)者設置的URL,本系統(tǒng)依然通過對簽名的效驗判斷此條消息的真實性。效驗方式與首次提交驗證申請一致[2]。四個參數如表1。
表1 微信服務器發(fā)來的四個參數
本系統(tǒng)通過檢驗signature對請求進行校驗。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,否則接入失敗。signature結合了開發(fā)者填寫的token參數和請求中的timestamp參數、nonce參數。
1.3.1接收數據格式
當普通微信用戶向公眾賬號發(fā)消息時,微信服務器將POST消息的XML數據包到開發(fā)者填寫的URL上。各消息類型的推送XML數據包結構如下:
表2 接收XML數據參數
1.3.2發(fā)送數據格式
對于每一個POST請求,開發(fā)者在響應包(Get)中返回特定XML結構,對該消息進行響應(現(xiàn)支持回復文本、圖片、圖文、語音、視頻、音樂)[3]。
表3 發(fā)送XML數據參數
2系統(tǒng)的設計
該東電教務信息查詢系統(tǒng),查詢內容集課表、成績、教室為一體,可以幫助師生平時上課,學生自習,查看成績,以及教務辦事指南等查詢內容,提供了全方位的教務信息查詢服務,大大方便了師生對教務信息的查詢工作。該系統(tǒng)設置了多個模塊,即:教學通知查詢、教學動態(tài)查詢、課表查詢、成績查詢、二教和三教空余教室查詢、教務處辦事指南查詢、天氣預報查詢等。該系統(tǒng)的資源組成結構如圖2所示。
圖2 教務信息查詢系統(tǒng)資源組成結構圖
(1)教學通知、教學動態(tài)查詢:展示了教務處網站上教學通知和教學動態(tài)的內容。如圖3所示。
(2)課表查詢:可以查詢學生當前課表、某一天課表或者全部的課表信息。
(3)成績查詢:學生通過與該系統(tǒng)綁定信息,可以輕松的查詢學生成績信息和績點信息。
(4)二教、三教空余教室查詢:當想上自習而苦惱于找不到空余教室的時候,該功能就能派上用場了,只需輸入幾個數字就能輕松查找學校所有的空余教室信息。如圖4所示。
圖3 教學通知圖4 二教空余教室
(5)教務處辦事指南查詢:該模塊詳細介紹了教務處各個辦公室的處理教務工作內容。
(6)天氣預報查詢:為了方便師生的出行,該系統(tǒng)特意加了查詢天氣預報的功能。
該系統(tǒng)主要由Web服務器、數據庫服務器和應用程序服務器組成,每個服務器都承擔著各自不同的功能角色,系統(tǒng)的結構如圖5所示。
圖5 系統(tǒng)結構圖
(1)Web服務器:該服務器主要承擔著微信信息的接收和發(fā)送的工作,它將騰訊公司微信服務器發(fā)送來的XML信息進行解析后,再發(fā)送給后臺的數據庫服務器和應用程序服務器進行相應的處理,或者將數據庫服務器和應用程序服務器發(fā)來的響應信息包裝后發(fā)送給騰訊公司微信服務器。
(2)應用程序服務器:該服務器主要運行著WebService服務程序,該程序主要是將Web服務器發(fā)送過來的數據,進行邏輯處理,然后再將信息響應到Web服務器中。
(3)數據庫服務器:該服務器主要運行著SQLServer數據庫,主要承擔數據的存儲和數據的管理工作[4]。
3系統(tǒng)的實現(xiàn)及主要技術
該系統(tǒng)主要運用了Web Service技術, 該技術能使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規(guī)范實施的應用之間, 無論它們所使用的語言、 平臺或內部協(xié)議是什么, 都可以相互交換數據。
Web服務器中運行的PHP程序調用應用程序服務器中C#編寫的WebService服務,從而使前端PHP頁面展示PHP執(zhí)行效率高,代碼運行速度快等特點,也使得后端C#程序展示了開發(fā)效率高等的特點[4]。
PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,入門門檻較低,易于學習,使用廣泛,主要適用于Web開發(fā)領域。
由于PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快等優(yōu)勢,因此該系統(tǒng)選用PHP技術為前端接收頁面,將微信服務器發(fā)來的XML數據包進行解析,發(fā)送到后端WebService方法中,進行相應的邏輯處理[5]。以下代碼為PHP調用系統(tǒng)WebService 服務的代碼:
$client=new SoapClient('http://jwc.nedu.edu.cn:9455/WeiXinServer.asmx?WSDL');
$client->soap_defencoding = 'utf-8';
$client->xml_encoding = 'utf-8';
$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$param=array('ToUser'=>$toUsername ,'FromUser'=>$fromUsername ,'Contents'=>$keyword);
$result = $client->__Call('GetResponseMessage',array('parameters'=>$param));
(1)ADO.NET技術:ADO.NET提供了對Microsoft SQL Server等數據源的一致訪問。應用程序可以使用ADO.NET來連接到這些數據源,并檢索、操作和更新數據。它提供了平臺互用性和可伸縮的數據訪問,ADO .NET增強了對非連接編程模式的支持,并支持RICH XML。由于傳送的數據都是XML格式的,因此任何能夠讀取XML格式的應用程序都可以進行數據處理[6]。
(2)Linq技術:LINQ,語言集成查詢是一組用于c#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操作內存數據。該技術具有無需復雜學習過程即可上手、編寫更少代碼即可創(chuàng)建完整應用、更快開發(fā)錯誤更少的應用程序、讓新開發(fā)者開發(fā)效率更高等優(yōu)勢[7]。
4結束語
東北電力大學東電教務信息助手微信平臺系統(tǒng),不僅僅是基于某個單一的功能,且信息量大,對于方便學校師生查詢教務信息以及提高教務處工作效率都有一定的現(xiàn)實意義。該微信公眾平臺在國內高校率先推出,經過兩年的使用,受到了廣大師生的好評,目前在我校師生中得到了廣泛的應用。
參考文獻
[1]中國互聯(lián)網絡信息中心.第35次中國互聯(lián)網絡發(fā)展狀況統(tǒng)計報告[R].2015.
[2]〔美〕麥克默蒂等著.WCF揭秘[M].趙科平,譯.北京:人民郵電出版社,2008:11-16.
[3]姜瀚書,梁峰,于旭.數字化變電站集成保護信息共享通信特性分析研究[J].東北電力大學學報,2014,34(2):66-67.
[4]張躍廷,許文武等編著.C#數據庫系統(tǒng)開發(fā)完全手冊[M].北京:人民郵電出社,2006:275-282.
[5]〔美〕Federico Biancuzzi,Shane Warden著,閆懷志譯.編程之魂Masterminds of Programming[M].北京:電子工業(yè)出版社,2010.
[6]王小科,呂雙編著.C#典型模塊大全[M].北京:人民郵電出版社,2010:206-215.
[7]梁冰等編著.C#程序開發(fā)范例寶典[M].北京:人民郵電出版社,2009:578-588.
The Design and Implementation of Acdemic Infomation Inquiry System Based on Micro-channel Platform
QU Guang-qiang1,GUAN Xiao-hui1,WANG Jian-yuan2,YANG Yong-qing1,SUN Yue1
(1.Academic Administration,Northeast Dianli University,Jilin Jilin 132012;2.Informatization Office,Northeast Dianli University,Jilin Jilin 132012)
Abstract:A new micro-channel public platform modules on the basis of Tencent micro-channel was increased,through this platform,individuals and businesses can create a micro-channel public number and specific groups to achieve communication and interaction to text,pictures,voice-round.This paper base on public micro-channel platform,using PHP,WebService technology and so on,completed the design and implementation .This paper focuses problems faced in the development process of the data source,public micro letter platform interface,response function of graphic mode,etc.
Key words:Micro-channel public platform;WebService;Page analysis
中圖分類號:TP393.29
文獻標識碼:A
文章編號:1005-2992(2015)06-0100-06
作者簡介:曲廣強(1977-),男,山東省平度市人,東北電力大學教務處助理研究員,主要研究方向:計算機應用技術.
收稿日期:2015-09-12