基于区块链的票据处理方法、装置、介质及电子设备
文献发布时间:2023-06-19 09:24:30
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种基于区块链的票据处理方法、装置、计算机可读介质及电子设备。
背景技术
在很多区块链网络的应用环境中,在处理数据时一般都是通过从区块链中获取数据,在区块链节点中处理数据,并在处理完成之后通过共识机制将数据上传至区块链上,相关技术中通过上述方式来维持数据处理的一致性和同步性。
但是,通过上述方式,在将数据上传至区块链或者从区块链网络中获取数据的过程中,可能存在数据泄漏或者被篡改的风险。尤其是在一些凭证、票据等数据处理的应用场景中,很容易在票据流转过程中出现篡改票据状态、或者恶意处理票据信息等恶意攻击的情况,而票据在被恶意攻击之后,区块链节点却无法检测和核查,进而威胁凭证、票据等数据的隐私性和完整性,无法保证数据处理的安全性和私密性。
发明内容
本申请的实施例提供了一种基于区块链的票据处理方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以提高票据数据的完整性和安全性,以及票据处理过程的安全性和隐私性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种基于区块链的票据处理方法,包括:基于设定的票据信息,在区块链网络的智能合约内,查询所述区块链网络中所述票据信息对应的待处理票据;基于所述票据信息对应的处理方式,在所述智能合约内将所述待处理票据的状态转移为所述处理方式对应的目标状态,并生成第一交易记录;在所述智能合约内,基于所述处理方式处理所述待处理票据,生成第二交易记录;在所述第一交易记录和所述第二交易记录校验通过时,将所述第一交易记录和所述第二交易记录写入所述区块链网络的账本中。
根据本申请实施例的一个方面,提供了一种基于区块链的票据处理装置,包括:查询单元,用于基于设定的票据信息,在区块链网络的智能合约内,查询所述区块链网络中所述票据信息对应的待处理票据;第一交易单元,用于基于所述票据信息对应的处理方式,在所述智能合约内将所述待处理票据的状态转移为所述处理方式对应的目标状态,并生成第一交易记录;第二交易单元,用于在所述智能合约内,基于所述处理方式处理所述待处理票据,生成第二交易记录;交易记录单元,用于在所述第一交易记录和所述第二交易记录校验通过时,将所述第一交易记录和所述第二交易记录写入所述区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,所述第一交易单元包括:状态确定单元,用于基于所述票据信息对应的处理方式,在所述智能合约内确定所述处理方式对应的目标状态;解密单元,用于基于所述智能合约对所述待处理票据对应的加密信息进行解密,得到解密信息;状态转移单元,用于基于所述待处理票据的解密信息,在所述智能合约内将所述待处理票据的状态转移为所述处理方式对应的目标状态;交易记录单元,用于基于所述目标状态下的待处理票据,在所述智能合约内生成所述第一交易记录。
在本申请的一些实施例中,基于前述方案,所述第二交易单元包括:第一解密单元,用于基于所述智能合约,对所述待处理票据对应的加密信息进行解密,得到解密信息;第一生成单元,用于基于所述解密信息和所述处理方式,在所述智能合约内对所述待处理票据进行票务处理,生成票务处理结果;第二生成单元,用于基于所述票务处理结果,生成所述第二交易记录。
在本申请的一些实施例中,基于前述方案,所述交易记录单元包括:第一检测单元,用于分别检测所述第一交易记录的交易和所述第二交易记录中的交易是否完成;第二检测单元,用于若所述第一交易记录的交易和所述第二交易记录中的交易已完成,则检测所述第一交易记录中的信息和所述第二交易记录中的信息是否一致;第一写入单元,用于若所述第一交易记录和所述第二交易记录中的信息一致,则判定所述第一交易记录和所述第二交易记录验证通过,将所述第一交易记录和所述第二交易记录写入所述区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,所述交易记录单元包括:存储单元,用于基于所述第一交易记录和所述第二交易记录,确定所述待处理票据在区块链网络的账本中对应的事件区块,以通过所述事件区块存储所述第一交易记录和所述第二交易记录。
在本申请的一些实施例中,基于前述方案,所述存储单元用于:对所述第一交易记录和所述第二交易记录进行摘要运算,生成所述待处理票据对应的事件区块的区块主体的摘要值;将所述待处理票据对应的事件区块的区块主体的摘要值、与所述区块链网络的账本中所述待处理票据对应的事件区块之前的最后一个区块的摘要值一起,作为所述待处理票据对应的事件区块的区块头;将所述第一交易记录和所述第二交易记录,作为所述处理所述待处理票据的事件区块的区块主体;将所述区块头和所述区块主体串联,确定所述待处理票据在区块链网络的账本中对应的事件区块。
在本申请的一些实施例中,基于前述方案,所述基于区块链的票据处理装置还包括:判定单元,用于若所述第一交易记录和所述第二交易记录中存在至少一个未通过校验,则判定对所述待处理票据处理失败;撤回丹云,用于撤回所述第一交易记录中状态转移的操作、撤回所述第二交易记录中票务处理的操作,以将所述待处理票据还原为处理之前的票据。
在本申请的一些实施例中,基于前述方案,所述票据信息包括红冲信息,所述待处理票据包括待红冲发票,所述目标状态包括已红冲状态;所述第一交易单元用于基于所述红冲信息对应的处理方式,在所述智能合约内对所述待红冲发票的状态转移为已红冲状态,并生成第一交易记录;所述第二交易单元用于在所述智能合约内,对所述待红冲发票进行红冲处理,生成所述待红冲发票对应的新增发票、以及所述第二交易记录。
在本申请的一些实施例中,基于前述方案,所述第一交易记录包括所述待红冲发票的初始状态和目标状态,所述第二交易记录包括所述待红冲发票的标识和发票信息,以及所述新增发票的标识和发票信息;所述交易记录单元用于若所述第一交易记录中的初始状态为未红冲状态、目标状态为已红冲状态,且所述第二交易记录中的待红冲发票的标识和发票信息分别与所述新增发票的标识和发票信息一致,则判定所述第一交易记录和所述第二交易记录校验通过,将所述第一交易记录和所述第二交易记录写入所述区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,所述票据信息包括报销信息,所述待处理票据包括待报销发票,所述目标状态包括已报销状态;所述第一交易记录单元用于基于所述报销信息对应的处理方式,在所述智能合约内将所述待报销发票的状态转移为所述已报销状态,并生成所述第一交易记录;所述第二交易记录单元用于在所述智能合约内,对所述待报销发票进行报销处理,生成所述待报销发票对应的报销结果,以及所述第二交易记录。
在本申请的一些实施例中,基于前述方案,所述第一交易记录包括所述待报销发票的所述待报销发票的标识、初始状态和目标状态,所述第二交易记录包括所述待报销发票的标识、发票信息以及报销信息;所述交易记录单元用于若所述第一交易记录中的初始状态为未报销状态、目标状态为已报销状态,所述第二交易记录中的所述发票信息和所述报销信息一致,且所述第一交易记录中待报销发票的标识与所述第二交易记录中待报销发票的标识一致,则判定所述第一交易记录和所述第二交易记录校验通过,将所述第一交易记录和所述第二交易记录写入所述区块链网络的账本中。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的基于区块链的票据处理方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的基于区块链的票据处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的基于区块链的票据处理方法。
在本申请的一些实施例所提供的技术方案中,在区块链网络的智能合约内,确定区块链网络中的票据信息对应的待处理票据,并在智能合约内对将待处理票据的状态转移为处理方式对应的目标状态,生成第一交易记录;同时在智能合约内基于处理方式处理待处理票据,生成第二交易记录;最后在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。通过一种发票流转的智能合约,使发票流转的都在区块链的链上进行,避免了在通过链下处理票据信息时可能存在的信息被篡改的风险,提高了票据数据的完整性和安全性,以及票据处理过程的安全性和隐私性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例提供的一种通过网络通信的形式连接形成的分布式系统;
图2示意性示出了根据本申请的一个实施例的区块结构一个可选的示意图;
图3示意性示出了根据本申请的一个实施例的基于区块链的票据处理方法的流程图;
图4示意性示出了根据本申请的一个实施例的基于智能合约生成第一交易记录的流程图;
图5示意性示出了根据本申请的一个实施例的生成红冲发票交易记录的示意图;
图6示意性示出了根据本申请的一个实施例的生成报销发票交易记录的示意图;
图7示意性示出了根据本申请的一个实施例的基于智能合约生成第二交易记录的流程图;
图8示意性示出了根据本申请的一个实施例的待红冲发票的示意图;
图9示意性示出了根据本申请的一个实施例的红冲发票对应的新增发票的示意图;
图10示意性示出了根据本申请的一个实施例的将交易记录写入区块链网络的账本中的流程图;
图11示意性示出了根据本申请的一个实施例的验证交易记录的示意图;
图12示意性示出了根据本申请的一个实施例的生成事件区块的流程图;
图13示意性示出了根据本申请的一个实施例的基于验证交易记录的示意图;
图14示意性示出了根据本申请的一个实施例的一种红冲发票的示意图;
图15示意性示出了根据本申请的一个实施例的基于区块链的票据处理装置的示意图;
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
图1为本申请实施例提供的一种通过网络通信的形式连接形成的分布式系统。
参见图1,图1是本申请实施例提供的分布式系统110应用于区块链系统的一个可选的结构示意图,由多个节点120(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端130形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点120的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
在本申请一实施例中,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
示例性的,在本申请一实施例中,通过基于共享版本的方式来存储各个票据的信息,以及存储在票据处理过程中生成的各种交易数据,进而保证票据信息的安全性和共识性。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
示例性的,在本申请一实施例中,还可以在智能合约内,直接对数据进行处理,并在智能合约内验证交易数据,并存储交易数据。例如,在本申请一实施例中,通过基于设定的票据信息,在区块链网络的智能合约内查询区块链网络中票据信息对应的待处理票据;基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录;在智能合约内,基于处理方式处理待处理票据,生成第二交易记录;在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。
上述方案,在区块链网络的智能合约内,确定区块链网络中的票据信息对应的待处理票据,并在智能合约内对将待处理票据的状态转移为处理方式对应的目标状态,生成第一交易记录;同时在智能合约内基于处理方式处理待处理票据,生成第二交易记录;最后在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。通过一种发票流转的智能合约,使发票流转的都在区块链的链上进行,避免了在通过链下处理票据信息时可能存在的信息被篡改的风险,提高了票据数据的完整性和安全性,以及票据处理过程的安全性和隐私性。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
图2是本申请实施例提供的区块结构一个可选的示意图。
参见图2,每个区块240中包括本区块存储交易记录的本区块哈希210(本区块的哈希值)、以及前一区块哈希220,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息和数据230,用于验证其信息的有效性(防伪)和生成下一个区块。
具体的,在图1所示的区块链网络中,本实施例中主要进行的基于区块链的票据处理方法包括步骤S110~S140。其中,本实施例中的执行主体可以为区块链网络中的各个节点对应的终端或者服务器等,例如用户使用的智能手机、台式电脑等等,除此之外,还可以为其它的计算机设备。具体说明如下:
在步骤S110中,基于设定的票据信息,在区块链网络的智能合约内,查询区块链网络中票据信息对应的待处理票据。
在本申请一实施例中,在区块链网络中存储有各种票据的信息和数据,例如票据名称、编号、状态以及金额等等。本实施例中通过作为区块链节点的计算机设备基于设定的票据信息,在区块链网络的智能合约内,查询区块链网络中票据信息对应的待处理票据。本实施例中通过在区块链网络中存储各种票据信息,并在查询待处理票据时,通过智能合约的方式查询到对应的待处理票据。便可以直接在智能合约中进行处理,避免了数据传输的过程,不仅降低了数据传输造成的时延,还提高了数据的安全性和保密性。
在步骤S120中,基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录。
在本申请一实施例中,在本申请的一个实施例中,作为区块链节点的计算机设备在获取到待处理票据之后,基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态。并基于该过程中生成的交易信息,生成第一交易记录,以记录票据的状态变化过程以及在变化过程中生成数据。
在步骤S130中,在智能合约内,基于处理方式处理待处理票据,生成第二交易记录。
在本申请一实施例中,在本申请的一个实施例中,作为区块链节点的计算机设备在智能合约内通过设定的处理方式处理待处理票据,并基于处理过程中产生的数据生成第二交易记录,以记录票据的处理过程以及在该处理过程中生成的票据数据,便于之后的校验和存储。
在步骤S140中,在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请一实施例中,在本申请的一个实施例中,作为区块链节点的计算机设备在生成第一交易记录和第二交易记录之后,对第一交易记录和第二交易记录进行校验,并在第一交易记录和第二交易记录检验通过之后,将这些交易记录写入区块链网络的账本中,以存储交易过程中生成的全部数据,保证数据的完整性。
上述方案,在区块链网络的智能合约内,确定区块链网络中的票据信息对应的待处理票据,并在智能合约内对将待处理票据的状态转移为处理方式对应的目标状态,生成第一交易记录;同时在智能合约内基于处理方式处理待处理票据,生成第二交易记录;最后在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。通过一种发票流转的智能合约,使发票流转的都在区块链的链上进行,避免了在通过链下处理票据信息时可能存在的信息被篡改的风险,提高了票据数据的完整性和安全性,以及票据处理过程的安全性和隐私性。
图3示出了根据本申请的一个实施例的基于区块链的票据处理方法的流程图,该基于区块链的票据处理方法可以由作为区块链节点的计算机设备来执行,例如手机、计算机、服务器等等,该服务器可以是图1中所示的区块链节点,除此之外,还可以是其它的计算机设备等。参照图3所示,该基于区块链的票据处理方法至少包括步骤S310至步骤S340,详细介绍如下:
在步骤S310中,基于设定的票据信息,在区块链网络的智能合约内,查询区块链网络中票据信息对应的待处理票据。
在本申请的一个实施例中,在区块链网络中存储有各种票据的信息和数据,例如票据名称、编号、状态以及金额等等。本实施例中基于设定的票据信息,在区块链网络的智能合约内,查询区块链网络中票据信息对应的待处理票据。
需要说明的是,该步骤的执行主体可以为区块链网络中的区块链节点对应的计算机设备。示例性的,步骤S310的执行主体可以为区块链网络中作为节点的票据管理终端或者票据管理服务器。例如,在实际应用中,作为区块链节点的票据管理终端可以通过区块链网络查询待处理票据,并作出对应的处理。
示例性的,设定的票据信息可以为一个具体的票据标识。例如,发票代码:14403209119、发票号码:10254001等等。这种情况下,直接基于这些发票代码、发票号码,通过智能合约在区块链中查询发票代码、发票号码对应的待处理票据。
除此之外,设定的票据信息还可以为票据类型或者票据状态等。例如:待报销状态、待红冲状态等。这种情况下,直接基于这些票据类型或者票据状态,通过智能合约在区块链中查询满足票据类型或者票据状态的待处理票据。
本实施例中通过在区块链网络中存储各种票据信息,并在查询待处理票据时,通过智能合约的方式查询到对应的待处理票据。便可以直接在智能合约中进行处理,避免了数据传输的过程,不仅降低了数据传输造成的时延,还提高了数据的安全性和保密性。
在步骤S320中,基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录。
在本申请的一个实施例中,作为区块链节点的计算机设备在获取到待处理票据之后,基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态。并基于该过程中生成的交易信息,生成第一交易记录。
需要说明的是,该步骤的执行主体可以为区块链网络中的区块链节点对应的计算机设备。示例性的,步骤S320的执行主体可以作为区块链网络节点的票据状态监管终端、票据状态监管数据库或者票据状态监管服务器等。例如,在实际应用中,在获取到待处理票据的票据信息之后,基于这些信息来调整待处理票据的状态,并可以在调整之后,实时监控区块链网络中的票据的状态是否与其对应的处理数据一致,以保证票据状态的准确性,提高票据核算和监控的效率。
在本申请的一个实施例中,如图4所示,在步骤S320中,基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录,包括步骤S410~步骤S440,详细说明如下:
在步骤S410中,基于票据信息对应的处理方式,在智能合约内确定处理方式对应的目标状态。
在本申请的一个实施例中,作为区块链节点的计算机设备在确定了待处理票据之后,基于票据信息对应的处理方式,在智能合约内确定处理方式对应的目标状态。示例性的,在本申请实施例中,若处理方式为红冲,则确定其对应的目标状态为已红冲状态;若处理方式为票据报销,则对应的目标状态为已报销状态等等。
在步骤S420中,基于智能合约对待处理票据对应的加密信息进行解密,得到解密信息。
在本申请的一个实施例中,为了保证票据信息的安全性和真实性,本实施例中各票据对应的信息都是在加密之后存储的。在确定了待处理票据之后,作为区块链节点的计算机设备基于智能合约中对该处理票据对应的加密信息进行解密,得到对应的解密信息。
示例性的,本实施例中的加密方式可以是通过公钥加密的方式,即先通过公钥密码加密票据信息,得到加密信息;在要对待处理票据进行处理时,获取该待处理票据对应的加密信息,通过私钥对加密信息进行解密,得到解密信息。
在步骤S430中,基于待处理票据的解密信息,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态。
在本申请的一个实施例中,在获取到待处理票据的解密信息之后,作为区块链节点的计算机设备在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,以通过目标状态下的待处理票据对待处理票据进行状态标识。
示例性的,当在对待处理票据进行红冲处理时,其对应的目标状态为已红冲状态,则基于待处理票据的解密信息,对待处理票据进行状态迁移,将待处理票据的当前状态修改为已红冲状态。
在步骤S440中,基于目标状态下的待处理票据,在智能合约内生成第一交易记录。
在本申请的一个实施例中,在获取到目标状态下的待处理票据之后,区块链节点对应的计算机设备将整个待处理票据的信息处理过程中生成的数据,在智能合约内生成第一交易记录。
在本申请的一个实施例中,票据信息包括红冲信息,待处理票据包括待红冲发票,目标状态包括已红冲状态;在步骤S440中基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为该处理方式对应的目标状态,并生成第一交易记录的过程包括:基于红冲信息对应的处理方式,将智能合约内对待红冲发票的状态转移为已红冲状态,并生成第一交易记录。
图5为本申请实施例提供的一种生成红冲发票交易记录的示意图。
如图5所示,在本申请实施例中,先通过开票企业指示开票服务商510在区块链网络中,基于智能合约中的开票合约520开具发票。在需要对发票进行红冲处理时,通过智能合约中的流转合约530查询待处理发票;并通过流转发票对待处理发票的状态进行转移,将发票的状态修改为已红冲状态,以基于该过程在智能合约内生成第一交易记录。
在本申请的一个实施例中,票据信息包括报销信息,待处理票据包括待报销发票,目标状态包括已报销状态;基于区块链网络中的智能合约,查询区块链网络中的待报销发票;基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录,包括:基于报销信息对应的处理方式,在智能合约内将待报销发票的状态转移为已报销状态,并生成第一交易记录。
图6为本申请实施例提供的一种生成报销发票交易记录的示意图。
如图6所示,在本申请实施例中,先通过开票企业指示开票服务商610在区块链网络中基于智能合约中的开票合约620开具发票。在需要进行发票报销时,通过智能合约中的流转合约630查询待报销的发票;并通过流转发票对待处理发票的状态进行转移,将发票的状态修改为已报销状态,之后基于该过程在智能合约内生成第一交易记录。
除此之外,还可以对票据进行作废等处理,在其处理处理过程中,先通过智能合约对待作废发票进行状态转移,将发票的状态修改为已作废状态,之后基于该过程在智能合约内生成第一交易记录。
在步骤S330中,在智能合约内,基于处理方式处理待处理票据,生成第二交易记录。
在本申请的一个实施例中,在智能合约内,通过设定的处理方式处理待处理票据,并基于处理过程中产生的数据生成第二交易记录。需要说明的是,步骤S330的执行主体可以为区块链网络中的区块链节点对应的计算机设备。在实际应用中,步骤S330的执行主体可以为区块链网络中处理票据的票务处理计算机或者服务器,示例性的,在对待处理票据进行处理时,票务处理计算机从链上获取到待处理票据的信息,对待处理票据进行处理,并将处理结果上链以生成第二交易记录。
在本申请的一个实施例中,如图7所示,步骤S330中在智能合约内,基于处理方式处理待处理票据,生成第二交易记录的过程,具体包括步骤S331~S333,详细说明如下:
在步骤S331中,基于智能合约,对待处理票据对应的加密信息进行解密,得到解密信息。
在本申请的一个实施例中,在本申请的一个实施例中,为了保证票据信息的安全性和真实性,本实施例中各票据对应的信息都是在加密之后存储的。在确定了待处理票据之后,基于智能合约中对该处理票据对应的加密信息进行解密,得到对应的解密信息。
示例性的,本实施例中的加密方式可以是通过公钥加密的方式,即先通过公钥密码加密票据信息,得到加密信息;在要对待处理票据进行处理时,获取该待处理票据对应的加密信息,通过私钥对加密信息进行解密得到解密信息。
在步骤S332中,基于解密信息和处理方式,在智能合约内对待处理票据进行票务处理,生成票务处理结果。
在本申请的一个实施例中,在得到待处理票据对应解密信息之后,基于解密信息对待处理票据进行票务处理,生成票务处理结果。示例性的,本实施例中的票务处理可以包括发票红冲、发票报销以及发票作废等等处理方式。
示例性的,在对发票进行红冲时,基于原有发票生成过一个对应的新增发票,以抵消原有发票的金额,完成发票红冲的处理过程。
在步骤S333中,基于票务处理结果,生成第二交易记录。
在本申请的一个实施例中,在生成票务处理结果之后,基于票务处理结果,生成第二交易记录,以将第二交易记录存储在区块链中。
在本申请的一个实施例中,在上述步骤S333中在智能合约内,基于处理方式处理待处理票据,生成第二交易记录的过程包括:在智能合约内,对待红冲发票进行红冲处理,生成待红冲发票对应的新增发票、以及第二交易记录。
请继续参考图5所示,本实施例中先通过在智能合约的流转合约530内,对红冲发票进行流传处理以生成第一交易记录;之后,基于红冲发票中的信息生成其对应的新增发票,并进行发行,同时生成第二交易记录。
图8为本申请实施例提供的一种待红冲发票的示意图。
如图8所示,示例性的,在一张待红冲发票中,包括了红票发票代码:144032009110、红票发票号码:10254001、校验码:B2aa7、规格、单位、数量、单价、金额、以及税率和税额等信息。需要注意的是,这里明确标明红票的发票代码和发票号码,以体现出票面的类型。
图9为本申请实施例提供的一种红冲发票对应的新增发票的示意图。
如图9所示,在本申请实施例中,在对发票做红冲处理时,基于原有的待处理发票生成并发行其对应的新增发票。其中,对应于原有的红票中的信息,新增发票中蓝票发票代码:144032009110、蓝票发票号码:10254001、蓝票发票校验码:82aa7,这些数据与原有红票中的发票信息一一对应。并基于生成和发行新增发票中生成的数据,生成第二交易记录。
上述方式,通过基于待红冲发票中的信息生成其对应的新增发票,即蓝票,以抵消掉红票中的金额和税额,保证了发票中金额的一致性。通过在智能合约中处理发票事务的方式,提高了发票信息处理的安全性和私密性,并将处理过程中生成的数据生成交易记录,提高了数据的完整性。
在本申请的一个实施例中,在上述步骤S333中在智能合约内,基于处理方式处理待处理票据,生成第二交易记录的过程包括:在智能合约内,对待报销发票进行报销处理,生成待报销发票对应的报销结果,以及第二交易记录。
具体的,请继续参考图6所示,在智能合约内的流传合约内,通过生成待报销发票对应的第一交易记录;之后基于待报销发票进行报销处理,生成对应的报销数据、流水数据等等,之后,基于上述生成的数据,通过智能合约生成第二交易记录。
在步骤S340中,在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请的一个实施例中,在生成第一交易记录和第二交易记录之后,对第一交易记录和第二交易记录进行校验,并在第一交易记录和第二交易记录检验通过之后,将这些交易记录写入区块链网络的账本中,以存储交易过程中生成的全部数据,保证数据的完整性。
需要说明是,本实施例中在步骤S310~步骤S340对票据进行处理的过程中,其执行主体可以为区块链网络中的节点对一个的计算机设备。
进一步的,在步骤S310~步骤S340的执行过程中,各步骤对应的执行主体可以为相同的某一个区块链节点对应的计算机设备,也可以分别为不同的区块链节点对应的计算机设备,还可以预先设定用于处理某一任务或某一步骤时对应的区块链节点对应的计算机设备。示例性的,设定作为区块链节点的票据管理计算机来执行步骤S310中对应的票据信息查询任务,设定作为区块链节点的状态管理数据库来执行步骤S320中对应的状态转移任务,设定作为区块链节点的票务处理计算机来执行步骤S330中对应的票务处理任务,设定作为区块链节点的数据校验服务器来执行步骤S340中对应的校验任务,。在各个步骤对应的区块链节点处理完毕对应的处理任务并生成处理结果对应的数据之后,将生成的数据上链,以供下一步骤对应的区块链节点基于这些数据来执行对应的处理任务。
在本申请的一个实施例中,如图10所示,本实施例中步骤S340中在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中,包括步骤S341~步骤S343,详细说明如下:
在步骤S341中,分别检测第一交易记录的交易和第二交易记录中的交易是否完成。
图11为本申请实施例提供的一种验证交易记录的示意图。
如图11所示,在本申请的一个实施例中,先分别验证第一交易记录中的交易和第二交易记录中的交易是否完成。具体的,本实施例中在验证第一交易记录中的交易是否完成时,可以先基于第一交易记录中的票据标识、状态以及金额确定该票据的状态是否正确。在对第二交易记录进行验证时,基于第二交易记录中的票据的标识、类型、状态以及金额来确定第二交易记录中生成的新增发票或者对发票的处理数据是否正确且完整,进而分别确定第一交易记录的交易和第二交易记录中的交易是否完成。
在步骤S342中,若第一交易记录的交易和第二交易记录中的交易已完成,则检测第一交易记录中的信息和第二交易记录中的信息是否一致。
在本申请的一个实施例中,若第一交易记录的交易和第二交易记录中的交易已完成,则检测第一交易记录中的信息和第二交易记录中的信息是否一致,实现交易验证。
具体的,本实施例中对第一交易记录和第二交易记录中的交易进行验证时,可以基于第一交易记录中的票据标识、状态以及金额,将其与第二交易记录中的票据的标识、类型、状态以及金额进行对比,以确定两者时间的数据是否一致或者对应。若两者一致且相互对应,则判定第一交易记录中的信息和第二交易记录中的信息一致。
示例性的,如图8和图9所示,在红票对应的图8中,红票发票代码:144032009110、红票发票号码:10254001、校验码:2d6f8、金额100000、税额1000;在蓝票对应的图9中,确定蓝票发票代码:144032009110蓝票发票号码:10254001蓝票发票校验码:82aa7、金额-100000、税额-1000。在对第一交易记录中的信息和第二交易记录中的信息进行检测时,基于这些信息进行一一对比,我们发现,两张票据的标识相互对应,金额和税额也相互对应,并且红票的红冲状态也与蓝票的生成相互对应。因此,这里判定第一交易记录中的信息和第二交易记录中的信息一致。
在步骤S343中,若第一交易记录和第二交易记录中的信息一致,则判定第一交易记录和第二交易记录验证通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
请继续参考图11所示,本实施例中在对第一交易记录和第二交易记录进行交易验证之后,若第一交易记录和第二交易记录中的信息一致,则判定第一交易记录和第二交易记录验证通过,将第一交易记录和第二交易记录写入区块链网络的账本中,其中,区块链网络的账户可以包括至少一个。
在本申请的一个实施例中,在步骤S343中,将第一交易记录和第二交易记录写入区块链网络的账本中,包括:基于第一交易记录和第二交易记录,确定待处理票据在区块链网络的账本中对应的事件区块,以通过事件区块存储第一交易记录和第二交易记录。
在本申请的一个实施例中,如图12所示,基于第一交易记录和第二交易记录,确定待处理票据在区块链网络的账本中对应的事件区块,包括步骤S344~步骤S347,详细说明如下:
在步骤S344中,对第一交易记录和第二交易记录进行摘要运算,生成待处理票据对应的事件区块的区块主体的摘要值。
在本申请的一个实施例中,摘要运算可以是哈希算法等。本实施例中第一交易记录和第二交易记录进行的摘要运算可以是同一个运算。在一个实施例中,也可以针对不同交易记录做不同摘要算法。区块链网关服务器可以维护一个发票标识与摘要算法对应关系表。当需要进行摘要运算时,根据发票信息中的发票标识(发票代码+发票号码)查找该对应关系表,获得摘要算法,进行摘要运算。针对不同第一交易记录和第二交易记录处理不同的摘要算法的好处是,使得摘要值难以被破解,进一步提高区块记录信息的安全性。
在步骤S345中,将待处理票据对应的事件区块的区块主体的摘要值、与区块链网络的账本中待处理票据对应的事件区块之前的最后一个区块的摘要值一起,作为待处理票据对应的事件区块的区块头。
在本申请的一个实施例中,将待处理票据对应的事件区块的区块主体的摘要值、与区块链网络的账本中待处理票据对应的事件区块之前的最后一个区块的摘要值一起,记录在待处理票据对应的事件区块的区块头中的意义在于,区块链上的每一区块都含有区块链中的上一个区块的信息,其本身的区块信息也被区块链上的下一个区块所记录,区块之间形成紧密的印证关系,因此,区块链记录的区块很难被篡改,大大提高了发票信息在区块链上存储和验证的安全性。
区块头除了记录报销发票的事件区块的区块主体的摘要值、与区块链上未记录报销发票的事件区块之前的最后一个区块的摘要值之外,还存储着时间戳、校验码等。时间戳记录着生成该区块的时间,在生成该区块时自动记录到区块头的时间戳字段。校验码是对包括区块头的其它部分的位(除该校验码的位)和区块主体的位利用奇偶校验算法生成的位,该位用于校验该区块是否发生了变化,如该区块发生了改动,利用奇偶校验算法对其它部分的位(除该校验码的位)和区块主体的位进行运算,得到的结果就会与该校验码不同。通过这种方式,进一步防止了该区块被篡改。
在步骤S346中,将第一交易记录和第二交易记录,作为处理待处理票据的事件区块的区块主体。
在本申请的一个实施例中,在生成区块头之后,将第一交易记录和第二交易记录中的数据作为待处理票据的事件区块的区块主体,其存储的方式可以是按照数据生成的时间来存储,也可以按照数据类型来存储等等。通过上述方式,可以使得本实施例中的生成的交易数据都能得到相应的存储,进而保证数据的完整性。
在步骤S347中,将区块头和区块主体串联,确定待处理票据在区块链网络的账本中对应的事件区块。
在本申请的一个实施例中,在生成区块头和区块主体之后,区块头和区块主体串联,确定待处理票据在区块链网络的账本中对应的事件区块。通过将生成的交易数据存储在区块之中,以保证数据的完整性。
在本申请的一个实施例中,方法还包括:若第一交易记录和第二交易记录中存在至少一个未通过校验,则判定对待处理票据处理失败;撤回第一交易记录中状态转移的操作、撤回第二交易记录中票务处理的操作,以将待处理票据还原为处理之前的票据。
具体的,为了避免状态转移过程成功,生成第一交易记录,但票据处理失败,生成失败的第二交易记录,而使得票据的状态和对应的数据处在一个尴尬的状态中。本实施例中通过共同失败或者共同成功的方式,保证票据数据和状态的一致性。即若第一交易记录和第二交易记录中存在至少一个未通过校验,则判定对待处理票据处理失败;撤回第一交易记录中状态转移的操作、撤回第二交易记录中票务处理的操作,以将待处理票据还原为处理之前的票据。通过上述方式,使得待处理票据的状态要么是已处理状态且实际生成了处理成功的数据,要么就是未处理状态且未进行相应的处理,以保证票据状态和处理结果的一致性,提高票据处理的效率。
图13为本申请实施例提供的一种基于验证交易记录的示意图。
如图13所示,在本申请的一个实施例中,第一交易记录包括待红冲发票的初始状态和目标状态,第二交易记录包括待红冲发票的标识和发票信息,以及新增发票的标识和发票信息;在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中,包括:若第一交易记录中的初始状态为未红冲状态、目标状态为已红冲状态,且第二交易记录中的待红冲发票的标识和发票信息分别与新增发票的标识和发票信息一致,例如,第二交易记录中的红票标识和蓝票标识对应,发票中的单价、数量以及税额等信息相互对应,则判定第一交易记录和第二交易记录校验通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请的一个实施例中,第一交易记录包括待报销发票的待报销发票的标识、初始状态和目标状态,第二交易记录包括待报销发票的标识、发票信息以及报销信息;在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中,包括:若第一交易记录中的初始状态为未报销状态、目标状态为已报销状态,第二交易记录中的发票信息和报销信息一致,且第一交易记录中待报销发票的标识与第二交易记录中待报销发票的标识一致,则判定第一交易记录和第二交易记录校验通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
图14为本申请实施例提供的一种红冲发票的示意图。
如图14所示,本实施例中通过开票服务商在智能合约对发票进行红冲处理时,先通过智能合约在区块链网络的账本层中查询待处理的发票信息,在账本层返回发票信息之后,通过智能合约构造转移发票交易tx1,并构造发行红票交易tz2;在账本层校验tx1和tx2之后,在tx1和tx2交易通过校验时,将tx1和tx2写入账本中存储,并向开票服务商返回红冲成功的信息;在tx1和tx2没有通过校验时,向开票服务商返回红冲失败的信息。通过上述方式,在智能合约中进行票据的状态修改和处理,避免了在通过链下处理票据信息时可能存在的信息被篡改的风险,提高了票据数据的完整性和安全性,以及票据处理过程的安全性和隐私性。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的基于区块链的票据处理方法。可以理解的是,装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。对于本申请装置实施例中未披露的细节,请参照本申请上述的基于区块链的票据处理方法的实施例。
图15示出了根据本申请的一个实施例的基于区块链的票据处理装置的框图。
参照图15所示,根据本申请的一个实施例的基于区块链的票据处理装置1500,包括:
查询单元1510,用于基于设定的票据信息,在区块链网络的智能合约内,查询区块链网络中票据信息对应的待处理票据;第一交易单元1520,用于基于票据信息对应的处理方式,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态,并生成第一交易记录;第二交易单元1530,用于在智能合约内,基于处理方式处理待处理票据,生成第二交易记录;交易记录单元1540,用于在第一交易记录和第二交易记录校验通过时,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,第一交易单元1520包括:状态确定单元,用于基于票据信息对应的处理方式,在智能合约内确定处理方式对应的目标状态;解密单元,用于基于智能合约对待处理票据对应的加密信息进行解密,得到解密信息;状态转移单元,用于基于待处理票据的解密信息,在智能合约内将待处理票据的状态转移为处理方式对应的目标状态;交易记录单元,用于基于目标状态下的待处理票据,在智能合约内生成第一交易记录。
在本申请的一些实施例中,基于前述方案,第二交易单元1530包括:第一解密单元,用于基于智能合约,对待处理票据对应的加密信息进行解密,得到解密信息;第一生成单元,用于基于解密信息和处理方式,在智能合约内对待处理票据进行票务处理,生成票务处理结果;第二生成单元,用于基于票务处理结果,生成第二交易记录。
在本申请的一些实施例中,基于前述方案,交易记录单元1540包括:第一检测单元,用于分别检测第一交易记录的交易和第二交易记录中的交易是否完成;第二检测单元,用于若第一交易记录的交易和第二交易记录中的交易已完成,则检测第一交易记录中的信息和第二交易记录中的信息是否一致;第一写入单元,用于若第一交易记录和第二交易记录中的信息一致,则判定第一交易记录和第二交易记录验证通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,交易记录单元1540包括:存储单元,用于基于第一交易记录和第二交易记录,确定待处理票据在区块链网络的账本中对应的事件区块,以通过事件区块存储第一交易记录和第二交易记录。
在本申请的一些实施例中,基于前述方案,存储单元用于:对第一交易记录和第二交易记录进行摘要运算,生成待处理发票对应的事件区块的区块主体的摘要值;将待处理发票对应的事件区块的区块主体的摘要值、与区块链网络的账本中待处理发票对应的事件区块之前的最后一个区块的摘要值一起,作为待处理发票对应的事件区块的区块头;将第一交易记录和第二交易记录,作为处理待处理发票的事件区块的区块主体;将区块头和区块主体串联,确定待处理票据在区块链网络的账本中对应的事件区块。
在本申请的一些实施例中,基于前述方案,基于区块链的票据处理装置1500还包括:判定单元,用于若第一交易记录和第二交易记录中存在至少一个未通过校验,则判定对待处理票据处理失败;撤回丹云,用于撤回第一交易记录中状态转移的操作、撤回第二交易记录中票务处理的操作,以将待处理票据还原为处理之前的票据。
在本申请的一些实施例中,基于前述方案,票据信息包括红冲信息,待处理票据包括待红冲发票,目标状态包括已红冲状态;第一交易单元1520用于基于红冲信息对应的处理方式,在智能合约内对待红冲发票的状态转移为已红冲状态,并生成第一交易记录;第二交易单元1530用于在智能合约内,对待红冲发票进行红冲处理,生成待红冲发票对应的新增发票、以及第二交易记录。
在本申请的一些实施例中,基于前述方案,第一交易记录包括待红冲发票的初始状态和目标状态,第二交易记录包括待红冲发票的标识和发票信息,以及新增发票的标识和发票信息;交易记录单元1540用于若第一交易记录中的初始状态为未红冲状态、目标状态为已红冲状态,且第二交易记录中的待红冲发票的标识和发票信息分别与新增发票的标识和发票信息一致,则判定第一交易记录和第二交易记录校验通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
在本申请的一些实施例中,基于前述方案,票据信息包括报销信息,待处理票据包括待报销发票,目标状态包括已报销状态;第一交易单元1520用于基于报销信息对应的处理方式,在智能合约内将待报销发票的状态转移为已报销状态,并生成第一交易记录;第二交易单元1530用于在智能合约内,对待报销发票进行报销处理,生成待报销发票对应的报销结果,以及第二交易记录。
在本申请的一些实施例中,基于前述方案,第一交易记录包括待报销发票的待报销发票的标识、初始状态和目标状态,第二交易记录包括待报销发票的标识、发票信息以及报销信息;交易记录单元1540用于若第一交易记录中的初始状态为未报销状态、目标状态为已报销状态,第二交易记录中的发票信息和报销信息一致,且第一交易记录中待报销发票的标识与第二交易记录中待报销发票的标识一致,则判定第一交易记录和第二交易记录校验通过,将第一交易记录和第二交易记录写入区块链网络的账本中。
图16示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(RandomAccess Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
- 基于区块链的票据处理方法、装置、介质及电子设备
- 基于区块链的票据核销方法及装置、电子设备、存储介质