劉磊 陳羽云 林潔鑫



摘 要:基于移動社交平臺微信和國內領先的云平臺新浪云(SAE),開發大學生用戶覆蓋率很高的教務信息查詢系統,以微信公眾號為系統入口,以HTML5開發適應移動端的響應式頁面,以PHP+MYSQL為服務端開發框架,以新浪SAE為部署平臺。系統具有隨時隨地使用、前端輕量級、后端靈活、用戶體驗良好的特點。
關鍵詞:微信公眾號;教務系統;云平臺
DOI:10.11907/rjdk.171098
中圖分類號:TP319 文獻標識碼:A 文章編號:1672-7800(2017)009-0111-03
Abstract:This paper describes the comprehensive use of the new WeChat mobile social networking platform and leading cloud platform Sina cloud (SAE), the development of college students coverage of users management information system is very high, with WeChat as the public entrance to adapt to the development of HTML5 system, the mobile terminal of the response page, with PHP+MYSQL as the server framework with sina SAE, deployment platform, system has used, front and rear whenever and wherever possible the lightweight flexible, good user experience features.
Key Words:WeChat public number; Educational administration system; cloud platform
0 引言
高校教務信息的發布是學校重要管理活動之一,如何提高信息發布的精確性、及時性和有效性,提高學生對教務管理的粘連度,一直廣受關注。隨著IT技術的更新迭代,移動社交逐漸覆蓋了人們的日常生活,傳統的服務端計算也搬到了易擴展的云平臺上,這些技術的創新促使管理系統的開發走上了一個新的臺階。本文基于最新的移動社交平臺微信和國內最好的PaaS云計算平臺新浪云(SAE),開發一款可以在移動端設備上使用的高校教務信息查詢系統,使用微信公眾號作為入口,實現用戶綁定、成績查詢、課表查詢、自習教室查詢、教務通知查詢、考試安排查詢等功能。
1 微信公眾號優勢
微信公眾號是在微信基礎平臺上擴展的功能模塊,通過這一平臺,可以方便地與特定群體實現文字、圖片、語音的全方位溝通、互動。微信公眾平臺的傳播方式是一對多的傳播,直接將消息推送到手機,因此達到率和被觀看率幾乎是100%。微信公眾平臺相比于其它網絡平臺在傳播方面具有明顯優勢:①微信是天然的用戶接口,只要登陸微信,系統即可獲取用戶位置、時間,并且支持圖片、二維碼、NFC等富媒體,做到隨時隨地交互,并能對接任何系統,信息傳達效率高;②輕量級前端使用HTML5技術帶來良好用戶體驗,重后端保證系統運行穩定;③用戶自由度較高,用戶訂閱、推送功能自主選擇;④微信用戶群數以億計,公眾號特別適于社會組織向用戶提供業務服務能力[1-2]。
2 總體設計
本系統使用微信公眾號作為用戶操作入口,通過公眾號界面的菜單跳轉或指令交互,使用HTML5開發響應式頁面展現給用戶,微信公眾號和HTML5頁面可以歸為客戶端;使用PHP語言、MYSQL數據庫開發教務信息查詢系統,部署在新浪SAE平臺,這是服務端。客戶端使用微信公眾號入口具有極強的方便性和交互性,HTML5頁面具有輕量級、表現力豐富的特點,服務端運行在SAE平臺,保證了系統的穩定性和擴展性[3-5]。
(1)客戶端。客戶端使用微信公眾平臺提供交互界面,通過輸入指令、跳轉菜單與服務端完成交互。用戶通過關注公眾號進入服務窗口,輸入學號完成綁定,輸入相應指令發送到服務端,解析服務端返回消息展現給用戶。
(2)服務端。使用PHP+MYSQL開發服務端教務信息查詢系統,實現學號綁定、成績查詢、課表查詢、考試安排查詢等功能。教務系統運行在新浪云平臺(SAE),通過接受指令、返回結果與客戶端實現交互。指令交互的過程是:服務端根據接受的指令調用相應的功能模塊,將結果封裝成XML消息,返回給微信公眾平臺加以展示;菜單跳轉則是通過微信內置的瀏覽器直接展示HTML5頁面,由頁面與后端業務邏輯模塊交互。系統總體設計如圖1所示。
3 功能與流程設計
本系統通過微信公眾號向用戶提供學號綁定、課表查詢、公選課查詢、教務通知查詢、成績查詢、考試安排查詢等功能,用戶關注公眾號后,可以方便地在微信界面使用以上功能,達到隨時隨地隨身使用教務信息查詢系統的目的。系統功能結構設計如圖2所示。
本系統主要為在校大學生方便及時查詢教務信息服務,因此用戶群是在校大學生。學生用戶首先關注微信公眾號,進入公眾號界面,輸入學號綁定,綁定成功后就可以使用課表查詢、成績查詢等功能,點擊相應的查詢按鈕,系統會根據學號自動返回相關信息。用戶業務流程設計如圖3所示。
4 關鍵技術
4.1 微信公眾平臺接入
開發者接入微信公眾平臺,需要3步:
(1)填寫服務器配置。登錄微信公眾平臺官網后,在公眾平臺后臺管理頁面修改配置,填寫服務器地址(URL)、Token和EncodingAESKey。其中,URL是開發者用來接收微信消息和事件的接口地址;Token可以任意填寫,用作生成簽名,該Token值會和接口URL中包含的Token進行比對,從而驗證安全性;EncodingAESKey由開發者手動填寫或隨機生成,用作消息體加解密密鑰。endprint
(2)驗證服務器地址的有效性。開發者提交信息后,微信服務器將發送GET請求到填寫的服務器地址URL上,GET請求攜帶4個參數:①Signature:微信加密簽名,結合開發者填寫的Token參數和請求中的Timestamp參數、Nonce參數;②Timestamp:時間戳;③Nonce:隨機數;④Echostr:隨機字符串。
開發者通過檢驗Signature對請求進行校驗,若確認此次GET請求來自微信服務器,則原樣返回Echostr參數內容,表示接入生效,否則接入失敗。
檢驗Signature流程如下:①將Token、Timestamp、Nonce 3個參數進行字典序排序;②將3個參數字符串拼接成一個字符串進行sha1加密;③將加密后的字符串與Signature對比,通過則標識該請求來源于微信。
檢驗Signature的PHP示例代碼如下:
private function checkSignature()
{
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];
$token=TOKEN;
$tmpArr=array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr=implode($tmpArr);
$tmpStr=sha1($tmpStr);
if($tmpStr==$signature){
return true;
}else{
return false;
}
}
(3)依據接口文檔實現業務邏輯。驗證URL有效性成功后即可開發業務邏輯,用戶每次向公眾號發送消息或者點擊自定義菜單,開發者填寫的服務器配置URL將得到微信服務器推送過來的消息和事件,開發者就可以編寫相應的業務邏輯進行響應,例如回復消息、返回頁面等。
4.2 PHP操作MYSQL數據庫
PHP內置了操作MYSQL數據庫的函數,這些函數以mysql_開頭,使用這些函數可以非常方便地存取數據庫里的信息[6]。一般步驟為:
(1)建立與數據庫服務器的連接。
$conn=mysql_connect('hostname','username','password');
參數:‘hostname表示連接字符串,'username'和'password'分別表示連接MySQL服務器的用戶名和密碼。
返回值:如果連接成功,則函數返回一個MySQL連接標識,連接失敗則返回false。
(2)選擇要操作的數據庫。
mysql_select_db (‘dbname,$conn)
參數:‘dbname是要操作的數據庫名稱,$conn是打開數據庫服務器的返回結果。
(3)執行sql語句。
$rs=mysql_query (“要執行的SQL語句”)
參數:SQL語句可以是標準的select、insert、delete、update等語句。
返回值:如果SQL語句是查詢指令select,成功則返回查詢后的結果集,失敗則返回false;如果SQL語句是insert、delete、update等操作指令,成功則返回true,失敗則返回false。
(4)處理結果集。如果執行select查詢語句,成功則返回結果集,接下來需要用mysql_fetch_array()函數從數組結果集中獲取信息。語句如下:
$row=mysql_fetch_array($rs);
參數:$rs為執行select查詢語句返回的結果集。
返回值:$row為從結果集取得一行返回的數組,可以用$row[‘字段名]訪問指定列的值;如果沒有數據則返回false。
(5)關閉與數據庫服務器的連接。
mysql_close()
如果不手動關閉數據庫連接,PHP腳本在執行結束時也會自動關閉數據庫連接。
5 結語
本文闡述了綜合使用新媒體微信平臺作為信息展示端,使用云平臺運行服務端,使用HTML5編寫部分交互頁面,開發服務于在校大學生的教務信息查詢系統。本系統相對于傳統的B/S系統具有明顯的優點:使用微信公眾平臺作為系統客戶端,充分利用移動通訊工具的便捷性,最快、最廣、最精確地展示教務信息;使用云平臺作為系統服務端,將系統應用部署在云端,擴展性、安全性大大提高。未來,以微信公眾號加云平臺這種“輕前端、重后端”的架構開發的信息系統會越來越多。
參考文獻:
[1] 白浩,郝晶晶.微信公眾平臺在高校教育領域中的應用研究[J].中國教育信息化,2013(4):78-81.
[2] 劉娟娟.基于微信公眾平臺的微課程在教學中的應用[J].中國輕工教育,2014(5):94-96.
[3] 李松輝,侯志江.圖書館微信公眾號服務平臺的設計與開發[J].信息系統工程,2015(2):33-39.
[4] 王軍鳳.教務信息系統的設計與開發[J].無線互聯科技,2013(2):74-77.
[5] 程方昭.教務信息管理系統的建設[J].福建廣播電視大學學報,2006(3):36-40.
[6] 趙鶴芹.設計動態網站的最佳方案:Apache+PHP+MySQL[J].計算機工程與設計,2007(4):933-938.
(責任編輯:孫 娟)endprint