舒捷,舒展
(1.九江電視臺,2.九江職業大學,江西九江 332000)
微信是由騰訊公司推出的一款免費的手機即時通訊應用程序,自2011年初推出以來,用戶數已超3億。微信不僅表現形式多樣,支持語音短信、視頻、圖片等多媒體類型,還具備地理位置定位,多人群聊等功能,支持android,symbian,BlackBerry,IOS,Windows Mobile等多種智能系統,擁有龐大的潛在用戶群,同時朋友圈功能也具有極強的社交媒體性[1]。
微信公眾平臺是騰訊公司在微信基礎功能上新增的一個面向個人和企業的信息推廣及服務平臺。個人和企業都可以申請微信公眾號,實現和特定群體通過文字、圖片、語音進行全方位的溝通與互動[2]。微信公眾平臺通過開放API接口,使得任何機構都可以針對此接口開發建立自己的第三方服務平臺,實現機構業務的開展和推廣,微信公眾平臺漸漸成為企業營銷渠道和客戶關系管理的新工具[3]。
現有的電視節目查詢及點播系統,大多為基于網頁的B/S結構和基于手機APP的B/S結構,單從滿足基本的查詢需求方面考慮,是完全能夠勝任的。但隨著微信用戶的增長,微信公眾平臺業務的擴展,大多數的用戶會尋求更為便利、集成化的服務。微信公眾平臺只需訂閱相應的服務帳號,不需要記住任何網址,也不需要再去下載額外的軟件,同時,通過簡單的輸入查詢就能夠得到相應的信息,從使用上來說,恰恰是符合了現代化便利性生活的需求。
本文將介紹如何構筑基于微信公眾平臺的電視節目查詢及點播系統,實現微信用戶對日常生活瀏覽電視節目的需求,并基于此系統探討后續可擴展模塊的研發與應用。
微信公眾平臺的基本功能為群發推送、自動回復及一對一對話。微信公眾平臺的后臺管理有編輯模式和開發模式,兩種模式互斥存在[4]。編輯模式只提供簡單的編輯界面,對設置的部分關鍵字進行自動回復,功能有限;開發模式則提供開發接口,通過開發人員上傳自定義的代碼包來實現更加個性化的服務。相較而言,開發模式無論是在功能實現方面,還是應用靈活性方面,甚至是后續功能拓展方面都較編輯模式更為適合本系統的設計與開發,故本系統采用微信公眾平臺的開發模式進行系統設置與開發。

圖1 基于微信公眾平臺的票務系統設計原理圖
本系統將基于微信公眾平臺提供的API接口,對微信用戶推送到查詢信息進行提取,通過接口程序的轉換,向后臺數據庫發出查詢請求,隨后,在獲取數據庫返回的查詢結果后,使用接口程序對結果進行轉換,并通過微信公眾平臺將查詢結果返回給微信用戶,完成一次一對一的對話過程,如圖1所示。在圖上也可以很清晰看出,本系統完全可以和基于網頁的C/S系統及基于手機APP應用的B/S系統并行使用,互不干擾,并不影響原有的各種服務。
本系統以面向用戶日常生活瀏覽電視節目需求為主,實現對現有各個電視臺的電視節目播放時間的查詢及點播需求,返回滿足用戶查詢條件的數據。
根據系統需求,結合微信公眾平臺,本系統主要分為以下幾個模塊:
1)開發模式啟動與測試模塊:在微信公眾平臺上開啟開發模式,并對開發模式下的信息傳遞進行簡單的測試;
2)消息接收模塊:接收由用戶發送過來的信息,并對信息數據進行提取;
3)數據庫查詢模塊:使用信息接收模塊提取的數據,向數據庫發起查詢操作,并獲取數據庫的查詢結果;
4)消息回復模塊:從數據庫查詢模塊獲取查詢結果,并將其返回給用戶;

