葛曉健
摘要:以購(gòu)物中心行業(yè)為背景,針對(duì)銷(xiāo)售中出現(xiàn)的種類(lèi)繁多的支付方式,提出了具備多種支付方式的組合支付功能和掛單功能的收銀終端的一種設(shè)計(jì)與實(shí)現(xiàn)方法?;贛VP分層架構(gòu)和面向?qū)ο蟮脑O(shè)計(jì)方法,詳細(xì)介紹了系統(tǒng)的功能模塊劃分、各功能模塊的設(shè)計(jì)及部分功能的實(shí)現(xiàn)。對(duì)收銀終端的商品查詢(xún)、組合支付、打印及掛單功能做了實(shí)現(xiàn)與測(cè)試,對(duì)Android設(shè)備與外設(shè)打印機(jī)的通信過(guò)程及使用做了詳細(xì)的介紹。
關(guān)鍵詞:智能;商品;管理;支付
中圖分類(lèi)號(hào):TP273文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2019)11-66-3
0引言
購(gòu)物中心行業(yè)已成為全球最重要的零售經(jīng)營(yíng)方式之一,而且遠(yuǎn)突破商品零售的界限。它對(duì)一個(gè)城市商業(yè)環(huán)境的改善、消費(fèi)與休閑方式的改變、投資結(jié)構(gòu)的優(yōu)化以及對(duì)經(jīng)濟(jì)繁榮的貢獻(xiàn)等越來(lái)越顯示出它的重要性和生命力。
購(gòu)物中心行業(yè)的快速發(fā)展對(duì)市場(chǎng)管理提出了更高的要求,消費(fèi)者要求購(gòu)物過(guò)程更快捷,然而持續(xù)增加的客流量對(duì)這一要求提出了巨大的挑戰(zhàn)。購(gòu)物中心的收銀與結(jié)算只是商場(chǎng)管理的一方面,提高收銀的速度和便捷性,可以明顯提升消費(fèi)者的購(gòu)物體驗(yàn),為此開(kāi)發(fā)了這套收銀系統(tǒng)。
1系統(tǒng)總體設(shè)計(jì)
收銀系統(tǒng)的主要功能是支付、商品查詢(xún)、掛單及打印等,如圖1所示。
①系統(tǒng)支付主要有微信、支付寶和現(xiàn)金支付3種;
②商品查詢(xún)主要通過(guò)掃描設(shè)備讀取商品信息,包括條碼和二維碼掃描,并提供手動(dòng)輸入商品信息的查詢(xún)接口;
③打印機(jī)是收銀終端連接的外部設(shè)備,用于打印商品信息、用戶(hù)支付信息以及商品退貨憑證等;
④掛單是在收銀過(guò)程中經(jīng)常出現(xiàn)的現(xiàn)象,系統(tǒng)對(duì)此作了相應(yīng)的設(shè)計(jì),允許顧客臨時(shí)暫停并后續(xù)繼續(xù)支付。
2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)最重要的功能是多種方式的組合支付功能,組合支付允許顧客同時(shí)使用3種支付方式,每種支付方式只支付部分金額,多樣化的支付方式滿(mǎn)足了有著不同付款習(xí)慣的顧客,但對(duì)收銀系統(tǒng)的設(shè)計(jì)提出了更為復(fù)雜的要求。
2.1支付流程
(1)商品信息及支付信息提交流程
系統(tǒng)要滿(mǎn)足組合支付的需求,應(yīng)分步提交商品信息和支付信息。商品信息包含顧客購(gòu)買(mǎi)的商品條碼和數(shù)量,如果顧客購(gòu)買(mǎi)的東西足夠多,這可能是一個(gè)很大的數(shù)據(jù)。在完成電子或現(xiàn)金支付前,這些數(shù)據(jù)先上傳到服務(wù)器,因?yàn)橐坏┰谥Ц逗笤偕蟼鲾?shù)據(jù),這些數(shù)據(jù)在上傳過(guò)程中若發(fā)生丟失,有可能是永久性的。
因此,應(yīng)首先將訂單信息,包括商品條碼和商品數(shù)量提交到服務(wù)器。服務(wù)器收到商品信息數(shù)據(jù)后保存到數(shù)據(jù)庫(kù)并生成訂單號(hào),將訂單號(hào)返回收銀終端,收銀終端再提交支付信息,包括支付寶或微信付款碼、訂單號(hào)、售貨員編號(hào)和支付金額等;支付信息先發(fā)送給商戶(hù)服務(wù)器,由商戶(hù)服務(wù)器轉(zhuǎn)發(fā)給支付寶或微信服務(wù)器,最后逐步返回支付結(jié)果,數(shù)據(jù)提交流程如圖2所示。
(3)支付寶支付
支付前系統(tǒng)已經(jīng)提交了商品信息,在提交商品信息成功后,服務(wù)器將返回訂單的訂單號(hào)。訂單號(hào)是由服務(wù)器生成的系統(tǒng)唯一字符串,支付時(shí)必須向服務(wù)器提交3種數(shù)據(jù),分別是訂單號(hào)、支付金額、顧客付款碼和售貨員編號(hào)等,支付流程如圖3所示。
提交支付信息的關(guān)鍵代碼如下所示。支付結(jié)果返回到收銀終端時(shí),支付成功會(huì)調(diào)用onResponse方法,支付失敗則調(diào)用onFailure方法,收銀終端分別在2個(gè)回調(diào)方法處理相應(yīng)的邏輯。
2.2掛單
掛單的主要功能是保存訂單信息到本地收銀終端和讀取本地收銀終端的訂單信息。
保存信息首先將存有訂單信息的數(shù)組序列化為字符串,然后將字符串保存到磁盤(pán);讀取信息與保存信息的過(guò)程相反,先讀取磁盤(pán)的字符串,然后將字符串反序列化為數(shù)組。關(guān)鍵代碼如下所示。
2.3打印
(1)打印機(jī)連接
打印機(jī)是收銀終端通過(guò)USB接口連接的外部設(shè)備,要與其進(jìn)行通訊,首先應(yīng)找到打印機(jī)的USB接口,與USB接口建立連接。每一種型號(hào)的打印機(jī)都有唯一的idProduct和idVendor,Android系統(tǒng)提供的UsbManager類(lèi)可以查找當(dāng)前終端所有通過(guò)USB連接的外部設(shè)備,并查看USB外部設(shè)備的idProduct和idVendor。系統(tǒng)使用的打印機(jī)型號(hào)分別是EPSON TM-U330D和EPSON TM-T60,其idProduct和idVendor如表1所示。使用UsbManager遍歷當(dāng)前設(shè)備連接的所有USB接口,根據(jù)idProduct和idVendor判斷該USB接口是否是打印機(jī)。找到打印機(jī)的接口后,向該接口發(fā)送建立連接的指令,即收銀終端與打印機(jī)的通信信道建立完成。
(2)打印機(jī)指令
打印機(jī)指令是控制打印機(jī)的一套指令集,對(duì)打印內(nèi)容、頁(yè)面設(shè)置、打印機(jī)走紙及切紙等以16進(jìn)制的字符進(jìn)行編碼,將此編碼通過(guò)已經(jīng)與打印機(jī)建立的連接發(fā)送給打印機(jī),打印機(jī)解析這些指令編碼并執(zhí)行相應(yīng)的操作。
3結(jié)束語(yǔ)
在系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中,主要介紹了購(gòu)物中心銷(xiāo)售系統(tǒng)終端的設(shè)計(jì),包括功能與模塊設(shè)計(jì)。針對(duì)微信和支付寶等手機(jī)支付功能、掛單功能以及打印機(jī)控制等做了詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。基于Android的收銀終端在使用過(guò)程中比傳統(tǒng)的收銀設(shè)備更小巧,占用空間更小,而且系統(tǒng)的交互設(shè)計(jì)更為友好。
參考文獻(xiàn)
[1]韓建林.基于Android的移動(dòng)學(xué)習(xí)平臺(tái)的研究與設(shè)計(jì)[J].電子技術(shù)與軟件工程,2018(4):47-48.
[2]王小偉.AES加密算法的研究與IP核設(shè)計(jì)實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[3]曾健平,邵艷潔.Android系統(tǒng)架構(gòu)及應(yīng)用程序開(kāi)發(fā)研究[J].微計(jì)算機(jī)信息,2011,27(9):1-3.
[4]夏小正.完美的移動(dòng)智能終端[J].互聯(lián)網(wǎng)天地,2009(8): 36-37.
[5]蓋索林,王世江.Android開(kāi)發(fā)入門(mén)指南[M].北京:人民郵電出版社,2009.
[6]余志龍.Google Android SDK開(kāi)發(fā)范例大全[M].北京:人民郵電出版社,2010.
計(jì)算機(jī)與網(wǎng)絡(luò)2019年11期