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

1. 常规收银系统模块结构

1.1. 商品管理

1.2. 会员系统

1.3. 报表系统

1.4. 会员卡系统

1.5. 库存管理

2. 支持的收银硬件设备

· 触摸屏。可配置虚拟鼠标。

· 条码扫描枪。可配置虚拟键盘。

· 小票打印机。可配置标准打印机,或支持ESC/POS协议,或支持JavaPOS。如果ESC/POS协议已经被占用了,那只能用串口或并口了。

· 税务打印机。JavaPOS支持。

· 客显设备。 或支持ESC/POS协议,或支持JavaPOS,如果ESC/POS协议已经被占用了,那只能用串口或并口了。

· 钱箱。 与小票打印机连接或支持JavaPOS的。

· 数据连接。 Metrologic Scanpal 2连到串口。

· 称。支持Samsung协议或Dialog1协议。连到收银终端的串口。

· 磁条卡读卡器(MSR)。配置虚拟标准键盘。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3. 核心模块收银单处理

当前收银单与收银单列表,方便多个单子收银

收银单列表如下图

4. ISO8583协议

8583协议是基于ISO8583报文国际标准的包格式的通讯协议,8583包最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583包前面一段为位图,它是打包解包确定字段域的关键代替。8583协议多在POS机的开发上使用

ISO8583报文(简称8583包)又称8583报文是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。

8583包前面一段为位图,用来确定包的字段域组成情况。

其中位图是8583包的灵魂,它是打包解包确定字段域的关键, 而了解每个字段域的属性则是填写数据的基础。在POS机的开发上时经常要用到,例如回头客会员管理系统在POS机上的应用就是采用8583报文

开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等。在各个计算机设备之间,需要交换数据。我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有对数据进行编码,则这些数据没有人能够理解,属于没有用的数据。起初的X.25、SDLC以及现在流行的TCP/IP网络协议都提供底层的通讯编码协议,它们解决了最底层的通讯问题,能够将一串字符从一个地方传送到另一个地方。但是,仅仅传送字符串是没有太大意义的,怎样来解析字符串代表什么内容是非常重要的,否则传送一些“0123abcd”的字符串也是无用的乱码。

让我们随着时光回到几十年前的某个时刻,假设我们被推到历史的舞台上,由我们来设计一个通用报文协议,来解决金融系统之间的报文交换,暂且称该协议叫做ISO8583协议。此时,技术是在不断的前行,当初IBM一支独秀的局面好像已经不妙了,各种大小不一的公司都进入金融行业以求能有所斩获,呈一片百花齐放的局面。我们怎样来设计一个报文协议,能够将这些如雨后春笋般出现的所有公司都纳入进来,其实也不是一件很简单的事。

我们还是先一步步的来考虑吧。金融行业其实涉及到的数据内容并不是成千上万,无法统计,恰恰相反,是比较少的。我们都可以在心底数得过来,象交易类型、帐号、帐户类型、密码、交易金额、交易手续费、日期时间、商户代码、2磁3磁数据、交易序列号等,把所有能够总结出来的都总结起来不过100个左右的数据。那我们可以首先简单的设计ISO8583,定义128个字段,将所有能够考虑到的类似上面提到的“帐号”等金融数据类型,按照一个顺序排起来,分别对应128个字段中的一个字段。每个数据类型占固定的长度,这个顺序和长度我们都事先定义好。这样就简单了,要发送一个报文时,就将128个字段按照顺序接起来,然后将接起来的整串数据包发送出去。

任何金融软件收到ISO8583包后,直接按照我们定义的规范解包即可,因为整个报文的128个字段从哪一位到哪一位代表什么,大家都知道,只要知道你的数据包是ISO8583包即可,我们都已经定义好了。比如第1个字段是“交易类型”,长度为4位,第2个字段位是“帐号”,为19位等等。接收方就可以先取4位,再取接着的19位,依次类推,直到整个数据包128个字段都解完为止。

有了这个128bit的报文头,我们就可以只发送需要的5个字段了。怎样组织报文?先放上这128bit,即16个字节的头,然后在头后面放2、3、6、8、9字段,这些字段紧挨在一起,3和6之间也不需要填上4、5这两个字段了。接收方收到这个报文,它会根据128bit的报文头来解包,它自然知道把第3个字段取出后,就直接在第3字段的后面取第6个字段,每个字段的长度在ISO8583里面都定义好了,很轻松就把数据包解出来了。

这下好了,为了解决上面的第二问题,我们只是在报文中增加了16个字节的数据,就轻松搞定了,我们把这16个字节称为bit map,即位图,用来表示某个位是否存在。不过我们再稍微优化一下,考虑到很多时候报文不需要128个字段这么多,其一半64个字段都不一定能够用完。那我可以将报文头由128bit减到64bit,只有在需要的时候才把剩下的64bit放到报文里面,这样报文长度不又少了8个字节吗?

5. jPOS是一个开源的电子交易Java库和框架,

能够通过定制和扩展,实现任何特殊的财务交换操作,适合要求高可用性的关键性业务处理过程。

5.0.1. jpos-1.6.4 使用JAVA编写的, 在POS机的ISO8583协议组包和解包程序..

