宋思華
(山西應(yīng)用科技學(xué)院,山西 太原 030062)
當(dāng)前移動互聯(lián)網(wǎng)的時代,微信不僅僅是通信工具更是人們的一種生活方式,微信公眾號訂餐系統(tǒng)依托微信巨大用戶群,在微信公眾平臺之上開發(fā)并實現(xiàn)。該訂餐系統(tǒng)操作簡單,用戶無需下載APP,只需在微信平臺關(guān)注系統(tǒng)的公眾號,即可解決“隨時隨地訂餐到家”的需求,極大地提高了用戶的體驗。同時,利用微信的傳播性和互娛性,為商家進(jìn)行微信餐品推廣、開展?fàn)I銷活動及業(yè)務(wù)統(tǒng)計等,充分地發(fā)揮了微信受眾廣的優(yōu)勢。
該系統(tǒng)Web程序部署在后臺服務(wù)器上,管理員、商戶、訂餐用戶都使用瀏覽器來使用系統(tǒng),微信客戶調(diào)用的為微信內(nèi)置的瀏覽器,所以所有用戶均使用瀏覽器來訪問系統(tǒng)。系統(tǒng)的主要構(gòu)成為表現(xiàn)層、數(shù)據(jù)層、服務(wù)層。
表現(xiàn)層采用HTML5超文本標(biāo)記語言進(jìn)行內(nèi)容的編輯,頁面渲染使用了CSS3技術(shù),與HTML相結(jié)合,實現(xiàn)了前端頁面內(nèi)容和表現(xiàn)的分離。數(shù)據(jù)層主要處理與數(shù)據(jù)庫相關(guān)操作,所有與數(shù)據(jù)庫持久化相關(guān)操作都在本層進(jìn)行。服務(wù)層完成了表現(xiàn)層與數(shù)據(jù)層的解耦,使得管理員、商戶使用的PC端和微信公眾平臺使用的微信端可以共用相同的服務(wù)接口,不用相同的業(yè)務(wù)邏輯實現(xiàn)兩遍,程序更為簡潔。
本系統(tǒng)服務(wù)層主要完成公眾號服務(wù)、訂餐服務(wù)、營銷服務(wù)、支付服務(wù)、打印服務(wù)、鑒權(quán)服務(wù)、配置服務(wù)等功能。
用戶在微信公眾平臺上進(jìn)行公眾號的申請,申請通過后就可以在微信官方提供的管理后臺進(jìn)行公眾號管理了。
微信官方提供了文字回復(fù)、圖文回復(fù)等規(guī)則配置功能,提供每月4條的群發(fā)功能,對于一般的店鋪推廣來說,官方提供的管理功能基本滿足需要,但對于需要和自己公司的信息化系統(tǒng)相融合的公司來說,這樣的基礎(chǔ)功能是遠(yuǎn)遠(yuǎn)不夠的,所以微信官方提供了開發(fā)接口,使得公眾號使用方可以通過公眾平臺開發(fā)接口來開發(fā)自己的個性化功能。
要使用自定義的消息接口,首先要配置微信將接口調(diào)用權(quán)限授權(quán)到指定服務(wù)器。在公眾平臺官網(wǎng)的基本配置菜單中開啟公眾號開發(fā)者模式,然后配置服務(wù)器。服務(wù)器啟用并配置成功后,微信將把用戶向公眾號發(fā)送的消息以及商戶需要的推送轉(zhuǎn)發(fā)到該URL中。配置包括服務(wù)器的地址,Token(令牌),EncodingAESKey(消息加解密密鋪)。消息加密和解密方式有多種,本系統(tǒng)采用明文模式。
在完成微信公眾平臺的配置后,系統(tǒng)可接替公眾平臺來完成與訂餐用戶的交互,包括用戶消息回復(fù),設(shè)置自定義菜單對用戶進(jìn)行引導(dǎo)等。訂餐系統(tǒng)與公眾號的結(jié)合主要通過自定義菜單實現(xiàn),微信公眾號作為流量入口,通過內(nèi)置的微信瀏覽器將用戶導(dǎo)向我們的訂餐平臺,就可以實現(xiàn)用戶免注冊,在線訂餐、支付、配送等全方位的服務(wù)。
針對訂餐流程,訂餐服務(wù)設(shè)計了餐品瀏覽、訂餐、購物車、優(yōu)惠券、價格計算、提交訂單、配送等一系列的服務(wù)接口,如圖1所示。

