Atitit.收银系统模块架构attilax总结
1.常规收银系统模块结构1
1.1.商品管理1
1.2.会员系统1
1.3.报表系统1
1.4.会员卡系统1
1.5.库存管理1
2.支持的收银硬件设备2
3.核心模块收银单处理2
4.ISO8583协议3
5.jPOS是一个开源的电子交易Java库和框架,5
5.1.1.jpos-1.6.4使用JAVA编写的,在POS机的ISO8583协议组包和解包程序..5
6.参考5
·触摸屏。可配置虚拟鼠标。
·条码扫描枪。可配置虚拟键盘。
·小票打印机。可配置标准打印机,或支持ESC/POS协议,或支持JavaPOS。如果ESC/POS协议已经被占用了,那只能用串口或并口了。
·税务打印机。JavaPOS支持。
·客显设备。或支持ESC/POS协议,或支持JavaPOS,如果ESC/POS协议已经被占用了,那只能用串口或并口了。
·钱箱。与小票打印机连接或支持JavaPOS的。
·数据连接。MetrologicScanpal2连到串口。
·称。支持Samsung协议或Dialog1协议。连到收银终端的串口。
·磁条卡读卡器(MSR)。配置虚拟标准键盘。
作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com
当前收银单与收银单列表,方便多个单子收银
收银单列表如下图
ISO8583报文(简称8583包)又称8583报文是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。
8583包前面一段为位图,用来确定包的字段域组成情况。
其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。在POS机的开发上时经常要用到,例如回头客会员管理系统在POS机上的应用就是采用8583报文
有了这个128bit的报文头,我们就可以只发送需要的5个字段了。怎样组织报文?先放上这128bit,即16个字节的头,然后在头后面放2、3、6、8、9字段,这些字段紧挨在一起,3和6之间也不需要填上4、5这两个字段了。接收方收到这个报文,它会根据128bit的报文头来解包,它自然知道把第3个字段取出后,就直接在第3字段的后面取第6个字段,每个字段的长度在ISO8583里面都定义好了,很轻松就把数据包解出来了。这下好了,为了解决上面的第二问题,我们只是在报文中增加了16个字节的数据,就轻松搞定了,我们把这16个字节称为bitmap,即位图,用来表示某个位是否存在。不过我们再稍微优化一下,考虑到很多时候报文不需要128个字段这么多,其一半64个字段都不一定能够用完。那我可以将报文头由128bit减到64bit,只有在需要的时候才把剩下的64bit放到报文里面,这样报文长度不又少了8个字节吗?
能够通过定制和扩展,实现任何特殊的财务交换操作,适合要求高可用性的关键性业务处理过程。