电子发票开具方法及系统的制作方法

xiaoxiao2020-10-23  14

电子发票开具方法及系统的制作方法
【技术领域】
[0001]本发明实施例涉及计算机数据处理技术领域,尤其涉及一种电子发票开具方法和系统。
【背景技术】
[0002]随着电子商务的迅猛发展,网购已经逐渐成为了人们生活中不可或缺的一部分。国家税务总局明确提出要在全国积极推广使用网络发票管理系统开具电子发票。而电子商务无疑是最适合进行电子发票推广的平台。随着在电子商务领域电子发票的推广,消费者已经认识到开具电子发票的易保管、易调阅、易查询等等好处。电子发票的开票量逐日提升,在电子商务领域大有赶超传统纸质发票开票量之势。
[0003]在网购的过程中,用户经常因为对商品不满意等原因而退货或者取消订单。在此种情况下,因为对商品已经出具了具有金额的电子发票,为了弥补账面上的收支,应该再出具一张用来抵消消费金额的电子发票。在这张用来抵消消费金额的电子发票的票面上,各种商品对应的消费金额应该是负值。在电子商务领域,通常将这种用来抵消消费金额的电子发票成为“红票”。而将消费金额是正值的电子发票成为“蓝票”。“蓝票”的出具是现有的电子商务系统能共解决的。但是,对于“红票”的出具,现有的电子商务系统并没有行之有效的解决方案。

【发明内容】

