从pos机输出的打印数据中生成防伪税控码的方法

文档序号:6533907阅读:228来源:国知局
专利名称:从pos机输出的打印数据中生成防伪税控码的方法
技术领域
本发明是一种提取关键数据并生成防伪税控码的方法,具体地针对从POS机(商用收款机)向打印机发送的打印数据流进行解析、提取关键数据以生成防伪税控码,并将防伪税控码插入到原有的数据流中。
背景技术
目前在大、中型商业场所,应用有多种类型的POS机,即商用收款机。按照现行国家有关标准,为加强税收管理力度,税控机具中的税控存储器、发票存储器和税控IC卡中的数据能够确保准确和妥善保存。同时,为保证税款记录的真实有效性,要求现行推广使用的POS机能够根据每一笔购买款中的数据生成相应的随机防伪税控码。
目前从POS机到打印机的数据大部分通过并口线传输,打印数据直接从POS机被传送至打印机。如需计算商业购买的税收款额,通常的做法是定时核算,其工作量相当巨大,且不易控制税控发票的即时检验。
从技术而言,采取的税控数据生成方法可以修改现有POS机的软件系统,在POS软件和并口驱动之间加入中间层或者在并口驱动中加入数据处理模块。这种方法对POS系统的改动较大,设计周期长,对于采用不同数据传输类型的POS机来说,改造费用较高。而且,针对打印数据的单独计算和处理会耗费CPU资源,降低整机系统的运行效率。因此,这种税控数据生成方法可行性很低。

发明内容
本发明所述从POS机输出的打印数据中生成防伪税控码的方法,其目的在于是克服上述问题和不足而提供一种针对现有的ESC/POS指令集的打印机的打印数据流,通过对数据流进行解析、提取其中包含的关键数据以生成防伪税控码、并将防伪税控码插入到原有的数据流中打印到发票上的方法。该方法无需对POS机的软件系统进行改造,既节省费用、缩短周期,又不占用系统资源。而且税控码是随机生成的,防伪性能较高。
为实现上述发明目的,本发明所述生成防伪税控码的方法,是在现有的POS机和打印机之间增加有可接收打印指令和数据字符串的控制模块,该控制模块能够将POS机传向打印机的数据流进行智能解析、生成防伪税控码、并在原有顺序的数据流中插入防伪税控码。
针对现有的ESC/POS指令集的打印机,将向打印机发送的数据流进行解析和生成防伪税控码的流程是第一步,设定数据提取规则;事先设定数据提取规则,即对于打印数据中各相关数据项预先生成解析规则。从每一打印数据中,按解析规则提取的数据是生成防伪税控码的基础。
第二步,获取打印数据流;向打印机发送的包含有打印指令和数据的数据流,将此数据流分成打印指令和数据字符串两类,并按原有的排列顺序进行分类存储。
第三步,生成加密因子;根据预先设定的解析规则,从打印指令和字符串序列中提取出相应的字符,以做为生成防伪税控码的加密因子。
第四步,加密换算成防伪税控码;将提取出并做为因子的数据,通过随机确定的加密算法换算成防伪税控码。
第五步,插入防伪税控码到字符串中并输出打印。
将生成的防伪税控码转换成字串并按预先设定的位置,插入到原有的打印指令和数据字符串队列中,将新的打印字符串输出打印。
以上是所述生成防伪税控码的方法的主要流程。
所述生成防伪税控码的方法,从POS机向打印机输出的打印指令和数据流中获取数据以生成加密因子的解析规则,是由用户事先预定的。选择何种数据,何种数据的类型均预定设定的。
为便于加密换算成防伪税控码,所提取的数据通常是打印数据字符串中的内容。具体地,可将打印数据字符串中的关键字段求和,以生成一个加密因子。
可获取当前的日期,转换成BCD码,作为一个加密因子。
可获得此批数据流在本设备中的处理序号,作为一个加密因子。
将上述的因子,通过DES或其他加密方法运算,以生成防伪税控码。
将防伪税控码转换成的字符串插入到原有的数据串中的指定位置,预见先设定的。
如上所述,本发明所述从POS机输出的打印数据中生成防伪税控码的方法,其优点和有益效果是根据打印数据串随机的生成税控码,具有较高的防伪性能;无需对POS机的软件系统进行改造,既节省费用、缩短设计周期,又不占用系统资源。可根据提取的加密因子换算出每一笔款额中的税款,从而逐步累计而定期生成总额,提高工作效和税款统计的透明度。


