一种智能反补的批量开具电子发票的方法和系统与流程

文档序号:17117617发布日期:2019-03-15 23:29阅读:514来源:国知局
一种智能反补的批量开具电子发票的方法和系统与流程

本发明涉及税控领域,并且更具体地,涉及一种智能反补的批量开具电子发票的方法和系统。



背景技术:

在电子发票是信息时代的产物,同普通发票一样,具有同等的法律效力。与传统纸质发票相比,电子发票具有无纸化、低能耗、易保存、易查询等优点,适用于众多行业。

电商、石化、商超等行业的开票企业具有开票量大、业务高峰集中、多系统协同开具等特点,这些企业关注的重点在于海量订单数据的批量开票问题,各类开票请求的容错开具问题。

目前,针对这类企业电子发票开具的业务机制主要有两种,第一种是一次性反馈机制,即如果开具不成功,直接反馈错误,需要重新提交请求数据,这种机制需要开票请求方明确所有可能的开票错误,根据每一种错误进行调整,重新提交开票请求,系统间协同处理效率很低,也极大影响用户体验。

第二种是无限次反补机制,即如果开具不成功,会自动定时提取开具不成功开票数据进行反复开票请求,直到开具成功为止。当网络原因引起的开具失败时,这种机制会有效补充开具电子发票,但是如果就是数据本身的问题导致开具失败,此时这种机制会造成很多无效请求,提交再多次都不会有任何效果,同时造成网络资源浪费,影响其他正常数据的传输。

因此如何提高批量开票时系统间协同处理的效率,同时又不会造成网络资源浪费就成为现有技术中急需解决的一个问题。



技术实现要素:

为了解决现有技术中批量开具发票时不能同时满足提高系统间协同处理效率和充分利用网络资源的技术问题,本发明提供一种智能反补的批量开具电子发票的方法,所述方法包括:

步骤1、接收开票请求数据,校验所述开票请求数据的合法性,当数据合法时,转至步骤2,当所述数据不合法时,直接返回错误原因,所述电子发票的开票流程结束;

步骤2、执行所述电子发票的开票流程中的步骤p,并生成执行步骤p的返回码,当所述返回码为执行成功代码时,令p=p+1,并重复执行步骤2,当所述为开票错误代码ec时,转至步骤3,其中,1≤p≤n,n为自然数,设p的初始值为1;

步骤3、根据所述开票错误代码ec检索预先设置的反补规则库确定反补规则<s,p,ec,c>,当反补标志s确定不需要反补时,直接返回错误原因,所述电子发票的开票流程结束,当反补标志s确定需要反补时,转至步骤4,其中s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数;

步骤4、在所述步骤p中对返回码为开票错误代码ec的开票请求数据执行第i次业务反补,设i的初始值为1;

步骤5、当i<c且步骤p执行第i次业务反补的返回码为错误代码ec时,令i=i+1,并返回步骤4,当i=c且步骤p执行第i次业务反补的返回码为错误代码ec时,直接返回错误原因,所述电子发票的开票流程结束,当i≤c,p<n且步骤p执行第i次业务反补的返回码为执行成功代码时,令p=p+1,并返回至步骤2,当i≤c,p=n且步骤p执行第i次业务反补的返回码为执行成功代码时,所述电子发票的开票流程结束。

进一步地,所述方法在接收开票请求数据,校验所述开票请求数据的合法性之前还包括建立反补规则库,对电子发票开票流程中需要反补的情况设置反补规则<s,p,ec,c>,并纳入所述反补规则库,所述反补规则<s,p,ec,c>中,s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数。

进一步地,所述方法中的反补规则库持续更新,当电子发票批量开具的过程中出现新的反补情况时,加入新的反补规则。

进一步地,所述电子发票的开票流程包括开票数据赋码、开票数据签章和开票数据交付3个步骤。

进一步地,所述反补规则<s,p,ec,c>中反补重试的次数c小于10。

根据本发明的另一方面,本发明提供一种智能反补的批量开具电子发票的系统,所述系统包括:

数据验证单元,其用于接收开票请求数据,校验所述开票请求数据的合法性;

n个开票执行单元,其分别用于执行所述电子发票的开票流程中某个步骤,并生成执行步骤的返回码,其中,所述返回码为执行成功代码或者开票错误代码;

反补调试单元,其用于根据所述开票错误代码ec检索预先设置的反补规则库确定反补规则<s,p,ec,c>,当反补标志s确定不需要反补时,直接返回错误原因,当反补标志s确定需要反补时,返回开票执行单元执行业务反补。

进一步地,所述系统还包括反补规则库单元,其用于建立反补规则库,对电子发票开票流程中需要反补的情况设置反补规则<s,p,ec,c>,所述反补规则<s,p,ec,c>中,s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数。

进一步地,所述反补规则库单元持续更新,当电子发票批量开具的过程中出现新的反补情况时,加入新的反补规则。

进一步地,所述开票执行单元包括3个模块,其中:

开票数据赋码模块,其用于对开票数据进行赋码;

开票数据签章模块,其用于对赋码成功的开票数据进行签章;

开票数据交付模块,其用于对签章成功的开票数据进行交付。

进一步地,所述反补规则库单元中设置的反补规则<s,p,ec,c>中反补重试的次数c小于10。

本发明技术方案提供的智能反补的批量开具电子发票的方法和系统,所述方法和系统通过根据批量开具发票过程中出现的各种情况,预先建立反补规则库,将开具发票时需要反补的情况纳入反补规则库,然后在批量开具发票的过程中,针对发票开具流程中的每个步骤,判断所述步骤的执行情况,当所述步骤执行不成功时,通过调用反补规则库中的反补规则继续执行所述步骤,当按照反补规则中的反补次数反补失败时,所述电子发票的开票流程结束,进行反补失败原因的检查,并更新反补规则库。本发明所述的智能反补的批量开具电子发票的方法和系统有利于批量开具发票的企业大幅降低同一开票请求多次提交的概率,自动化的将正确数据反补到正常开具发票的流程中,同时限制反补次数,减少了无效操作的可能性,减轻了系统间的频繁交互,有效提高了企业批量开具发票的效率,提升了发票开具系统的整体性能。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明优选实施方式的智能反补的批量开具电子发票的方法的流程图;