[0004]针对上述技术问题,本发明实施例提供了一种电子发票开具方法和系统,以实现对用于抵消消费金额的电子发票的自动出具。
[0005]第一方面,本发明实施例提供了一种电子发票开具方法,所述方法包括:
[0006]当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为;
[0007]所述发票开具触发模块向所述消费者模块发送所述电子发票消息;
[0008]获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票。
[0009]第二方面,本发明实施例还提供了一种电子发票开具系统,所述系统包括:
[0010]发票开具触发模块,用于当获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,以及向所述消费者模块发送所述电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为;
[0011]消费者模块,用于获取到所述电子发票消息之后,根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票;
[0012]电子发票模块,用于在所述消费者模块的指示下,根据所述电子发票消息中的订单号生成用于抵消消费金额的电子发票。
[0013]本发明实施例提供的电子发票开具方法和系统通过当获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,查询是否有订阅所述电子发票消息的消费者模块,并当存在订阅所述电子发票消息的消费者模块之时,向消费者模块发送所述电子发票消息,最后根据所述电子发票消息中的订单号生成用于抵消消费金额的电子发票,从而实现了对用于抵消消费金额电子发票的自动出具。
【附图说明】
[0014]图1是本发明第一实施例提供的电子发票开具方法的流程图;
[0015]图2是本发明第一实施例提供的用于抵消消费金额的电子发票的示意图;
[0016]图3是本发明第二实施例提供的电子发票开具方法中消息生成的流程图;
[0017]图4是本发明第三实施例提供的电子发票开具方法中电子发票生成的流程图;
[0018]图5是本发明第四实施例提供的电子发票开具方法中电子发票生成的流程图;
[0019]图6是本发明第五实施例提供的电子发票开具装置的结构图。
【具体实施方式】
[0020]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0021]第一实施例
[0022]本实施例提供了电子发票开具方法的一种技术方案。该技术方案可以由电子发票开具系统来执行,该系统可以被集成在服务端的一台计算装置中,也可以分布在网络上,有多台计算装置相互配合来执行。在一种优选的应用场景下,所述电子发票开具系统中的发票开具触发模块设置在电商平台中,而电子发票模块设置在后端的财务处理平台中,并且二者之间通过消费者模块相连接,以便二者之间进行通信。
[0023]参见图1,所述电子发票开具方法包括:
[0024]S11,当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为。
[0025]在本实施例中,生成用来抵消消费金额的电子发票的动作是根据用户的发票开具触发行为而触发的。具体的,用户的发票开具触发行为包括用户的订单取消行为或者退款行为。
[0026]在所述电子发票开具系统中,有固定的软件模块来负责获取用户的发票开具触发行为。具体的,由订单模块来负责获取用户的订单取消行为,而由退款模块负责获取用户的退款行为。所述订单模块及所述退款模块被统称为发票开具触发模块。也就是说,所述发票开具触发模块包括所述订单模块以及退款模块。
[0027]当所述发票开具触发模块获取到用户的发票开具触发行为之时,所述发票开具触发模块生成用于指示其他模块打印电子发票的电子发票消息。所述电子发票是用于抵消用户的消费金额的电子发票。
[0028]具体的,所述电子发票消息可以是JSON消息,也可以是XML消息。
[0029]在获取用户的发票开具触发行为之前,需要接收电子发票消息的软件模块需要向所述发票开具触发模块订阅所述电子发票消息。执行了对所述电子发票消息的订阅操作之后,一旦所述发票开具触发模块发送所述电子发票消息,则相应的软件模块就可以接收到该电子发票消息。
[0030]对所述电子发票消息进行订阅的软件模块被称为消费者模块。具体的,通过对下面示出的代码的执行可以完成对电子发票消息的订阅:
[0031]ActiveMQConnect1nFactory connect1nFactory = new
[0032]ActiveMQConnect1nFactory("vm://localhost");
[0033]Connect1n connect1n = connect1nFactory.createConnect1n ();
[0034]connect1n, start ();
[0035]Sess1n sess1n = connect1n.createSess1n(false,
[0036]Sess1n.AUT0_ACKN0WLEDGE);
[0037]Destinat1n destinat1n = sess1n.createQueue (〃TEST.T0PIC〃);
[0038]MessageConsumer consumer = sess1n.createConsumer (destinat1n);
[0039]S12,若存在订阅所述电子发票消息的消费者模块,所述发票开具触发模块向所述消费者模块发送所述电子发票消息。
[0040]经过查询,如发现有消费者模块订阅所述电子发票消息,则所述发票开具触发模块向所述消费者模块发送所述电子发票消息。
[0041]S13,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票。
[0042]所述消费者模块在获取到所述电子发票消息之后,根据所述电子发票消息中的订单号,指示电子发票模块生成电子发票。并且,生成的所述电子发票是用来抵 消用户的消费金额的电子发票。也就是说,所述电子发票是“红票”。
[0043]图2示出了根据本实施例技术方案生成的电子发票。参见图2,所述电子发票上填写的金额21的取值都是负数。
[0044]本实施例通过当获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,查询是否有订阅所述电子发票消息的消费者模块,并当存在订阅所述电子发票消息的消费者模块之时,向消费者模块发送所述电子发票消息,最后根据所述电子发票消息中的订单号生成用于抵消消费金额的电子发票,从而实现了对用于抵消消费金额电子发票的自动出具。
[0045]第二实施例
[0046]本实施例以本发明上述实施例为基础,进一步的提供了电子发票开具方法中消息生成的一种技术方案。在该技术方案中,当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票信息包括:所述发票开具触发模块监听用户的发票开具触发行为;若监听到用户的所述发票开具触发行为之时,所述发票开具触发模块获取所述发票开具触发行为对应的订单号;所述发票开具触发模块根据所述订单号生成所述电子发票消息。
[0047]参见图3,当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票信息包括:
[0048]S31,所述发票开具触发模块监听用户的发票开具触发行为。
[0049]所述发票开具触发行为包括用户的订单取消行为,或者用户的退款行为。获取用户的所述发票开具触发行为之时,所述发票开具触发模块监听用户的发票开具触发行为。
[0050]S32,若监听到用户的所述发票开具触发行为之时,所述发票开具触发模块获取所述发票开具触发行为对应的订单号。
[0051]可以理解的是,所述发票开具触发行为会对应于一个订单号。如果监听到用户的所述发票开具触发行为,则所述发票开具触发模块获取所述订单号,以便生成所述发票开具触发行为对应的电子发票信息。
[0052]S33,所述发票开具触发模块根据所述订单号生成所述电子发票消息。
[0053]所述发票开具触发模块生成的电子发票消息至少包括所述发票开具触发行为所对应的订单号。进一步的,除了所述订单号,所述电子发票消息还包括订单明细信息。所述订单明细信息包括:商品基本信息、商品价目信息、商家信息。
[0054]本实施例通过监听用户的发票开具触发行为,并在监听到用户的所述发票开具触发行为之时,获取所述发票开具触发行为对应的订单号,并且根据所述订单号生成所述电子发票消息,从而实现了根据用户的发票开具触发行为的电子发票消息生成。
[0055]第三实施例
[0056]本实施例以本发明的上述实施例为基础,进一步的提供了电子发票开具方法中电子发票生成的一种技术方案。在该技术方案中,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括:所述消费者模块从所述电子发票消息中获取所述订单号;所述消费者模块根据所述订单号查询所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息;所述消费之模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0057]参见图4,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括:
[0058]S41,所述消费者模块从所述电子发票消息中获取所述订单号。
[0059]所述电子发票消息中包含所述订单号。所述消费者模块获取到电子发票消息之后,从所述电子发票消息中获取其中包含的订单号。
[0060]S42,所述消费者模块根据所述订单号查询所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息。
[0061]在本实施例中,所述发票出具触发行为对应订单的订单明细信息存储在所述电子发票开具系统的设定位置,例如,所述订单详细信息存储在所述电子发票系统的后台数据库中。因此,为了获取到所述订单的订单明细信息,需要先获取所述订单号,再利用所述订单号在后台数据库中进行查询,从而得到所述订单的订单明细信息。
[0062]所述订单明细信息包括该订单包含的商品的商品基本信息、商品价目信息以及商家信息等。
[0063]S43,所述消费者模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0064]获取到所述订单号以及所述订单明细信息,根据上述两种信息生成电子发票。所述电子发票是专门用来抵消用户的消费金额的电子发票,所以,所述电子发票的金额一栏的取值都是负数。
[0065]本实施例通过从电子发票消息中获取订单号,根据所述订单号查询所述订单号对应的订单明细信息,以及指示所述电子发票模块根据所述订单号以及所述订单明细信息生成用于抵消消费金额的电子发票,实现了用于抵消消费金额的电子发票的生成。
[0066]第四实施例
[0067]本实施例以本发明的上述实施例为基础,进一步的提供了电子发票开具方法中电子发票生成的一种技术方案。在该技术方案中,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括:所述消费者模块从所述电子发票消息中获取所述订单号;所述消费者模块从所述电子发票消息中获取所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息;所述消费者模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0068]参见图5,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括:
[0069]S51,所述消费者模块从所述电子发票消息中获取所述订单号。
[0070]S52,所述消费者模块从所述电子发票消息中获取所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息。
[0071]在本实施例中,所述电子发票消息中不仅仅包括订单号,还包括所述订单号对应的订单明细信息。因此,在从所述电子发票消息中获取到订单号之后,进一步的获取该订单号对应的订单明细信息,从而为生成电子发票准备好基础的信息。具体的,所述订单明细信息包括商品基本信息、商品价目信息以及商家信息。
[0072]S53,所述消费者模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0073]获取到订单号以及订单明细信息之后,根据所述订单号以及所述订单明细信息生成电子发票。所述电子发票专门用来抵消用户的消费金额。
[0074]本实施例通过从所述电子发票消息中获取订单号,从所述电子发票消息中获取所述订单号对应的订单明细信息,以及知识所述电子发票模块根据所述订单号以及所述订单明细信息生成用来抵消消费金额的电子发票,实现了用于抵消消费金额的电子发票的生成。
[0075]第五实施例
[0076]本实施例提供了电子发票开具系统的一种技术方案。参见图6,在该技术方案中,所述电子发票开具系统包括:发票开具触发模块61、消费者模块62以及电子发票模块63。
[0077]所述发票开具触发模块61用于当获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,以及向所述消费者模块发送所述电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为。
[0078]所述消费者模块62用于获取到所述电子发票消息之后,根据所述电子发票消息中的订单号指示电子发票模块63生成用于抵消消费金额的电子发票。
[0079]所述电子发票模块63用于在所述消费者模块的指示下,根据所述电子发票消息中的订单号生成用于抵消 消费金额的电子发票。
[0080]进一步的,当发票开具触发模块61获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票信息包括:
[0081]所述发票开具触发模块61监听用户的发票开具触发行为;
[0082]若监听到用户的所述发票开具触发行为之时,所述发票开具触发模块61获取所述发票开具触发行为对应的订单号;
[0083]所述发票开具触发模块61根据所述订单号生成所述电子发票消息。
[0084]进一步的,获取到所述电子发票消息之后,所述消费者模块62根据所述电子发票消息中的订单号指示电子发票模块63生成用来抵消消费金额的电子发票包括:
[0085]所述消费者模块62从所述电子发票消息中获取所述订单号;
[0086]所述消费者模块62根据所述订单号查询所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息;
[0087]所述消费者模块62指示所述电子发票模块63根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0088]进一步的,获取到所述电子发票消息之后,所述消费者模块62根据所述电子发票消息中的订单号指示电子发票模块63生成用来抵消消费金额的电子发票包括:
[0089]所述消费者模块62从所述电子发票消息中获取所述订单号;
[0090]所述消费者模块62从所述电子发票消息中获取所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息;
[0091 ] 所述消费者模块62指示所述电子发票模块63根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。
[0092]进一步的,所述电子发票消息为XML消息或者JSON消息。
[0093]本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
[0094]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
[0095]以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种电子发票开具方法,其特征在于,包括: 当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为; 所述发票开具触发模块向所述消费者模块发送所述电子发票消息; 获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票。2.根据权利要求1所述的方法,其特征在于,当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票信息包括: 所述发票开具触发模块监听用户的发票开具触发行为; 若监听到用户的所述发票开具触发行为之时,所述发票开具触发模块获取所述发票开具触发行为对应的订单号; 所述发票开具触发模块根据所述订单号生成所述电子发票消息。3.根据权利要求1所述的方法,其特征在于,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括: 所述消费者模块从所述电子发票消息中获取所述订单号; 所述消费者模块根据所述订单号查询所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息; 所述消费之模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。4.根据权利要求1所述的方法,其特征在于,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括: 所述消费者模块从所述电子发票消息中获取所述订单号; 所述消费者模块从所述电子发票消息中获取所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息; 所述消费者模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。5.根据权利要求1至4任一所述的方法,其特征在于,所述电子发票消息为XML消息或者JSON消息。6.一种电子发票开具系统,其特征在于,包括: 发票开具触发模块,用于当获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息,以及向所述消费者模块发送所述电子发票消息,其中,所述发票开具触发模块包括订单模块或者退款模块,对应的,所述发票开具触发行为包括订单取消行为或者退款行为; 消费者模块,用于获取到所述电子发票消息之后,根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票; 电子发票模块,用于在所述消费者模块的指示下,根据所述电子发票消息中的订单号生成用于抵消消费金额的电子发票。7.根据权利要求6所述的系统,其特征在于,当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票信息包括: 所述发票开具触发模块监听用户的发票开具触发行为; 若监听到用户的所述发票开具触发行为之时,所述发票开具触发模块获取所述发票开具触发行为对应的订单号; 所述发票开具触发模块根据所述订单号生成所述电子发票消息。8.根据权利要求6所述的系统,其特征在于,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括: 所述消费者模块从所述电子发票消息中获取所述订单号; 所述消费者模块根据所述订单号查询所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息; 所述消费之模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。9.根据权利要求6所述的系统,其特征在于,获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用来抵消消费金额的电子发票包括: 所述消费者模块从所述电子发票消息中获取所述订单号; 所述消费者模块从所述电子发票消息中获取所述订单号对应的订单明细信息,其中,所述订单明细信息包括商品基本信息、商品价目信息、商家信息; 所述消费者模块指示所述电子发票模块根据所述订单号以及所述订单明细信息生成所述用来抵消消费金额的电子发票。10.根据权利要求6至9任一所述的系统,其特征在于,所述电子发票消息为XML消息或者JSON消息。
【专利摘要】本发明实施例公开了一种电子发票开具方法和系统。所述方法包括:当发票开具触发模块获取到用户的发票开具触发行为时,生成包含所述发票开具触发行为对应的订单号的电子发票消息;所述发票开具触发模块向所述消费者模块发送所述电子发票消息;获取到所述电子发票消息之后,所述消费者模块根据所述电子发票消息中的订单号指示电子发票模块生成用于抵消消费金额的电子发票。本发明实施例提供的电子发票开具方法和系统实现了对用于抵消消费金额电子发票的自动出具。
【IPC分类】G06Q30/04
【公开号】CN104881804
【申请号】CN201510279562
【发明人】息宾
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2015年9月2日
【申请日】2015年5月27日
转载请注明原文地址:https://www.famiwei.com/read-8138272.html

最新回复(0)