图1是所述生成防伪税控码的方法流程示意图;图2是针对每一笔购买发票进行操作的流程图;图3是所述预先设定解析规则模板的流程图。
具体实施例方式
实施例1,如图1所示,本发明所述从POS机输出的打印数据中生成防伪税控码的方法,从POS机向打印机输出的打印指令和数据流中,按ESC/POS指令集对数据流进行解析,并将此数据流分成打印指令和数据字符串两类。
按原有的排列顺序进行分类存储上述两类数据。
根据预先设定的解析规则,从打印发票的字符串序列中提取出单项的金额,以及日期等做为生成防伪税控码的加密因子。
将提取出的因子通过DES加密算法换算成字符串,按预先设定的位置插入到原有的打印队列中。
将插入防伪税控码的打印指令和字符串输出至打印机,执行打印发票的操作。
如图2所示,在每一笔购买发票的打印操作中,从打印数据流中获取加密因子的解析规则,是事先预定的。其中,发票明细判断规则、发票明提取规则、防伪税控码插入规则事先预定,并且存储到配置文件中。
每次执行购买发票的打印操作,从配置文件读入相应的规则。
如图2和图3所示,针对一笔实际发票打印数据处理的流程是1、入原始的打印指令和数据流,如下(以16进制显示,连续字节流,仅以一笔交易为例)C6B72020C3FB202020202020B5A520BCDB2020CAFD20C1BF2020BDF020B6EE0A70656172202020202020203630302E30302020312E303020203630302E30300AD3A6B8B6BDF0B6EE3A202020203630302E3030D4AA0ACAB5B8B6BDF0B6EE3A202020203630302E3030D4AA0ACFD6BDF02020202020202020203630302E3030D4AA0ACAD5BFEED4B13A78736120CAD5BFEEBBFA3A3030370A4E6F2E30303030303036322020323030352D30382D31372032303A32373A35360AB0E6C8A8CBF9D3D0A3BABAA3D0C5CDF8C2E7BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBE0AB5D8D6B7A3BAC7E0B5BACAD0B6ABBAA3CEF7C2B73137BAC50AB7FECEF1C8C8CFDFA3BA283035333229333836373235312C333837383838382D383439320A1B640720202020202020202020202020BBB62020D3AD2020CAB92020D3C30A20202020202020C9CCBAA3B5BCBABDD6D0D0A1D0CDC9CCD2B5B9DCC0EDCFB5CDB30A20202020202020202020202020202058504F532020332E330A1B6D000000000000000000002、针对上述数据流经过解析的打印字串和指令是String品名单价数量金额Instr0aStringpear600.00 1.00600.00Instr0aString应付金额 600.00元Instr0aString实付金额 600.00元Instr0aString现金600.00元Instr0aString收款员xsa收款机007Instr0a
StringNo.00000062 2005-08-17 20:27:56Instr0aString版权所有某公司Instr0aString地址某地Instr0aString服务热线某电话号码Instr0aInstr1b 64 07String欢迎使用Instr0aString商海导航中小型商业管理系统Instr0aStringXPOS 3.3Instr0aInstr1b 6d3、对数据流进行解析的规则脚本是#获得一笔有效交易GetDeal;2;应付金额,NULL;0;2;实付金额,NULL;0;2;欢,迎,使,用;1;2;商海导航中小型商业管理系统;1;2;XPOS,NULL;1;1;换行;#明细开始行IsBegin;4;品,名,单,价,数,量,金,额;1;#明细项判断IsDetail;5;(10;*;1)*,(0;*;1)*.??,(0;*;1)*.??,(0;*;1)*.??;#提取明细PickUp;
6;NAME,1,SUM,4;#明细项结束行IsEnd;4;应付金额,NULL;0;nothing;#本笔交易明细提取结束IsExit;4;实付金额,NULL;0;#获得发票类型#搜索打印链表,出现下列字符串则此发票为退货发票,否则为正常销售发票GetInvoiceType;4;实付金额,-;0;#在打印链表中添加打印项目在4号函数参数字符串的下一行开始添加AddPrintItem;4;收款员,收款机;0;#脚本结束END;4、从数据流中获取一笔交易的规则,参看GetDeal部分,此部分要求接收模块按顺序找到2后面的字串,才表示接收笔交易成功。可以从数据流中接收出步骤2中的数据。
5、判断一张发票明细开始的规则,参看IsBegin部分,此部分要求解析模块找到4后面的字串,即开始从后续的字串查找明细项。
6、判断明细项的规则参看IsDetail部分,表示明细项字串的前十个字符是商品名称,“*.??”表示,需要截取带有点的字串作为单价、数量、金额。
7、如果判断明细项正确,则需要根据PickUp部分的规则来提取商品名称和销售金额。本例子中的规则指定商品名称是第一个有效字串,销售金额是第4个有效字串。
8、提取完几个明细项后,需要判断何时结束明细提取,这就需要采用IsEnd部分的规则。本例中的规则表示找到了“应付金额”后,本张小票的交易明细结束。
9、接着,按顺序搜索是否是本笔明细项提取结束,参看IsExit规则部分。本例中规则表明遇到“实付金额”字串后,表示本笔明细提取结束。
10、按上述步骤即可提取出本笔交易的明细项,如下pear 600.00 1.00 600.00其中,商品名称是pear,销售金额是600.00元。
11、获取本笔交易的类型,获取规则参看GetInvoiceType部分。本例中规定搜索“实付金额”后的值,是否为负值。如果为正表示正常票、为负表示退票。
12、获取当前时间(如20050819)、本笔交易在此设备的编号(如00012304)、本笔交易的金额和(600.00)、发票类型(如0x01),以此为加密因子,通过加密模块,生成相应的防伪税控码(如102034003834834),并将其转成字串。
13、这样,即可将防伪税控码插入到原有的打印指令流中,插入规则见AddPrintItem部分。本例中指定在找到“收款员”、“收款机”字串后,将防伪税控码字串插在其后。本例中插入防伪税控码后的数据流如下String品名单价数量金额Instr0aStringpear600.00 1.00600.00Instr0aString应付金额600.00元
Instr0aString实付金额600.00元Instr0aString现金 600.00元Instr0aString收款员xsa收款机007Instr0aString防伪码102034003834834StringNo.00000062 2005-08-17 20:27:56Instr0aString版权所有海信网络科技股份有限公司Instr0aString地址青岛市东海西路17号Instr0aString服务热线(0532)3867251,3878888-8492Instr0aInstr1b 64 07String欢迎使用Instr0aString商海导航中小型商业管理系统Instr0aStringXPOS 3.3Instr0aInstr1b 6d14、将此列表中的“String”和“Instr”字串去掉,即可生成最终的插入了防伪税控码的打印指令队列。
权利要求
1.一种从POS机输出的打印数据中生成防伪税控码的方法,其特征在于在POS机和打印机之间增加有可接收打印指令和数据字符串的控制模块,该控制模块将POS机传向打印机的数据流进行智能解析、生成防伪税控码、并在原有顺序的数据流中插入防伪税控码。
2.根据权利要求1所述的从POS机输出的打印数据中生成防伪税控码的方法,其特征在于所述生成防伪税控码的方法流程是,第一步,设定数据提取规则;事先设定数据提取规则,即对于打印数据中各相关数据项预先生成解析规则。从每一打印数据中,按解析规则提取的数据是生成防伪税控码的基础;第二步,获取打印数据流;向打印机发送的包含有打印指令和数据的数据流,将此数据流分成打印指令和数据字符串两类,并按原有的排列顺序进行分类存储;第三步,生成加密因子;根据预先设定的解析规则,从打印指令和字符串序列中提取出相应的字符,以做为生成防伪税控码的加密因子;第四步,加密换算成防伪税控码;将提取出并做为因子的数据,通过随机确定的加密算法换算成防伪税控码;第五步,插入防伪税控码到字符串中并输出打印;将生成的防伪税控码转换成字串并按预先设定的位置,插入到原有的打印指令和数据字符串队列中,将新的打印字符串输出打印。
3.根据权利要求2所述的从POS机输出的打印数据中生成防伪税控码的方法,其特征在于所述生成防伪税控码的方法,从POS机向打印机输出的打印指令和数据流中获取数据以生成加密因子的解析规则,是由用户事先预定的。
4.根据权利要求3所述的从POS机输出的打印数据中生成防伪税控码的方法,其特征在于经加密换算成防伪税控码,所提取的数据通常是打印数据字符串中的内容。
全文摘要
本发明所述从POS机输出的打印数据中生成防伪税控码的方法,针对现有的ESC/POS指令集的打印机的打印数据流,通过对数据流进行解析、提取其中包含的关键数据以生成防伪税控码、并将防伪税控码插入到原有的数据流中打印到发票上的方法。该方法无需对POS机的软件系统进行改造,既节省费用、缩短周期,又不占用系统资源。而且税控码是随机生成的,防伪性能较高。在现有的POS机和打印机之间增加有可接收打印指令和数据字符串的控制模块,该控制模块能够将POS机传向打印机的数据流进行智能解析、生成防伪税控码、并在原有顺序的数据流中插入防伪税控码。
文档编号G06F17/00GK1924787SQ20051004449
公开日2007年3月7日 申请日期2005年8月29日 优先权日2005年8月29日
发明者于秀棠, 王建军, 慕安臻, 强仁, 李龙伟 申请人:海信集团有限公司, 青岛海信智能商用设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1