圖1 訂餐服務(wù)接口
其方法功能如下:
doMobilereg():首次關(guān)注店鋪公眾號時進(jìn)行認(rèn)證登錄。
doMobilewlhome():點擊我要訂餐進(jìn)入店鋪首頁,展示店鋪簡介、地址、聯(lián)系電話等信息。
doMobilewldishlist():查看店鋪的菜單,包括菜品分類,菜品展示,價格等信息。
doMobilewladdorder():獲取訂單信息,本人以前訂餐的歷史情況。
doMobilewlcart():購物車,將訂餐餐品加入購物車后會自動計算價格。
doMobilewlorder():提交訂單,確定點餐后提交訂單,系統(tǒng)自動打印訂單到店鋪。
doMobilewlmember():個人中心,查看本人的個人信息。
doMobilewlupdatecart():更新購物車餐品信息。
doMobilewlgenius():智能選餐,可按推薦組合套餐來選餐,為用戶提供推薦服務(wù)。
doMobileClear():清空購物車,不需要訂餐時可一次清空購物車。
doMobilewlpayment():在線支付,訂餐完成后進(jìn)行在線支付。
微信支付目前支持7種支付場景分別是付款碼支付、Native支付、JSAPI支付、APP支付、小程序支付、H5支付和人臉支付。根據(jù)系統(tǒng)實際需求,本系統(tǒng)采用微信支付的H5支付。
打印服務(wù)是微信公眾號訂餐系統(tǒng)的一個核心服務(wù),因為在“互聯(lián)網(wǎng)+餐飲”的新模式下,互聯(lián)網(wǎng)不僅是餐飲訂單的流量入口,更是提升客戶服務(wù)的主要通道,這就要求店鋪及時響應(yīng)客戶需求。客戶下單后,店鋪需要及時知道有新訂單需要處理。這些需要通過自動打印訂單來解決。
從手寫菜單到自動化的打印菜單,小票打印機已成為必不可少的設(shè)備,對比手寫單有了一定提升,但餐廳菜單仍然存在諸多問題。顧客到店用餐,點菜員點菜下單,采用人工送單到廚房手工分單,打印機漏單導(dǎo)致的上錯菜,少上菜,上重菜等情況,這些都是引起客戶不滿的潛在因素導(dǎo)致客戶的流失甚至投訴。
在現(xiàn)在各大訂餐平臺的模式下,需要手機安裝APP并開啟通知服務(wù),當(dāng)有新訂單需要處理時,APP會及時通知店鋪,或者通過小票打印機直接出單。目前的小票打印機一般為藍(lán)牙打印機,使用較為麻煩,首先需要手機一直在線,APP一直在運行狀態(tài),開啟藍(lán)牙與打印機進(jìn)行配對,才能在打印機直接出單。當(dāng)手機沒電,或APP沒有運行,或手機與打印機超出藍(lán)牙連接范圍,或一些其他原因,經(jīng)常導(dǎo)致有訂單未打印,店鋪也不知道有訂單的情況。這些都是藍(lán)牙連接會出現(xiàn)的問題。
在本系統(tǒng)中,采用了全新的云打印服務(wù),只需要在店鋪放置一臺云打印機,通過GPRS或WIFI連接到平臺,無需準(zhǔn)備手機,無需安裝APP,當(dāng)有新訂單產(chǎn)生時,訂單首先進(jìn)入平臺的消息隊列,后臺服務(wù)會檢測云打印機的在線情況,如打印機在線則消息消費者才會將訂單發(fā)送到現(xiàn)場打印機進(jìn)行打印,保證了訂單不會丟失。
消息推送是開放平臺主動調(diào)用開發(fā)者服務(wù)的一個通道,用于向應(yīng)用推送訂單狀態(tài)變更、打印機狀態(tài)變更等消息。開發(fā)者需要在應(yīng)用管理的后臺,設(shè)置需要監(jiān)聽的消息類型的推送URL,當(dāng)有該種類型的消息產(chǎn)生時,開發(fā)平臺會向應(yīng)用設(shè)置的URL發(fā)送HTTP POST數(shù)據(jù),達(dá)到通知應(yīng)用的目的。
本系統(tǒng)以HTTP POST 的方式進(jìn)行消息推送請求并設(shè)計了多個可用接口,接口說明如下:
打印接口:打印服務(wù)通知打印接口往終端發(fā)送打印指令,將訂單在現(xiàn)場端小票打印機打印出來。
刪除終端授權(quán)接口:如某店鋪不再使用本系統(tǒng)的服務(wù),或店鋪更換了新的打印機,則可刪除終端授權(quán),不再進(jìn)行打印。
添加應(yīng)用菜單接口:給現(xiàn)場終端下發(fā)指令,增加操作菜單。
關(guān)機重啟接口:現(xiàn)場終端如需重啟,使用本接口關(guān)機重啟。
聲音調(diào)節(jié)接口:遠(yuǎn)程下發(fā)指令調(diào)整打印機的聲音大小。
獲取機型打印寬度接口:可下發(fā)指令要求現(xiàn)場終商上報打印寬度。小票打印機為熱敏打印機,分為57mm和118mm,通過本接口可獲取現(xiàn)場打印機打印寬度,方便調(diào)整打印菜單格式。
獲取機型軟硬件版本接口:可下發(fā)指令獲取現(xiàn)場終商的軟硬件版本。
取消所有未打印接口:所有未打印訂單都存儲在消息隊列中,如果因停電或其他原因現(xiàn)場未打印出訂單,防止打印機重新連接上平臺后自動打印,可通過本接口取消未打印訂單。
取消單條未打印接口:可取消最近一條未打印的訂單。
設(shè)置Logo接口:可設(shè)置打印出來的店鋪Logo。
取消Logo接口:可取消打印Logo。
訂單確認(rèn)接口:一般訂單為自動確認(rèn),自動出單,如需手動設(shè)置,可每次調(diào)用訂單確認(rèn)接口手動打印。
公眾號訂餐系統(tǒng)采用面向?qū)ο蟮乃枷牒头謱痈拍顏碓O(shè)計,實現(xiàn)了邏輯、數(shù)據(jù)和表現(xiàn)的分離,從原則上保證了系統(tǒng)的可維護(hù)性。服務(wù)層完成了表現(xiàn)層與數(shù)據(jù)層的解耦,使得管理員、商戶使用的PC端和微信公眾平臺使用的微信端可以共用相同的服務(wù)接口,提高代碼復(fù)用率,同時程序更為簡潔。