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

文档序号:8905613阅读:697来源:国知局
电子发票开具方法及系统的制作方法
【技术领域】
[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]所述消费者模块在获取到所述电子发票消息之后,根据所述电子发票消息中的订单号,指示电子发票模块生成电子发票。并且,生成的所述电子发票是用来抵
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1