圖2 基于微信公眾平臺的票務系統設計流程圖
1)開發模式啟動與測試模塊
微信公眾平臺開發模式采用接口URL和Token(開發者簽名)來實現網址接入。公眾平臺用戶提交信息后,微信服務器將發送GET請求到填寫的URL上,并帶上signarture(微信加密簽名)、timestamp(時間戳)、nonce(隨機數)、echostr(隨機字符串)四個參數。開發者通過將Token,timestamp,nonce三個參數進行字典排序、shal加密后與signarture進行對比,標識該請求來源于微信,并確認此次GET請求來自微信服務器,隨后原樣返回echostr參數內容,使接入生效,完成網址接入設置[5]。在本系統中Token根據項目功能設置為WeChat Ticket.
完成接口配置后,所有發送至本微信公眾號的消息都將從微信公眾平臺服務器轉發至接口URL,并由系統的后續模塊完成信息的解析與回復。
2)消息接收模塊
在每次本系統接收微信公眾平臺服務器轉發的用戶信息的時候,微信都會先帶上上述校驗信息,本系統通過對簽名的校驗來判斷此條消息的真實性。在確定此消息真實有效后,本系統調用消息接收模塊,對由微信轉發過來的POST消息的XML數據包進行數據提取。微信支持的開發模式下用戶能發送的消息類型有:文本消息、圖片消息、語音消息、視頻消息、地理位置消息和鏈接消息共六種。
以文本消息為例,其參數字段如下表:

表1 微信公眾平臺開發模式文本消息XML代碼字段信息
至于其他類型消息,根據其MsgType字段值的不同,將會有不同的參數字段替換掉Content字段,在此就不冗述了。
鑒于本系統主要任務為實現對文本消息查詢請求的回復,故現只討論文本信息的處理過程。通過對微信轉發到POST消息的XML數據包中MsgType類型進行判斷,提取出Text類型消息的Context字段,并對字段按照一定的規則進行數據提取。這個規則一般是依據第一次用戶關注本微信公眾平臺帳號時,由本系統推送出的幫助信息樣本。
例:請輸入要查詢的節目名稱——九江新聞
3)數據庫查詢模塊
如圖1所示,本系統直接調用已有的基于網頁/手機APP的查詢模塊,無需再重新建立數據庫查詢模塊,不僅提高了代碼效率,優化了模塊設置,同時也使得整個系統對數據庫的操作標準化,提高了整體系統的安全性。
4)消息回復模塊

圖3 系統運行測試
當數據庫查詢模塊完成查詢操作后,會把查詢結果傳遞給消息回復模塊。消息回復模塊將依次把broadcadate(日期),broadcasttime(播放時間),rebroadcast(是否重播),(視頻鏈接地址)字段進行整合,形成新的Content字段,并結合先前接收到的POST的XML數據包中的信息,生成一個Get包返回給微信公眾平臺服務器。隨后微信公眾平臺服務器根據Get包中的ToUserName,MsgType,Content,將返回的消息按照文本類型發送給指定的用戶,即響應用戶的查詢請求。
至此,整個系統完成一次用戶發送查詢,系統后臺響應查詢并返回查詢結果的操作。
電視節目查詢及點播是日常生活電視瀏覽的常用的服務需求,通過建立本系統能夠滿足微信用戶的需要,為人們出行提供更為便利的幫助。同時,微信公眾平臺仍在不斷完善和發展中,根據其發展趨勢,可以推測,后續的發展應該會整合流媒體播放、用戶自定義列表等功能。根據其發展方向,本系統后續可進行在線點播、自主節目單設定等功能模塊的設計與開發。
〔1〕張蓓,竇天芳等 .開發模式下圖書館微信公眾平臺服務的設計與實現 [J].現代圖示情報技術,2014,(01).
〔2〕孔云,廖寅等 .基于微信公眾帳號的圖書館移動信息服務研究 [J].情報雜志,2013,(09).
〔3〕王保成,鄧玉 .微信公眾平臺在國內圖書館服務中的應用實踐研究 [J].圖書情報工作,2013,(20).
〔4〕黃浩 .基于OTT即時通訊工具的供電智能互動服務系統研究 [J].信息通信,2013,(10).