樊守芳,何 冉,付百彤,曾慶龍
(綏化學(xué)院信息工程學(xué)院,黑龍江 綏化 152061)
校園網(wǎng)絡(luò)服務(wù)平臺(tái)是一個(gè)基于微信公眾平臺(tái)、能夠滿足大學(xué)生日常生活需求的校園服務(wù)平臺(tái)。通過調(diào)查大學(xué)生生活中有哪些地方需要幫助或需要與其他人溝通的事項(xiàng),設(shè)計(jì)實(shí)現(xiàn)相應(yīng)的功能以供使用。其難點(diǎn)在于對(duì)使用者信息的真實(shí)性和保密性的管理,必須保證使用本平臺(tái)的人員是本校人員,避免校外人員使用造成管理混亂。使用者的關(guān)鍵身份信息不能輕易被其他人獲知,使用者的真實(shí)信息只有管理員有權(quán)限查看,其余使用者只能看到昵稱等虛擬信息。平臺(tái)能實(shí)時(shí)獲取地理位置信息,對(duì)使用平臺(tái)雙方的消息實(shí)現(xiàn)溝通功能。
微信公眾平臺(tái)是基于微信服務(wù)而又較為獨(dú)立的一種自媒體公共網(wǎng)絡(luò)平臺(tái),想要擁有自己的訂閱號(hào)或是服務(wù)號(hào),首先需要在微信公眾平臺(tái)上注冊(cè)登錄,然后填寫服務(wù)器配置,配置相關(guān)內(nèi)容表明開發(fā)者身份,用來接收微信消息和事件的接口URL,并用作消息體加解密密鑰。服務(wù)器配置完成后,微信服務(wù)器將開發(fā)者提交的GET請(qǐng)求填寫到服務(wù)器地址URL上,經(jīng)校驗(yàn)返回echostr參數(shù)內(nèi)容,此時(shí)接入生效。公眾平臺(tái)以access_token為接口調(diào)用憑據(jù),它是公眾號(hào)全局唯一接口的調(diào)用憑據(jù)。調(diào)用HTTP的GET方法是使用中控服務(wù)器統(tǒng)一獲取和刷新請(qǐng)求攜帶參數(shù)access_token。一般情況,微信服務(wù)器對(duì)相應(yīng)公眾號(hào)返回一個(gè)Json數(shù)據(jù)包,Json數(shù)據(jù)包含有access_token(獲取到的憑證)和expires_in(憑證有效時(shí)間)兩個(gè)參數(shù)數(shù)據(jù),錯(cuò)誤時(shí)則返回包含錯(cuò)誤碼的數(shù)據(jù)包,可以根據(jù)錯(cuò)誤碼來調(diào)試公眾號(hào)。
校園網(wǎng)絡(luò)服務(wù)平臺(tái)主要是為在校大學(xué)生的日常生活、師生交流和事務(wù)辦理提供一個(gè)便利平臺(tái)。本平臺(tái)允許師生通過微信關(guān)注公眾號(hào)。關(guān)注公眾號(hào)后,通過公眾號(hào)提供的各種功能進(jìn)行求助或幫助他人。注冊(cè)登錄由微信接口調(diào)用來實(shí)現(xiàn)。該公眾號(hào)將獲取用戶微信名稱與頭像等相關(guān)信息。校園服務(wù)平臺(tái)提供寄取快遞、打印文件、購買藥品鮮花水果和搬運(yùn)物品等功能。在個(gè)人中心可以看到用戶訂單信息和物品實(shí)時(shí)位置信息。
根據(jù)需求分析得到本平臺(tái)的用例,如圖1所示。
圖1 校園服務(wù)平臺(tái)用例圖Fig.1 Use case diagram of campus service platform
寄取快遞服務(wù)在用戶允許關(guān)注本公眾號(hào)之后,使用公眾號(hào)提供的寄取快遞功能。寄取快遞用例規(guī)約如下:
第一,基本事件流:用例開始于用戶關(guān)注公眾號(hào)并點(diǎn)擊進(jìn)入公眾號(hào)后,用戶點(diǎn)擊“寄取快遞”按鈕。用戶選擇寄/取快遞。寄快遞填寫地址、電話、快遞重量、報(bào)酬、上門取貨時(shí)間;取快遞填寫取快遞地點(diǎn)、快遞公司、報(bào)酬、取件時(shí)間段。
第二,備選事件流:如果用戶漏填寄/取快遞信息,本系統(tǒng)提示“信息不完整”。
第三,前置事件:本用例開始前,微信用戶必須關(guān)注本公眾號(hào)。
第四,后置事件:如果用例成功,用戶發(fā)布的信息將被存進(jìn)數(shù)據(jù)庫中。
本平臺(tái)基于MVC架構(gòu)進(jìn)行開發(fā),系統(tǒng)分為表示層、控制層和實(shí)體層三層。其中,表示層負(fù)責(zé)獲取用戶的請(qǐng)求和信息的展現(xiàn),是用戶與系統(tǒng)交互的界面;表示層包括寄取快遞、打印文件、搬運(yùn)物品、購買藥品和我的訂單等模塊;控制層是實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯的核心,負(fù)責(zé)對(duì)業(yè)務(wù)邏輯進(jìn)行抽象和封裝,執(zhí)行用戶的業(yè)務(wù)邏輯操作并將操作結(jié)果反饋給用戶,包括寄取快遞、打印文件、搬運(yùn)物品和購買藥品等模塊;實(shí)體層負(fù)責(zé)系統(tǒng)數(shù)據(jù)的存儲(chǔ)和訪問,實(shí)體層包括用戶、訂單、物品和管理員等模塊。
系統(tǒng)關(guān)鍵抽象主要描述了系統(tǒng)中類和各實(shí)體類的屬性以及它們之間的相互關(guān)系。包依賴關(guān)系如圖2所示。
圖2 包依賴關(guān)系Fig.2 Package dependency
為使用戶快捷地了解平臺(tái)公眾號(hào)功能,采取了菜單自定義設(shè)計(jì)方案。校園服務(wù)平臺(tái)設(shè)計(jì)線上服務(wù)、線下服務(wù)和個(gè)人中心三個(gè)一級(jí)菜單,每個(gè)一級(jí)菜單又設(shè)計(jì)了個(gè)數(shù)不同的二級(jí)菜單。用戶關(guān)注平臺(tái)公眾號(hào)后即可進(jìn)入平臺(tái)公眾號(hào)會(huì)話頁面。菜單自定義設(shè)計(jì)運(yùn)行效果如圖3所示。
圖3 自定義菜單設(shè)計(jì)Fig.3 Custom menu design
關(guān)注微信公眾號(hào)界面可以看到公眾號(hào)歷史消息記錄。本系統(tǒng)主要設(shè)置了“click”、“view”兩種類型按鈕。當(dāng)用戶單擊“click”類型按鈕之后,微信服務(wù)器就會(huì)利用消息接口發(fā)送一個(gè)結(jié)構(gòu)為event類型的消息給開發(fā)者,此時(shí)開發(fā)者就可以通過自己給出的key值和用戶溝通;當(dāng)用戶單擊“view”類型按鈕之后,微信客戶端可以通過開發(fā)者在該按鈕中填寫的URL地址打開一個(gè)網(wǎng)頁,用戶可以在該網(wǎng)頁中查看瀏覽開發(fā)者提供的相關(guān)資源。
當(dāng)微信用戶在公眾號(hào)頁面發(fā)送消息時(shí),微信服務(wù)器對(duì)產(chǎn)生的POST請(qǐng)求返回一個(gè)XML特定結(jié)構(gòu)的數(shù)據(jù)包,然后再將該數(shù)據(jù)包填寫到開發(fā)者在“view” 按鈕中的URL地址上。用戶發(fā)送的消息可分為文本消息、圖片消息、語音消息、視屏消息、鏈接消息和地理位置消息。文本研究的系統(tǒng)主要使用的是文本消息和圖片消息,文本消息數(shù)據(jù)包的結(jié)構(gòu)如下:
微信服務(wù)器在默認(rèn)的情況下,如果在5 s內(nèi)得不到響應(yīng)就會(huì)自動(dòng)將當(dāng)前的連接斷掉,并且允許至多3次重新發(fā)起請(qǐng)求。文本消息數(shù)據(jù)包攜帶參數(shù)如表1所示:
表1 文本消息數(shù)據(jù)包攜帶參數(shù)Tab.1 Carrying parameters of text message packet
接收?qǐng)D片消息數(shù)據(jù)包結(jié)構(gòu)如下:
數(shù)據(jù)包攜帶的參數(shù)和參數(shù)描述如表2所示。
表2 數(shù)據(jù)包攜帶的參數(shù)Tab.2 Parameters carried by data package
校園網(wǎng)絡(luò)服務(wù)平臺(tái)研究實(shí)現(xiàn)了一個(gè)基于微信公眾平臺(tái)、能為大學(xué)生的日常生活提供便利服務(wù)的微信公眾號(hào)。本研究實(shí)現(xiàn)的系統(tǒng)與其他系統(tǒng)相比,優(yōu)點(diǎn)在于通過微信公眾平臺(tái)開發(fā),使用了搭建完善的框架進(jìn)行開發(fā),操作簡易,可將精力轉(zhuǎn)移到設(shè)計(jì)上,提供的功能能夠滿足大學(xué)生的真實(shí)需要,可行性高。用戶通過微信登錄使用,跳過注冊(cè)等煩瑣步驟,無須單獨(dú)安裝APP使用,操作簡潔。