宋思華
(山西應(yīng)用科技學(xué)院,山西 太原 030062)
當(dāng)前移動(dòng)互聯(lián)網(wǎng)的時(shí)代,微信不僅僅是通信工具更是人們的一種生活方式,微信公眾號(hào)訂餐系統(tǒng)依托微信巨大用戶群,在微信公眾平臺(tái)之上開發(fā)并實(shí)現(xiàn)。該訂餐系統(tǒng)操作簡(jiǎn)單,用戶無(wú)需下載APP,只需在微信平臺(tái)關(guān)注系統(tǒng)的公眾號(hào),即可解決“隨時(shí)隨地訂餐到家”的需求,極大地提高了用戶的體驗(yàn)。同時(shí),利用微信的傳播性和互娛性,為商家進(jìn)行微信餐品推廣、開展?fàn)I銷活動(dòng)及業(yè)務(wù)統(tǒng)計(jì)等,充分地發(fā)揮了微信受眾廣的優(yōu)勢(shì)。
該系統(tǒng)Web程序部署在后臺(tái)服務(wù)器上,管理員、商戶、訂餐用戶都使用瀏覽器來(lái)使用系統(tǒng),微信客戶調(diào)用的為微信內(nèi)置的瀏覽器,所以所有用戶均使用瀏覽器來(lái)訪問(wèn)系統(tǒng)。系統(tǒng)的主要構(gòu)成為表現(xiàn)層、數(shù)據(jù)層、服務(wù)層。
表現(xiàn)層采用HTML5超文本標(biāo)記語(yǔ)言進(jìn)行內(nèi)容的編輯,頁(yè)面渲染使用了CSS3技術(shù),與HTML相結(jié)合,實(shí)現(xiàn)了前端頁(yè)面內(nèi)容和表現(xiàn)的分離。數(shù)據(jù)層主要處理與數(shù)據(jù)庫(kù)相關(guān)操作,所有與數(shù)據(jù)庫(kù)持久化相關(guān)操作都在本層進(jìn)行。服務(wù)層完成了表現(xiàn)層與數(shù)據(jù)層的解耦,使得管理員、商戶使用的PC端和微信公眾平臺(tái)使用的微信端可以共用相同的服務(wù)接口,不用相同的業(yè)務(wù)邏輯實(shí)現(xiàn)兩遍,程序更為簡(jiǎn)潔。
本系統(tǒng)服務(wù)層主要完成公眾號(hào)服務(wù)、訂餐服務(wù)、營(yíng)銷服務(wù)、支付服務(wù)、打印服務(wù)、鑒權(quán)服務(wù)、配置服務(wù)等功能。
用戶在微信公眾平臺(tái)上進(jìn)行公眾號(hào)的申請(qǐng),申請(qǐng)通過(guò)后就可以在微信官方提供的管理后臺(tái)進(jìn)行公眾號(hào)管理了。
微信官方提供了文字回復(fù)、圖文回復(fù)等規(guī)則配置功能,提供每月4條的群發(fā)功能,對(duì)于一般的店鋪推廣來(lái)說(shuō),官方提供的管理功能基本滿足需要,但對(duì)于需要和自己公司的信息化系統(tǒng)相融合的公司來(lái)說(shuō),這樣的基礎(chǔ)功能是遠(yuǎn)遠(yuǎn)不夠的,所以微信官方提供了開發(fā)接口,使得公眾號(hào)使用方可以通過(guò)公眾平臺(tái)開發(fā)接口來(lái)開發(fā)自己的個(gè)性化功能。
要使用自定義的消息接口,首先要配置微信將接口調(diào)用權(quán)限授權(quán)到指定服務(wù)器。在公眾平臺(tái)官網(wǎng)的基本配置菜單中開啟公眾號(hào)開發(fā)者模式,然后配置服務(wù)器。服務(wù)器啟用并配置成功后,微信將把用戶向公眾號(hào)發(fā)送的消息以及商戶需要的推送轉(zhuǎn)發(fā)到該URL中。配置包括服務(wù)器的地址,Token(令牌),EncodingAESKey(消息加解密密鋪)。消息加密和解密方式有多種,本系統(tǒng)采用明文模式。
在完成微信公眾平臺(tái)的配置后,系統(tǒng)可接替公眾平臺(tái)來(lái)完成與訂餐用戶的交互,包括用戶消息回復(fù),設(shè)置自定義菜單對(duì)用戶進(jìn)行引導(dǎo)等。訂餐系統(tǒng)與公眾號(hào)的結(jié)合主要通過(guò)自定義菜單實(shí)現(xiàn),微信公眾號(hào)作為流量入口,通過(guò)內(nèi)置的微信瀏覽器將用戶導(dǎo)向我們的訂餐平臺(tái),就可以實(shí)現(xiàn)用戶免注冊(cè),在線訂餐、支付、配送等全方位的服務(wù)。
針對(duì)訂餐流程,訂餐服務(wù)設(shè)計(jì)了餐品瀏覽、訂餐、購(gòu)物車、優(yōu)惠券、價(jià)格計(jì)算、提交訂單、配送等一系列的服務(wù)接口,如圖1所示。
圖1 訂餐服務(wù)接口
其方法功能如下:
doMobilereg():首次關(guān)注店鋪公眾號(hào)時(shí)進(jìn)行認(rèn)證登錄。
doMobilewlhome():點(diǎn)擊我要訂餐進(jìn)入店鋪首頁(yè),展示店鋪簡(jiǎn)介、地址、聯(lián)系電話等信息。
doMobilewldishlist():查看店鋪的菜單,包括菜品分類,菜品展示,價(jià)格等信息。
doMobilewladdorder():獲取訂單信息,本人以前訂餐的歷史情況。
doMobilewlcart():購(gòu)物車,將訂餐餐品加入購(gòu)物車后會(huì)自動(dòng)計(jì)算價(jià)格。
doMobilewlorder():提交訂單,確定點(diǎn)餐后提交訂單,系統(tǒng)自動(dòng)打印訂單到店鋪。
doMobilewlmember():個(gè)人中心,查看本人的個(gè)人信息。
doMobilewlupdatecart():更新購(gòu)物車餐品信息。
doMobilewlgenius():智能選餐,可按推薦組合套餐來(lái)選餐,為用戶提供推薦服務(wù)。
doMobileClear():清空購(gòu)物車,不需要訂餐時(shí)可一次清空購(gòu)物車。
doMobilewlpayment():在線支付,訂餐完成后進(jìn)行在線支付。
微信支付目前支持7種支付場(chǎng)景分別是付款碼支付、Native支付、JSAPI支付、APP支付、小程序支付、H5支付和人臉支付。根據(jù)系統(tǒng)實(shí)際需求,本系統(tǒng)采用微信支付的H5支付。
打印服務(wù)是微信公眾號(hào)訂餐系統(tǒng)的一個(gè)核心服務(wù),因?yàn)樵凇盎ヂ?lián)網(wǎng)+餐飲”的新模式下,互聯(lián)網(wǎng)不僅是餐飲訂單的流量入口,更是提升客戶服務(wù)的主要通道,這就要求店鋪及時(shí)響應(yīng)客戶需求。客戶下單后,店鋪需要及時(shí)知道有新訂單需要處理。這些需要通過(guò)自動(dòng)打印訂單來(lái)解決。
從手寫菜單到自動(dòng)化的打印菜單,小票打印機(jī)已成為必不可少的設(shè)備,對(duì)比手寫單有了一定提升,但餐廳菜單仍然存在諸多問(wèn)題。顧客到店用餐,點(diǎn)菜員點(diǎn)菜下單,采用人工送單到廚房手工分單,打印機(jī)漏單導(dǎo)致的上錯(cuò)菜,少上菜,上重菜等情況,這些都是引起客戶不滿的潛在因素導(dǎo)致客戶的流失甚至投訴。
在現(xiàn)在各大訂餐平臺(tái)的模式下,需要手機(jī)安裝APP并開啟通知服務(wù),當(dāng)有新訂單需要處理時(shí),APP會(huì)及時(shí)通知店鋪,或者通過(guò)小票打印機(jī)直接出單。目前的小票打印機(jī)一般為藍(lán)牙打印機(jī),使用較為麻煩,首先需要手機(jī)一直在線,APP一直在運(yùn)行狀態(tài),開啟藍(lán)牙與打印機(jī)進(jìn)行配對(duì),才能在打印機(jī)直接出單。當(dāng)手機(jī)沒電,或APP沒有運(yùn)行,或手機(jī)與打印機(jī)超出藍(lán)牙連接范圍,或一些其他原因,經(jīng)常導(dǎo)致有訂單未打印,店鋪也不知道有訂單的情況。這些都是藍(lán)牙連接會(huì)出現(xiàn)的問(wèn)題。
在本系統(tǒng)中,采用了全新的云打印服務(wù),只需要在店鋪放置一臺(tái)云打印機(jī),通過(guò)GPRS或WIFI連接到平臺(tái),無(wú)需準(zhǔn)備手機(jī),無(wú)需安裝APP,當(dāng)有新訂單產(chǎn)生時(shí),訂單首先進(jìn)入平臺(tái)的消息隊(duì)列,后臺(tái)服務(wù)會(huì)檢測(cè)云打印機(jī)的在線情況,如打印機(jī)在線則消息消費(fèi)者才會(huì)將訂單發(fā)送到現(xiàn)場(chǎng)打印機(jī)進(jìn)行打印,保證了訂單不會(huì)丟失。
消息推送是開放平臺(tái)主動(dòng)調(diào)用開發(fā)者服務(wù)的一個(gè)通道,用于向應(yīng)用推送訂單狀態(tài)變更、打印機(jī)狀態(tài)變更等消息。開發(fā)者需要在應(yīng)用管理的后臺(tái),設(shè)置需要監(jiān)聽的消息類型的推送URL,當(dāng)有該種類型的消息產(chǎn)生時(shí),開發(fā)平臺(tái)會(huì)向應(yīng)用設(shè)置的URL發(fā)送HTTP POST數(shù)據(jù),達(dá)到通知應(yīng)用的目的。
本系統(tǒng)以HTTP POST 的方式進(jìn)行消息推送請(qǐng)求并設(shè)計(jì)了多個(gè)可用接口,接口說(shuō)明如下:
打印接口:打印服務(wù)通知打印接口往終端發(fā)送打印指令,將訂單在現(xiàn)場(chǎng)端小票打印機(jī)打印出來(lái)。
刪除終端授權(quán)接口:如某店鋪不再使用本系統(tǒng)的服務(wù),或店鋪更換了新的打印機(jī),則可刪除終端授權(quán),不再進(jìn)行打印。
添加應(yīng)用菜單接口:給現(xiàn)場(chǎng)終端下發(fā)指令,增加操作菜單。
關(guān)機(jī)重啟接口:現(xiàn)場(chǎng)終端如需重啟,使用本接口關(guān)機(jī)重啟。
聲音調(diào)節(jié)接口:遠(yuǎn)程下發(fā)指令調(diào)整打印機(jī)的聲音大小。
獲取機(jī)型打印寬度接口:可下發(fā)指令要求現(xiàn)場(chǎng)終商上報(bào)打印寬度。小票打印機(jī)為熱敏打印機(jī),分為57mm和118mm,通過(guò)本接口可獲取現(xiàn)場(chǎng)打印機(jī)打印寬度,方便調(diào)整打印菜單格式。
獲取機(jī)型軟硬件版本接口:可下發(fā)指令獲取現(xiàn)場(chǎng)終商的軟硬件版本。
取消所有未打印接口:所有未打印訂單都存儲(chǔ)在消息隊(duì)列中,如果因停電或其他原因現(xiàn)場(chǎng)未打印出訂單,防止打印機(jī)重新連接上平臺(tái)后自動(dòng)打印,可通過(guò)本接口取消未打印訂單。
取消單條未打印接口:可取消最近一條未打印的訂單。
設(shè)置Logo接口:可設(shè)置打印出來(lái)的店鋪Logo。
取消Logo接口:可取消打印Logo。
訂單確認(rèn)接口:一般訂單為自動(dòng)確認(rèn),自動(dòng)出單,如需手動(dòng)設(shè)置,可每次調(diào)用訂單確認(rèn)接口手動(dòng)打印。
公眾號(hào)訂餐系統(tǒng)采用面向?qū)ο蟮乃枷牒头謱痈拍顏?lái)設(shè)計(jì),實(shí)現(xiàn)了邏輯、數(shù)據(jù)和表現(xiàn)的分離,從原則上保證了系統(tǒng)的可維護(hù)性。服務(wù)層完成了表現(xiàn)層與數(shù)據(jù)層的解耦,使得管理員、商戶使用的PC端和微信公眾平臺(tái)使用的微信端可以共用相同的服務(wù)接口,提高代碼復(fù)用率,同時(shí)程序更為簡(jiǎn)潔。