葛晓健
摘要:以购物中心行业为背景,针对销售中出现的种类繁多的支付方式,提出了具备多种支付方式的组合支付功能和挂单功能的收银终端的一种设计与实现方法。基于MVP分层架构和面向对象的设计方法,详细介绍了系统的功能模块划分、各功能模块的设计及部分功能的实现。对收银终端的商品查询、组合支付、打印及挂单功能做了实现与测试,对Android设备与外设打印机的通信过程及使用做了详细的介绍。
关键词:智能;商品;管理;支付
中图分类号:TP273文献标志码:A文章编号:1008-1739(2019)11-66-3
0引言
购物中心行业已成为全球最重要的零售经营方式之一,而且远突破商品零售的界限。它对一个城市商业环境的改善、消费与休闲方式的改变、投资结构的优化以及对经济繁荣的贡献等越来越显示出它的重要性和生命力。
购物中心行业的快速发展对市场管理提出了更高的要求,消费者要求购物过程更快捷,然而持续增加的客流量对这一要求提出了巨大的挑战。购物中心的收银与结算只是商场管理的一方面,提高收银的速度和便捷性,可以明显提升消费者的购物体验,为此开发了这套收银系统。
1系统总体设计
收银系统的主要功能是支付、商品查询、挂单及打印等,如图1所示。
①系统支付主要有微信、支付宝和现金支付3种;
②商品查询主要通过扫描设备读取商品信息,包括条码和二维码扫描,并提供手动输入商品信息的查询接口;
③打印机是收银终端连接的外部设备,用于打印商品信息、用户支付信息以及商品退货凭证等;
④挂单是在收银过程中经常出现的现象,系统对此作了相应的设计,允许顾客临时暂停并后续继续支付。
2系统设计与实现
系统最重要的功能是多种方式的组合支付功能,组合支付允许顾客同时使用3种支付方式,每种支付方式只支付部分金额,多样化的支付方式满足了有着不同付款习惯的顾客,但对收银系统的设计提出了更为复杂的要求。
2.1支付流程
(1)商品信息及支付信息提交流程
系统要满足组合支付的需求,应分步提交商品信息和支付信息。商品信息包含顾客购买的商品条码和数量,如果顾客购买的东西足够多,这可能是一个很大的数据。在完成电子或现金支付前,这些数据先上传到服务器,因为一旦在支付后再上传数据,这些数据在上传过程中若发生丢失,有可能是永久性的。
因此,应首先将订单信息,包括商品条码和商品数量提交到服务器。服务器收到商品信息数据后保存到数据库并生成订单号,将订单号返回收银终端,收银终端再提交支付信息,包括支付宝或微信付款码、订单号、售货员编号和支付金额等;支付信息先发送给商户服务器,由商户服务器转发给支付宝或微信服务器,最后逐步返回支付结果,数据提交流程如图2所示。
(3)支付宝支付
支付前系统已经提交了商品信息,在提交商品信息成功后,服务器将返回订单的订单号。订单号是由服务器生成的系统唯一字符串,支付时必须向服务器提交3种数据,分别是订单号、支付金额、顾客付款码和售货员编号等,支付流程如图3所示。
提交支付信息的关键代码如下所示。支付结果返回到收银终端时,支付成功会调用onResponse方法,支付失败则调用onFailure方法,收银终端分别在2个回调方法处理相应的逻辑。
2.2挂单
挂单的主要功能是保存订单信息到本地收银终端和读取本地收银终端的订单信息。
保存信息首先将存有订单信息的数组序列化为字符串,然后将字符串保存到磁盘;读取信息与保存信息的过程相反,先读取磁盘的字符串,然后将字符串反序列化为数组。关键代码如下所示。
2.3打印
(1)打印机连接
打印机是收银终端通过USB接口连接的外部设备,要与其进行通讯,首先应找到打印机的USB接口,与USB接口建立连接。每一种型号的打印机都有唯一的idProduct和idVendor,Android系统提供的UsbManager类可以查找当前终端所有通过USB连接的外部设备,并查看USB外部设备的idProduct和idVendor。系统使用的打印机型号分别是EPSON TM-U330D和EPSON TM-T60,其idProduct和idVendor如表1所示。使用UsbManager遍历当前设备连接的所有USB接口,根据idProduct和idVendor判断该USB接口是否是打印机。找到打印机的接口后,向该接口发送建立连接的指令,即收银终端与打印机的通信信道建立完成。
(2)打印机指令
打印机指令是控制打印机的一套指令集,对打印内容、页面设置、打印机走纸及切纸等以16进制的字符进行编码,将此编码通过已经与打印机建立的连接发送给打印机,打印机解析这些指令编码并执行相应的操作。
3结束语
在系统设计与实现过程中,主要介绍了購物中心销售系统终端的设计,包括功能与模块设计。针对微信和支付宝等手机支付功能、挂单功能以及打印机控制等做了详细设计与实现。基于Android的收银终端在使用过程中比传统的收银设备更小巧,占用空间更小,而且系统的交互设计更为友好。
参考文献
[1]韩建林.基于Android的移动学习平台的研究与设计[J].电子技术与软件工程,2018(4):47-48.
[2]王小伟.AES加密算法的研究与IP核设计实现[D].哈尔滨:哈尔滨工业大学,2013.
[3]曾健平,邵艳洁.Android系统架构及应用程序开发研究[J].微计算机信息,2011,27(9):1-3.
[4]夏小正.完美的移动智能终端[J].互联网天地,2009(8): 36-37.
[5]盖索林,王世江.Android开发入门指南[M].北京:人民邮电出版社,2009.
[6]余志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2010.