6. 参考

JPos 学习 - - ITeye技术网站.htm

前段时间研究的jpos的文档 - 日出而作兮勤于外,日落而归兮忙于内 - BlogJava.htm

Atitit.收银系统模块架构attilax 总结相关推荐

  1. 收银台模块php课程设计,【基于PHP+MySQL的美发店收银系统的设计与实现最终版材料】...

    基于PHP+MySQL的美发店收银系统的设计与实现(最终版) <基于PHP+MySQL的美发店收银系统的设计与实现.doc>由会员分享,可免费在线阅读全文,更多与<基于PHP+MyS ...

  2. 设计一个简单分页存储管理系统_【系统架构】如何设计一个简单灵活的收银系统?看这里!(1)...

    在电商项目中,收银系统是一个不可或缺的功能,因为你不仅要通过它来进行收款.退款,而且也要通过它进行财务的对账.报税等.因此,如何设计一个简单灵活的收银系统,对于开发电商项目来说非常重要. 那如何设计一 ...

  3. 支付退款流程设计_【系统架构】如何设计一个简单灵活的收银系统?看这里!(1)...

    在电商项目中,收银系统是一个不可或缺的功能,因为你不仅要通过它来进行收款.退款,而且也要通过它进行财务的对账.报税等.因此,如何设计一个简单灵活的收银系统,对于开发电商项目来说非常重要. 那如何设计一 ...

  4. java课设超市收银系统_基于jsp的超市收银系统-JavaEE实现超市收银系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的超市收银系统, 该项目可用各类java课程设计大作业中, 超市收银系统的系统架构分为前后台两部分, 最终实现在线上 ...

  5. 收银系统软件测试,收银系统测试报告.docx

    收银系统测试报告 概述编写目的 本测试总结报告主要有以下几个目的:1.对该系统做一个正确的评价2.评估测试执行和测试计划是否符合 3.最主要目的找出系统存在的缺陷,为修复和预防bug提供建议项目背景 ...

  6. 安卓收银系统小票打印机数据采集插件项目需求文档

    创建时间 2017-12-12 1  引言 1.1项目背景 针对线上消费与线下消费界线逐渐模糊的商业消费现状,我们团队提出"以轻量的方式接入实体商业,采集全面的线下消费数据,建立共享的线下会 ...

  7. 初级项目vue实战项目 收银系统

    Vue实战视频-快餐店收银系统 (共11集) 2017-05-22 分类:Vue.js视频教程 / 视频教程 阅读(126832) 评论(136)  课程前言 这是我网站恢复后写的第一篇文章,在关站这 ...

  8. 基于B/S的超市收银系统

    技术:Java.JSP等 摘要: 随着经济,技术的发展,传统超市收银的缺点越来越突出,具体体现在以下几个方面:1.商品没有很好的管理机制.2.出售商品与库存关联关系不强.3,浪费大量人力,时间来统计. ...

  9. [附源码]Python计算机毕业设计SSM基于java的餐厅收银系统(程序+LW)

    环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,St ...

  10. 收银系统服务器数据库,收银系统服务器数据库

    收银系统服务器数据库 内容精选 换一换 计费项包括存储费和流量费,存储费根据存储库的不同进行收取.详细的计费项目如下所示:存储费:云硬盘备份存储库:备份云硬盘时购买.云服务器备份存储库:备份普通云服务 ...

最新文章

  1. Linux——进程管理
  2. 大学留级两年不敢和家人说_您说什么:如何与家人保持联系?
  3. 前端笔试之手写代码(一)
  4. Oracle/云MySQL/MsSQL“大迁移”真相及最优方案
  5. Java案例:文件切割与合并
  6. 使用AI进行人脸检测
  7. Java设计模式学习总结(15)——行为型模式之责任链模式
  8. explict关键字
  9. 07年博客迁移:心情记事
  10. Java反射机制demo(三)—获取类中的构造函数
  11. 《机器学习实战》学习笔记第二章 —— K-近邻算法
  12. Selenium调用使用360浏览器,QQ浏览器,遨游浏览器,猎豹浏览器,Chromium
  13. 小说网站源码_ptcms精美小说阅读网站源码(带采集规则)
  14. 电脑屏幕“重影”解决方法
  15. 【报名开启】2021年博客之星总评选,属于你的年终表彰
  16. 我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知
  17. 六大接口管理平台,总有一款适合你的!
  18. Grid Control 和 Database Control
  19. 开发者不可错过的 10 个人工智能开源项目
  20. android 神气插件 自动补全tabnine

热门文章

  1. 关于文件服务器共享文件的备份与恢复
  2. Powershell进阶学习(1) 浅谈Powershell学习方法
  3. c 语言文本文件判断是否到达结尾的问题
  4. Python之迭代器(iterator)
  5. python基础和软件测试
  6. day20T3改错记
  7. BZOJ4571: [Scoi2016]美味【主席树】【贪心】
  8. AJAX不能访问MVC后台程序的问题
  9. 动态修改类注解(赋值)
  10. unity2d 5.0游戏练习制作记录——2d 飞行射击游戏(一)