图2为根据本发明优选实施方式的智能反补的批量开具电子发票的系统的结构示意图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明优选实施方式的智能反补的批量开具电子发票的方法的流程图。如图1所示,本优选实施方式所述的智能反补的批量开具电子发票的方法100从步骤101开始。

在步骤101,接收开票请求数据,校验所述开票请求数据的合法性,当数据合法时,转至步骤102,当所述数据不合法时,直接返回错误原因,所述电子发票的开票流程结束。

在步骤102,执行所述电子发票的开票流程中的步骤p,并生成执行步骤p的返回码,当所述返回码为执行成功代码时,令p=p+1,并重复执行步骤102,当所述为开票错误代码ec时,转至步骤103,其中,1≤p≤n,n为自然数,设p的初始值为1。

在步骤103,根据所述开票错误代码ec检索预先设置的反补规则库确定反补规则<s,p,ec,c>,当反补标志s确定不需要反补时,直接返回错误原因,所述电子发票的开票流程结束,当反补标志s确定需要反补时,转至步骤104,其中s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数。

在本优选实施方式中,s取0或者1,当s=0时,无论后面三个参数为何值,均不需要反补,当s=1时,表示需要进行反补,并根据后面三个参数确定反补规则。<0,1,****,*>中第二个参数为具体的开票流程中的步骤,此时为对第一个步骤进行反补,<0,n,****,*>为对第n个步骤进行反补;<0,2,2001,*>中第三个参数为具体的错误编码,即对错误编码为2001的开票请求数据,在步骤2中进行反补,<0,n,3003,*>即对错误编码为3003的开票请求数据,在步骤n中进行反补;<0,3,3001,5>中第四个参数为反补重试次数,即对错误编码为3001的开票请求数据,在步骤3中进行反补,重试5次。<0,4,4001,n>为对错误编码为4001的开票请求数据,在步骤4中进行反补,重试n次。

在本优选实施方式中,常见的需要反补的错误编码有:

(1)赋码错误编码2001,错误描述:发票赋码失败,赋码服务器无响应或者响应为空;

(2)签章错误编码3001,错误描述:发票签章失败,签章服务器无响应或者响应为空;

(3)交付错误代码4001,错误描述:发票交付失败,交付服务器无响应或者响应为空;

(4)推送错误代码5001,错误描述:发票推送失败,接受方服务未开启;

(5)数据库错误代码6001,错误描述:数据库连接异常;

(6)网络错误代码7001,错误描述:网络异常。

在步骤104,在所述步骤p中对返回码为开票错误代码ec的开票请求数据执行第i次业务反补,设i的初始值为1。

在步骤105,当i<c且步骤p执行第i次业务反补的返回码为错误代码ec时,令i=i+1,并返回步骤104,当i=c且步骤p执行第i次业务反补的返回码为错误代码ec时,直接返回错误原因,所述电子发票的开票流程结束;当i≤c,p<n且步骤p执行第i次业务反补的返回码为执行成功代码时,令p=p+1,并返回至步骤102,当i≤c,p=n且步骤p执行第i次业务反补的返回码为执行成功代码时,所述电子发票的开票流程结束。

优选地,所述方法在接收开票请求数据,校验所述开票请求数据的合法性之前还包括建立反补规则库,对电子发票开票流程中需要反补的情况设置反补规则<s,p,ec,c>,并纳入所述反补规则库,所述反补规则<s,p,ec,c>中,s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数。

优选地,所述方法中的反补规则库持续更新,当电子发票批量开具的过程中出现新的反补情况时,加入新的反补规则。

优选地,所述电子发票的开票流程包括开票数据赋码、开票数据签章和开票数据交付3个步骤。

优选地,所述反补规则<s,p,ec,c>中反补重试的次数c小于10。

图2为根据本发明优选实施方式的智能反补的批量开具电子发票的系统的结构示意图。如图2所示,本优选实施方式所述的智能反补的批量开具电子发票的系统200包括:

反补规则库单元201,其用于建立反补规则库,对电子发票开票流程中需要反补的情况设置反补规则<s,p,ec,c>,所述反补规则<s,p,ec,c>中,s是反补标志,p是电子发票的开票流程中的步骤数,ec是开票错误编码,c是开票反补重试的次数。

数据验证单元202,其用于接收开票请求数据,校验所述开票请求数据的合法性;

n个开票执行单元203,其分别用于执行所述电子发票的开票流程中某个步骤,并生成执行步骤的返回码,其中,所述返回码为执行成功代码或者开票错误代码;

反补调试单元204,其用于根据所述开票错误代码ec检索预先设置的反补规则库确定反补规则<s,p,ec,c>,当反补标志s确定不需要反补时,直接返回错误原因,当反补标志s确定需要反补时,返回开票执行单元执行业务反补。

优选地,所述反补规则库单元持续更新,当电子发票批量开具的过程中出现新的反补情况时,加入新的反补规则。

优选地,所述开票执行单元包括3个模块,其中:

开票数据赋码模块,其用于对开票数据进行赋码;

开票数据签章模块,其用于对赋码成功的开票数据进行签章;

开票数据交付模块,其用于对签章成功的开票数据进行交付。

优选地,所述反补规则库单元中设置的反补规则<s,p,ec,c>中反补重试的次数c小于10。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1