一种基于区块链的结算方法、装置以及电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的结算方法、装置以及电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书提供一种基于区块链的结算方法、装置以及电子设备。
具体地,本说明书是通过如下技术方案实现的:
根据本说明书的第一方面,提供一种基于区块链的结算方法,所述方法应用于与区块链对接的支付系统,所述方法包括:
监听收款方系统在所述区块链中存证的结算请求交易;
响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;
如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
可选的,所述缴费支付交易链表中的缴费支付交易通过如下方式存证:
获取用户终端发送的支付消息;所述支付消息中携带支付信息;
响应于所述支付消息,基于所述支付信息构造缴费支付交易;
将所述缴费支付交易发布至区块链进行存证,以使得收款方系统在监听到所述区块链中存证的缴费支付交易后,基于该缴费支付交易中的支付信息进行缴费销账,并将由缴费销账结果构造的缴费销账交易发布至所述区块链进行存证。
可选的,所述将所述缴费支付交易发布至区块链进行存证,包括:
检测当前所述缴费交易链表的链表尾节点对应的缴费支付交易与当前所述缴费销账链表的链表尾节点对应的缴费销账交易中的累计值是否相同;
若相同,则将所述缴费支付交易发布至区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述支付系统维护了所述缴费支付交易链表的链表尾节点对应的缴费支付交易中的累计支付总金额和累计支付总笔数;
所述基于所述支付信息构造缴费支付交易,包括:
获取当前所述缴费交易链表的链表尾节点对应的缴费支付交易,并生成该链表尾节点对应的缴费支付交易的哈希指针;
基于所述支付系统维护的累计支付总金额和所述支付消息中携带的支付金额,确定所述缴费支付交易中的累计支付总金额;
基于所述支付系统维护的累计支付总笔数,确定所述缴费支付交易中的累计支付总笔数;
基于所述支付信息、生成的哈希指针、所述缴费支付交易中的累计支付总金额和累计支付总笔数,构造所述缴费支付交易。
可选的,在将所述缴费支付交易发布至区块链进行存证后,所述方法还包括:
采用所述缴费支付交易中记录的累计支付总金额和累计支付总笔数、分别更新所述支付系统维护的累计支付总金额和累计支付总笔数。
可选的,所述方法还包括:
在确定资金结算完成后,将所述支付系统维护的累计支付总金额和累计支付总笔数清零。
可选的,所述方法还包括:
在确定资金结算完成后,基于资金结算结果构造缴费结算凭证交易;
将所述缴费结算凭证交易发布至所述区块链进行存证。
根据本申请的第二方面,提供一种基于区块链的结算方法,所述方法应用于与区块链对接的收款方系统,所述方法包括:
响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易;
将所述缴费结算请求交易发布至所述区块链进行存证,以使支付系统监听收款方系统在所述区块链中存证的缴费结算请求交易;响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算;
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值。
可选的,所述缴费销账交易通过如下方式存证:
监听由支付系统在所述区块链中存证的缴费支付交易;其中,所述缴费支付交易中携带支付信息;
响应于监听到的所述缴费支付交易,基于所述缴费支付交易中的支付信息进行缴费销账;
基于缴费销账结果构造缴费销账交易,并将缴费销账交易发布至所述区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述收款方系统维护了所述缴费销账交易链表的链表尾节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数;
所述基于缴费销账结果构造缴费销账交易,包括:
获取当前所述缴费销账链表的链表尾节点对应的缴费销账交易,并生成该链表尾节点对应的缴费销账交易的哈希指针;
生成监听到的所述缴费支付交易的哈希指针;
基于所述收款方系统维护的累计销账总金额和所述缴费支付交易中携带的支付金额,确定所述缴费销账交易中的累计销账总金额;
基于所述收款方系统维护的累计销账总笔数,确定所述缴费销账交易中的累计销账总笔数;
基于所述缴费销账结果、该链表尾节点对应的缴费销账交易的哈希指针、所述缴费支付交易的哈希指针、所述缴费销账交易中的累计销账总金额和累计销账总笔数,构造缴费销账交易。
可选的,所述将缴费销账交易发布至所述区块链进行存证,包括:
检测所述收款方系统维护的累计销账总金额与所述支付金额之和是否与所述缴费支付交易中的累计支付总金额一致、以及检测所述收款方系统维护的累计销账笔数加1后的值是否与所述缴费支付交易中的累计支付总笔数一致;
若均一致,则将缴费销账交易发布至所述区块链进行存证。
可选的,所述在将缴费销账交易发布至所述区块链进行存证之后,所述方法还包括:
基于所述缴费销账交易中的累计销账总金额和累计销账总笔数,更新所述收款方系统维护的累计销账总金额和累计销账总笔数。
可选的,所述方法还包括:
监听由所述支付系统发布至所述区块链的缴费结算凭证交易;
响应于所述缴费结算凭证交易,将所述收款方系统维护的累计销账总金额和累计销账总笔数清零。
根据本申请的第三方面,提供一种基于区块链的结算装置,所述装置应用于与区块链对接的支付系统,所述装置包括:
监听单元,用于监听收款方系统在所述区块链中存证的结算请求交易;
第一获取单元,用于响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
确定单元,用于确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;
结算单元,用于如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
可选的,所述装置还包括:
第二获取单元,用于获取用户终端发送的支付消息;所述支付消息中携带支付信息;
第一构造单元,用于响应于所述支付消息,基于所述支付信息构造缴费支付交易;
第一发布单元,用于将所述缴费支付交易发布至区块链进行存证,以使得收款方系统在监听到所述区块链中存证的缴费支付交易后,基于该缴费支付交易中的支付信息进行缴费销账,并将由缴费销账结果构造的缴费销账交易发布至所述区块链进行存证。
可选的,所述第一发布单元,在将所述缴费支付交易发布至区块链进行存证时,具体用于检测当前所述缴费交易链表的链表尾节点对应的缴费支付交易与当前所述缴费销账链表的链表尾节点对应的缴费销账交易中的累计值是否相同;若相同,则将所述缴费支付交易发布至区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述支付系统维护了所述缴费支付交易链表的链表尾节点对应的缴费支付交易中的累计支付总金额和累计支付总笔数;
所述第一构造单元,具体用于获取当前所述缴费交易链表的链表尾节点对应的缴费支付交易,并生成该链表尾节点对应的缴费支付交易的哈希指针;基于所述支付系统维护的累计支付总金额和所述支付消息中携带的支付金额,确定所述缴费支付交易中的累计支付总金额;基于所述支付系统维护的累计支付总笔数,确定所述缴费支付交易中的累计支付总笔数;基于所述支付信息、生成的哈希指针、所述缴费支付交易中的累计支付总金额和累计支付总笔数,构造所述缴费支付交易。
可选的,所述装置还包括:
更新单元,用于在将所述缴费支付交易发布至区块链进行存证后,采用所述缴费支付交易中记录的累计支付总金额和累计支付总笔数、分别更新所述支付系统维护的累计支付总金额和累计支付总笔数。
可选的,所述装置还包括:
复位单元,用于在确定资金结算完成后,将所述支付系统维护的累计支付总金额和累计支付总笔数清零。
可选的,所述装置还包括:
第二构造单元,用于在确定资金结算完成后,基于资金结算结果构造缴费结算凭证交易;
第二发布单元,用于将所述缴费结算凭证交易发布至所述区块链进行存证。
根据本申请的第四方面,提供一种基于区块链的结算装置,所述装置应用于与区块链对接的收款方系统,所述装置包括:
第一构造单元,用于响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易;
第一发布单元,用于将所述缴费结算请求交易发布至所述区块链进行存证,以使支付系统监听收款方系统在所述区块链中存证的缴费结算请求交易;响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算;
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值。
可选的,所述装置还包括:
第一监听单元,用于监听由支付系统在所述区块链中存证的缴费支付交易;其中,所述缴费支付交易中携带支付信息;
销账单元,用于响应于监听到的所述缴费支付交易,基于所述缴费支付交易中的支付信息进行缴费销账;
第二构造单元,用于基于缴费销账结果构造缴费销账交易;
第二发布单元,用于将缴费销账交易发布至所述区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述收款方系统维护了所述缴费销账交易链表的链表尾节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数;
所述第二构造单元,具体用于获取当前所述缴费销账链表的链表尾节点对应的缴费销账交易,并生成该链表尾节点对应的缴费销账交易的哈希指针;生成监听到的所述缴费支付交易的哈希指针;基于所述收款方系统维护的累计销账总金额和所述缴费支付交易中携带的支付金额,确定所述缴费销账交易中的累计销账总金额;基于所述收款方系统维护的累计销账总笔数,确定所述缴费销账交易中的累计销账总笔数;基于所述缴费销账结果、该链表尾节点对应的缴费销账交易的哈希指针、所述缴费支付交易的哈希指针、所述缴费销账交易中的累计销账总金额和累计销账总笔数,构造缴费销账交易。
可选的,所述第二发布单元,具体用于检测所述收款方系统维护的累计销账总金额与所述支付金额之和是否与所述缴费支付交易中的累计支付总金额一致、以及检测所述收款方系统维护的累计销账笔数加1后的值是否与所述缴费支付交易中的累计支付总笔数一致;若均一致,则将缴费销账交易发布至所述区块链进行存证。
可选的,所述装置还包括:
更新单元,用于在将缴费销账交易发布至所述区块链进行存证之后,基于所述缴费销账交易中的累计销账总金额和累计销账总笔数,更新所述收款方系统维护的累计销账总金额和累计销账总笔数。
可选的,所述装置还包括:
第二监听单元,用于监听由所述支付系统发布至所述区块链的缴费结算凭证交易;
复位单元,用于响应于所述缴费结算凭证交易,将所述收款方系统维护的累计销账总金额和累计销账总笔数清零。
根据本申请的第五方面,提供一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听收款方系统在所述区块链中存证的结算请求交易;
响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;
如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
根据本申请的第六方面,提供一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易;
将所述缴费结算请求交易发布至所述区块链进行存证,以使支付系统监听收款方系统在所述区块链中存证的缴费结算请求交易;响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算;
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值。
由于支付系统可以不再按照约定的结算时刻通过与收款方系统进行交互完成资金结算,而是由支付系统在监听到在收款方存证在区块链上的结算请求交易时,利用区块链上存证的缴费支付交易和缴费销账交易进行对账并完成资金结算;由于在对账和资金结算时,不再需要收款方系统参与,因此,可以实现随时进行资金结算,增加资金结算的灵活性。
附图说明
图1是本说明书一示例性实施例示出的一种基于区块链的结算方法的组网示意图;
图2a是本说明书一示例性实施例示出的一种缴费支付交易存证方法的流程图;
图2b是本说明书一示例性实施例示出的一种缴费支付交易的示意图;
图3a是本说明书一示例性实施例示出的一种缴费销账交易存证方法的流程图;
图3b是本说明书一示例性实施例示出的一种缴费销账交易的示意图;
图4是本说明书一示例性实施例示出的一种基于区块链的结算方法的示意图;
图5是本说明书一示例性实施例示出的另一种基于区块链的结算方法的示意图;
图6是本说明书一示例性实施例示出的一种电子设备的硬件结构图;
图7是本说明书一示例性实施例示出的一种基于区块链的结算装置的框图;
图8是本说明书一示例性实施例示出的另一种基于区块链的结算装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在一些场景下,用户购买了一些服务或者商品等后,收款方系统会生成该用户的账单。而用户支付这些服务或商品时需要通过支付系统来完成支付。
具体地,支付系统在收到用户支付的资金后可将资金存入中间账户,并向收款方系统发送缴费销账消息,以销除为该用户生成的账单。支付系统和收款方系统会约定一个结算时刻(比如每日凌晨)进行结算。
比如,支付系统可在每日凌晨的与收款方系统进行对账,在对账完成后,支付系统可将上一个结算时刻与当前结算时刻之间的累计的支付资金转给收款方系统,从而完成资金结算。
然而,在这种场景下,支付系统和收款方系统只能按照约定的结算时刻进行结算,造成资金结算的不灵活。
有鉴于此,本说明书提出一种支付系统基于区块链的存证机制,随时进行资金结算的技术方案。
在实现时,支付系统在接收到用户发送的支付消息后,可将针对该支付消息的缴费支付交易发布至区块链进行存证。收款方系统在监听到该缴费支付交易后,可进行缴费销账,并基于缴费销账结果构造缴费销账交易,并将缴费销账交易发布至区块链进行存证。
基于此,区块链上存证了两条链表,一条是基于区块链上存证的缴费支付交易按照支付顺序构成的缴费支付交易链表,另一条是基于区块上存证的缴费销账交易按照销账顺序构成的缴费销账交易链表。
缴费支付交易包括:该缴费支付交易链表中未结算交易累积至当前缴费支付交易时对应的累计值。缴费销账交易包括:该缴费销账交易链表中的未结算交易累积至当前缴费销账交易时对应的累计值。
当收款方系统在监听到客户端发起的缴费结算请求后,收款方系统可基于该缴费结算请求构造缴费结算请求交易,并将该缴费结算请求交易发布至区块链进行存证。
当支付系统监听到该缴费结算请求交易时,支付系统可获取该区块链存证的缴费支付交易链表尾节点对应的缴费支付交易和缴费销账交易链表尾节点对应的缴费销账交易,并检测获取到的缴费支付交易和缴费销账交易的累计值是否相同。如果相同,则基于该获取到的缴费支付交易或缴费销账交易中的累计值进行资金结算。
由上述描述可以看出,一方面由于支付系统不再按照约定的结算时刻通过与收款方系统进行交互完成资金结算,而是支付系统在监听到由收款方系统在区块链上发布的缴费结算请求交易时,利用区块链上存证的缴费支付交易和缴费销账交易进行对账并完成资金结算;由于在对账和资金结算时,不再需要收款方系统参与,因此,可以实现随时进行资金结算,增加资金结算的灵活性。
另一方面,支付系统与收款方系统之间的交互的支付信息或者缴费销账结果不再以点对点的方式进行传递,而是利用区块链的存证机制来相互传递支付信息或者缴费销账结果;因此,不进行可以降低交互支付信息或者缴费销账结果的交互成本,提高交互效率,还可以利用区块链中存证的数据具有不可篡改的特性,提升交互支付信息和缴费销账结果的可靠性。
第三方面,支付系统向区块链发布的缴费支付交易中还携带有指向上一笔缴费支付交易的哈希指针,使得区块链中的缴费支付交易通过自身储存的哈希指针链接到与上一笔缴费支付交易,从而在区块链上形成由各缴费支付交易按照支付顺序构成的缴费支付交易链表,这就使得用户可以在区块链的缴费支付交易链表中追溯出每一笔缴费支付交易,提高了缴费支付交易的可追溯性。
收款方系统向区块链发布的缴费销账交易中还携带有指向上一笔缴费销账交易的哈希指针,使得区块链中的缴费销账交易通过自身储存的哈希指针链接到上一笔缴费销账交易,从而在区块链上形成各缴费销账交易按照销账顺序构成的缴费销账交易链表,这就使得用户可以在区块链的缴费销账交易链表中追溯出每一笔缴费销账交易,提高了缴费销账交易的可追溯性。
此外,缴费销账交易中还包括:指向与该缴费销账交易对应的缴费支付交易的哈希指针,使得通过该缴费销账交易可以追溯到该缴费销账交易对应的缴费支付交易。
第四方面,支付系统向区块链发布的缴费支付交易中还携带了缴费支付交易链表中未结算交易累积至当前缴费支付交易时对应的累计值,收款方系统向区块链发布的缴费销账交易中还携带了该缴费销账交易链表中的未结算交易累积至当前缴费销账交易时对应的累计值,这使得支付系统在进行对账时,可以直接通过缴费支付交易链表尾节点对应的缴费支付交易和缴费销账交易链表尾节点对应缴费销账交易中的累计值进行对账,而不需要再统计上一次结算时刻至当前时刻所有缴费支付交易的累计值和所有缴费销账交易的累计值,从而大大降低了支付系统在进行资金结算时的工作负荷。
参见图1,图1是本说明书一示例性实施例示出的一种基于区块链的结算方法的组网示意图。
图1所示的组网中包括:支付系统、收款方系统和区块链。
上述支付系统,可以是指为用户提供支付服务的机构,用户可以通过支付系统完成支付。比如支付系统可包括:支付宝、微信支付、京东支付和银行支付等。
需要说明的是,支付系统可以是搭载在区块链中的节点设备上的软件系统,也可以是搭载在与区块链中的节点设备之间建立连接的服务器上的软件系统,本说明书对此不作限制。
上述收款方系统,可以是出具用户消费账单的机构。比如,用户缴纳水费、电费等费用时,该收款方系统可以是水电费收款方。再比如,用户进行信用卡还款时,该收款方系统可以是银行机构等。这里只是对收款方系统进行示例性地说明,不进行具体地限定。
上述区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在本说明书描述的区块链,具体可以包括任意类型的区块链网络;在实际应用中,可以采用共有链、私有链、或者联盟链中的任意一种。
在介绍本申请提供的结算方法之前,先介绍缴费支付交易和缴费销账交易的存证方式。
参见图2a,图2a是本说明书一示例性实施例示出的一种缴费支付交易存证方法的流程图。该方法可应用在支付系统中,可包括如下所示步骤。
步骤202:支付系统获取用户终端发送的支付消息;所述支付消息中携带支付信息。
用户可以在用户终端上进行支付,当用户终端监听到用户发起支付操作后,可向支付系统发送支付消息。该支付消息中携带有支付信息。
其中,该支付信息可包括:支付金额。当然,该支付信息还可包括付款方(即用户标识)、收款方标识等,这里只是对支付信息进行示例性地说明,不进行具体地限定。
步骤204:支付系统响应于所述支付消息,基于所述支付信息构造缴费支付交易。
如图2b所示,该缴费支付交易包括:
1)缴费支付交易链表中未结算交易累积至该缴费支付交易时对应的累计支付总金额。
2)缴费支付交易链表中未结算交易累积至该缴费支付交易时对应的累计支付总笔数;
3)指向所述区块链存证的上一笔缴费支付交易的哈希指针。
此外,支付系统还维护了当前缴费支付链表的链表尾节点对应的缴费支付交易的累计支付总金额和累计支付总笔数。
例如,假设上一次监听到缴费结算请求交易的时刻对应的缴费支付交易链表尾节点为第10个节点。假设,从上一次监听到缴费结算请求交易的时刻时起至当前时刻的时间段内,又有5个节点加入该缴费支付交易链表,则该缴费支付交易链表的第15个节点对应的缴费支付交易中的累计支付总金额为:从第11个节点至第15个节点对应的缴费支付交易中的支付金额的累计值。该第15个节点对应的缴费支付交易中的累计支付总笔数为5笔。
当前缴费支付交易链表的尾节点为第15个节点,则支付系统维护了第15个节点对应的缴费支付交易中的累计支付总金额和累计支付总笔数。
比如,从第11个节点至第15个节点对应的缴费支付交易中的支付金额依次为:100元、200元、50元、50元、100元,则第15节点对应的缴费支付交易中的累计支付总金额为500元,累计支付总笔数为5笔。则此时,支付系统维护的累计支付总金额为500元,累计支付总笔数为5笔。
支付系统维护的累计支付总金额和累计支付总笔数会随着缴费支付交易上链发生更新,随着资金结算完成而清零。
在本申请说明书中,支付系统响应于所述支付消息,基于所述支付信息构造缴费支付交易。
在构造时,支付系统可获取当前该缴费支付交易链表中链表尾节点对应的缴费支付交易,并生成该获取到缴费支付交易的哈希指针。
支付系统可基于该支付系统维护的累计支付总金额和所述支付金额,确定该缴费支付交易中的累计支付总金额。
比如,支付系统可计算该支付系统维护的累计支付总金额和支付消息中携带的支付金额之和,作为该缴费支付交易中的累计支付总金额。
此外,支付系统还可将该支付系统维护的累计支付总笔数加1作为作为该缴费支付交易中的累计支付总笔数。
支付系统可基于所述支付信息、生成的哈希指针、所述缴费支付交易中的累计支付总金额和累计支付总笔数,构造所述缴费支付交易。
例如,假设当前缴费支付交易链表的尾节点为第15个节点,该15个节点对应的缴费支付交易(简称为第15个缴费支付交易)的累计支付总金额为500元,累计支付总笔数为5笔。
假设,支付系统维护的累计支付总金额为500元,累计支付总笔数为5笔。
假设支付请求中的支付消息所包括的支付金额为50元。
支付系统可生成该第15个缴费支付交易的哈希指针。
支付系统可计算累计支付总金额(即500元)和支付消息中携带的支付金额(即50元)之和(即550元),作为该支付交易中的累计支付总金额(即550元)。
支付系统还可将累计支付总笔数(即5笔)加1作为该支付交易中的累计支付总笔数(即6笔)。
支付系统可基于第15个缴费支付交易的哈希指针,支付交易中的累计支付总金额550元、支付交易中的累计支付总笔数6笔,构造该缴费支付交易。构造出的缴费支付交易为该缴费支付交易链表中的第16个缴费支付交易。
步骤206:支付系统将所述缴费支付交易发布至区块链进行存证,以使得收款方系统在监听到所述区块链中存证的缴费支付交易后,基于该缴费支付交易中的支付信息进行缴费销账,并将由缴费销账结果构造的缴费销账交易发布至所述区块链进行存证。
为了保证支付系统和收款方系统的账面一致,即支付系统发布的缴费支付交易,与收款方系统发布的针对该缴费支付交易的缴费销账交易的累计值一致。在业务系统在发布缴费支付交易时,需要对当前缴费支付交易链表尾节点对应的缴费支付交易以及当前缴费销账交易链表尾节点对应的缴费销账交易进行校验,在校验成功后,才将构建的缴费支付交易发布至区块链进行存证。
在实现时,支付系统可检测当前所述缴费交易链表的链表尾节点对应的缴费支付交易(这里记为缴费支付交易1)与当前所述缴费销账链表的链表尾节点对应的缴费销账交易(这里记为缴费销账交易1)中的累计值是否相同;若相同,则将所述缴费支付交易发布至区块链进行存证。
具体地,支付系统可检测缴费支付交易1的累计支付总金额与缴费销账交易1中的累计销账总金额是否一致,以及支付系统可检测缴费支付交易1的累计支付总笔数与缴费销账交易中的累计销账总笔数是否一致。
如果所述缴费支付交易1的累计支付总金额与缴费销账交易1中的累计销账总金额一致,且缴费支付交易1的累计支付总笔数与缴费销账交易1中的累计销账总笔数一致,支付系统将该缴费支付交易发布至区块链进行存证。
例如,假设当前缴费支付交易链表的尾节点为第15个节点,该15个节点对应的缴费支付交易的累计支付总金额为500元,累计支付总笔数为5笔。
假设当前缴费销账交易链表的尾节点为第15个节点,该第15个节点对应的缴费销账交易的累计销账总金额为500元,累计销账总笔数为5笔。
支付系统在区块链上发布第16个缴费支付交易时,支付系统可检测缴费支付交易链表的第15个节点对应的累计支付总金额(即500元)与该缴费销账交易链表对应的累计销账总金额(即500元)是否一致、以及检测缴费支付交易链表的第15个节点对应的累计支付总笔数(即5笔)与该缴费销账交易链表对应的累计销账总笔数(即5笔)是否一致。
在本例中,二者均一致,所以支付系统可将第16个缴费支付交易发布至区块链进行存证。在存证后,区块链上的缴费支付交易链表形成第16个节点。
此外,在本说明书提供的实施例中,在将该构造的缴费支付交易发布至区块链进行存证后,支付系统可采用该缴费支付交易中的累计支付总金额更新该支付系统维护的累计支付总金额,采用该缴费支付交易中的累计支付总笔数更新该支付系统维护的累计支付总笔数。
仍以步骤204中的例子为例,在将构造的第16个缴费支付交易发布至区块链进行存证后,支付系统可将该支付系统维护的累计支付总金额由500元更新为550元,将该支付系统维护的累计支付总笔数由5笔更新为6笔。
由上述描述可知,一方面,支付系统向收款方系统传递的支付信息不再以点对点的方式进行传递,而是利用区块链的存证机制来向收款方系统传递支付信息;因此,不仅可以降低传递支付信息的传输成本,提高交互效率,还可以利用区块链中存证的数据具有不可篡改的特性,提升交互支付信息传递的可靠性。
另一方面,支付系统向区块链发布的缴费支付交易中还携带有指向上一笔缴费支付交易的哈希指针,使得区块链中的缴费支付交易通过自身储存的哈希指针链接到上一笔缴费支付交易,从而在区块链上形成由各缴费支付交易按照支付顺序构成的缴费支付交易链表,这就使得用户可以在区块链的缴费支付交易链表中追溯出每一笔缴费支付交易,提高了缴费支付交易的可追溯性。
参见图3a,图3a是本说明书一示例性实施例示出的一种缴费销账交易存证方法的流程图。该方法可应用在收款方系统中,可包括如下所示步骤。
步骤302:收款方系统监听由支付系统在所述区块链中存证的缴费支付交易;其中,所述缴费支付交易中携带支付信息;
步骤304:收款方系统响应于监听到的所述缴费支付交易,基于所述缴费支付交易中的支付信息进行缴费销账;
步骤306:收款方系统基于销账处理结果构造缴费销账交易,并将缴费销账交易发布至所述区块链进行存证。
如图3b所示,该缴费销账交易包括:
1)缴费销账交易链表中未结算交易累积至该缴费支付交易时对应的累计销账总金额。
2)缴费销账交易链表中与未结算交易累积至该缴费支付交易时对应的累计销账总笔数。
3)指向所述区块链存证的上一笔缴费销账交易的哈希指针。
4)指向与监听到的所述缴费支付交易的哈希指针,即与该缴费销账交易对应的缴费支付交易的哈希指针。
此外,收款方系统维护了所述缴费销账交易链表的链表尾节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数。
例如,假设上一次监听到结算请求的时刻对应的缴费销账交易链表尾节点为第10个节点。假设,从上一次监听到结算请求的时刻时起至当前时刻的时间段内,又有5个节点加入该缴费销账交易链表,则该缴费销账交易链表的第15个节点对应的缴费销账交易中的累计销账总金额为:从第11个节点至第15个节点对应的缴费销账交易中的支付金额的累计值。该第15个节点对应的缴费销账交易中的累计销账总笔数为5笔。
当前缴费销账交易链表的尾节点为第15个节点,则收款方系统维护了第15个节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数。
比如,从第11个节点至第15个节点对应的缴费销账交易中的销账金额依次为:100元、200元、50元、50元、100元,则第15节点对应的缴费销账交易中的累计销账总金额为500元,累计销账总笔数为5笔。则此时,收款方系统维护的累计销账总金额为500元,累计销账总笔数为5笔。
该累计销账总金额变量和累计销账总笔数变量的取值会随着缴费销账交易上链发生更新,随着资金结算完成而清零。
在本申请说明书中,收款方系统可以基于缴费销账结果构造缴费销账交易。
在构造时,收款方系统可获取当前所述缴费销账链表的链表尾节点对应的缴费销账交易,并生成该链表尾节点对应的缴费销账交易的哈希指针。
收款方系统可生成监听到的所述缴费支付交易的哈希指针。
收款方系统可基于所述收款方系统维护的累计销账总金额和所述缴费支付交易中携带的支付金额,确定所述缴费销账交易中的累计销账总金额。
比如,收款方系统可计算该收款方系统维护的累计销账总金额和该缴费支付交易中携带的支付金额之和,作为该缴费销账交易中的累计销账总金额。
收款方系统可基于所述收款方系统维护的累计销账总笔数,确定所述缴费销账交易中的累计销账总笔数
比如,收款方系统将所述累计销账总笔数变量的取值加1作为目标累计销账总笔数。
收款方系统可基于所述缴费销账结果、该链表尾节点对应的缴费销账交易的哈希指针、所述缴费支付交易的哈希指针、所述缴费销账交易中的累计销账总金额和累计销账总笔数,构造缴费销账交易。
例如,假设收款方系统监听到的缴费支付交易为上述缴费支付交易链表中的第16个缴费支付交易,该第16个缴费支付交易携带的支付信息中的支付金额为50元。
假设当前缴费销账交易链表的尾节点为第15个节点,该15个节点对应的缴费销账交易(简称为第15个缴费销账交易)的累计销账总金额为500元,累计销账总笔数为5笔。
假设,收款方系统维护的累计销账总金额为500元,累计销账总笔数为5笔。
收款方系统可生成该第15个缴费销账交易的哈希指针、以及该第16个缴费支付交易的哈希指针。
收款方系统可计算该收款方系统维护的累计销账总金额(即500元)和第16个缴费支付交易携带的支付金额(即50元)之和(即550元),作为第16个缴费销账交易中的累计销账总金额。
收款方系统还可将该收款方系统维护的累计销账总笔数(即5笔)加1作为第16个缴费销账交易中的累计销账总笔数(即6笔)。
收款方系统可基于第15个缴费销账交易的哈希指针,第16个缴费支付交易的哈希指针、第16个缴费销账交易中的累计销账总金额550元、第16个缴费销账交易中的累计销账总笔数6笔,构造该第16个缴费销账交易。
在本说明书实施例中,在基于缴费销账结果构造缴费销账交易后,收款方系统可将缴费销账交易发布至区块链进行存证。
在发布时,为了保证支付系统和收款方系统的账面一致,收款方系统在发布构造出的缴费销账交易时,还需要对支付系统和收款方系统的账面进行校验,校验通过后,才将构造出的缴费销账交易发布至区块链进行存证。
在实现时,收款方系统可检测该收款方系统维护的累计销账总金额与监听到的缴费支付交易携带的支付金额之和是否与所述缴费支付交易中的累计支付总金额一致、以及检测所述累计销账总笔数变量取值加1后的值是否与所述缴费支付交易中的累计支付总笔数值一致。
如果该收款方系统维护的累计销账总金额与所述支付金额之和与所述缴费支付交易中的累计支付总金额一致、且累计销账总笔数变量取值加1后的值与所述缴费支付交易中的累计支付总笔数值一致,则将缴费销账交易发布至该区块链进行存证。
例如,假设该收款方系统维护的累计销账总金额为500元,监听到的缴费支付交易携带的支付金额为50元,缴费支付交易携带的累计支付总金额为550元。
累计销账总笔数变量取值为5笔,缴费支付交易携带的累计支付总笔数为6笔。
收款方系统可检测该收款方系统维护的累计销账总金额(即500元)与监听到的缴费支付交易携带的支付金额(即50元)之和(即550元)是否与所述缴费支付交易中的累计支付总金额(即550元)一致、以及检测所述累计销账总笔数变量取值(即5笔)加1后的值(即6笔)是否与所述缴费支付交易中的累计支付总笔数(即6笔)一致。
在本例中,两者均一致,所以收款方系统可将构造出的缴费销账交易发布至区块链进行存证。
由上述描述可知,一方面,收款方系统向支付系统传递的缴费销账结果不再以点对点的方式进行传递,而是利用区块链的存证机制来向支付系统传递缴费销账结果;因此,不仅可以降低传递缴费销账结果的传输成本,提高交互效率,还可以利用区块链中存证的数据具有不可篡改的特性,提升交互缴费销账结果传递的可靠性。
另一方面,收款方系统向区块链发布的缴费销账交易中还携带有指向上一笔缴费销账交易的哈希指针,使得区块链中的缴费销账交易通过自身储存的哈希指针链接到上一笔缴费销账交易,从而在区块链上形成由各缴费销账交易按照销账顺序构成的缴费销账交易链表,这就使得用户可以在区块链的缴费销账交易链表中追溯出每一笔缴费销账交易,提高了缴费销账交易的可追溯性。
此外,缴费销账交易中还包括:指向与该缴费销账交易对应的缴费支付交易的哈希指针,使得通过该缴费销账交易可以追溯到该缴费销账交易对应的缴费支付交易。
在介绍完上述缴费支付交易和缴费销账交易的存证方法后,下面结合图4和图5,对本申请提供的基于区块链的结算方法进行详细地说明。该基于区块链的结算方法可通过如下方式实现。
步骤402:响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易。
收款方系统对应有客户端,管理人员可以通过客户端发起缴费结算操作。当客户端检测到管理人员发起的缴费结算操作时,客户端可向收款方系统发送缴费结算请求,收款方系统可基于该缴费结算请求构造缴费结算请求交易。
步骤404:收款方系统可将所述缴费结算请求交易发布至所述区块链进行存证。
步骤502:支付系统监听收款方系统在所述区块链中存证的结算请求交易。
步骤504:支付系统响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易。
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
步骤506:支付系统确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同。
步骤508:如果相同,支付系统基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
通过图2a所示的方式对缴费支付交易进行存证,使得区块链上存证了缴费支付交易链表。
通过图3a所示的方式对缴费销账交易进行存证,使得区块链上存证了缴费销账交易链表。
1)缴费支付交易链表
缴费支付交易链表是由在所述区块链上存证的缴费支付交易按照交易顺序构成的链表。
缴费支付交易链表中的缴费支付交易包括:所述缴费支付交易链表中的未结算交易累积至当前缴费支付交易时对应的累计值。
具体地,该累计值可以是指所述缴费支付交易链表中与上一次监听到缴费结算请求交易的时刻对应的链表尾节点,累计至当前缴费支付交易的累计值。
例如,假设上一次监听到缴费结算请求交易的时刻对应的缴费支付交易链表尾节点为第10个节点。假设,从上一次监听到缴费结算请求交易的时刻时起至当前时刻的时间段内,又有5个节点加入该缴费支付交易链表。第11节点起的节点均为未结算节点。该缴费支付交易链表的第15个节点对应的缴费支付交易中的累计值为:从第11个节点对应的缴费支付交易累计至第15个节点对应的缴费支付交易的累计值。
其中,缴费支付交易中的累计值包括:累计支付总金额、累计支付总笔数;这只只是对缴费支付交易中的累计值进行示例性地说明,不进行具体地限定。
2)缴费销账交易链表
缴费销账交易链表是由在所述区块链上存证的缴费销账交易按照销账顺序构成的链表。
缴费销账交易链表中的缴费销账交易包括:所述缴费销账交易链表中未结算交易累积至当前缴费销账交易时对应的累计值。
具体地,该累计值可以是指所述缴费销账交易链表中与上一次监听到结算请求的时刻对应的链表尾节点,累计至当前缴费销账交易的累计值。
例如,假设上一次监听到缴费结算请求的时刻对应的缴费销账交易链表尾节点为第11个节点。假设,从上一次监听到结算请求的时刻时起至当前时刻的时间段内,又有6个节点加入该缴费销账交易链表。从第11节点起的节点均为未结算节点,该缴费销账交易链表的第17个节点对应的缴费销账交易中的累计值为:从第12个节点对应的缴费销账交易累计至第17个节点对应的缴费销账交易的累计值。
缴费销账交易中的累计值包括:累计销账总金额、累计销账总笔数;这里只是对缴费销账交易中的累计值进行示例性地说明,不进行具体地限定。
在本说明书提供的实施例中,支付系统可响应于监听到的该缴费结算请求交易,确定所述区块链存证的缴费支付交易链表的链表尾节点对应的目标缴费支付交易、以及所述缴费销账交易链表的链表尾节点对应的目标缴费销账交易中的累计值是否相同。
在实现时,支付系统可获取该区块链存证的缴费支付交易链表的链表尾节点的目标缴费支付交易,以及获取该区块链存证的缴费销账交易链表的链表尾节点对应的目标缴费销账交易。
支付系统可检测目标缴费支付交易携带的累计支付总金额与目标缴费销账交易携带的累计销账总金额是否相同、以及支付系统可检测标缴费支付交易携带的累计支付总笔数与目标缴费销账交易携带的累计销账总笔数是否相同。
如果目标缴费支付交易携带的累计支付总金额与目标缴费销账交易携带的累计销账总金额相同、且目标缴费支付交易携带的累计支付总笔数与目标缴费销账交易携带的累计销账总笔数相同,支付系统可基于该目标缴费支付交易中携带的累计支付总金额、或者该第一目标缴费销账交易中携带的累计销账总金额来进行资金结算。
此外,在本说明书实施例中,当完成资金结算后,支付系统可基于资金结算结果构造缴费结算凭证交易,并将缴费结算凭证交易发布至区块链进行存证。
此外,在完成资金结算后,支付系统可将该支付系统维护的累计支付总金额清零,将该支付系统维护的累计支付总笔数清零。
收款方系统在监听到该缴费结算凭证交易后,可将收款方系统维护的累计销账总金额清零,将收款方系统维护的累计支付总笔数清零。
例如,假设支付系统在监听到缴费结算请求交易时,缴费支付交易链表中的尾节点为第18个节点,该18个节点对应的缴费支付交易简称为第18个缴费支付交易。缴费销账交易链表中的尾节点为第18个节点,该第18个节点对应缴费销账交易简称为第18个缴费销账交易。
假设,第18个缴费支付交易的累计支付总金额为800元,累计支付总笔数为8笔。第18个缴费销账交易的累计销账总金额为800元,累计销账总笔数为8笔。
假设,累计支付总金额变量的取值为800元,累计支付总笔数变量的取值为8笔。累计销账总金额变量的取值为800元,累计销账总笔数变量的取值为8笔。
当支付系统监听到缴费结算请求交易时,可确定第18个缴费支付交易中的累计支付总金额(即800元)与第18个缴费销账交易中的累计销账总金额(即800元)是否一致,以及确定第18个缴费支付交易中的累计支付总笔数(即8笔)与第18个缴费销账交易中的累计销账总笔数(即8笔)是否一致。
在本例中,由于两者均一致,所以支付系统可以基于第18个缴费支付交易中的累计支付总金额或第18个缴费销账交易中的累计销账总金额(即800元)进行资金结算。
在结算完成后,支付系统可将该支付系统维护的累计支付总金额清0,将累计支付总笔数变量的取值清0。
此外,支付系统可构造缴费结算凭证交易,并将该缴费结算凭证交易发布至区块链进行存证。
收款方系统在监听到该缴费结算凭证交易后,可将收款方系统维护的累计销账总金额清0,将收款方系统维护的累计支付总笔数清0。
由上述描述可知,一方面由于支付系统不再按照约定的结算时刻通过与收款方系统进行交互完成资金结算,而是支付系统在监听到由收款方系统在区块链上发布的缴费结算请求交易时,利用区块链上存证的缴费支付交易和缴费销账交易进行对账并完成资金结算;由于在对账和资金结算时,不再需要收款方系统参与,因此,可以实现随时进行资金结算,增加资金结算的灵活性。
另一方面,由于区块链存证的缴费支付交易和缴费销账交易均携带了累计值,这使得支付系统在进行对账时,可以直接通过缴费支付交易链表尾节点对应的缴费支付交易和缴费销账交易链表尾节点对应缴费销账交易中的累计值进行对账,而不需要再统计上一次结算时刻至当前时刻所有缴费支付交易的累计值和所有缴费销账交易的累计值,从而大大降低了支付系统在进行资金结算时的工作负荷。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的结算装置的实施例。本说明书基于区块链的结算装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书的区块的业务配置装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
该电子设备可以是与区块链对接的支付系统,也可以是与区块链对接的收款方系统。
参见图7,图7是本说明书一示例性实施例示出的一种基于区块链的结算装置的框图,该装置可应用在与区块链对接的支付系统上,可包括如下所示单元。
监听单元701,用于监听收款方系统在所述区块链中存证的结算请求交易;
第一获取单元702,用于响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
确定单元703,用于确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;
结算单元704,用于如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
可选的,所述装置还包括:
第二获取单元705,用于获取用户终端发送的支付消息;所述支付消息中携带支付信息;
第一构造单元706,用于响应于所述支付消息,基于所述支付信息构造缴费支付交易;
第一发布单元707,用于将所述缴费支付交易发布至区块链进行存证,以使得收款方系统在监听到所述区块链中存证的缴费支付交易后,基于该缴费支付交易中的支付信息进行缴费销账,并将由缴费销账结果构造的缴费销账交易发布至所述区块链进行存证。
可选的,所述第一发布单元707,在将所述缴费支付交易发布至区块链进行存证时,具体用于检测当前所述缴费交易链表的链表尾节点对应的缴费支付交易与当前所述缴费销账链表的链表尾节点对应的缴费销账交易中的累计值是否相同;若相同,则将所述缴费支付交易发布至区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述支付系统维护了所述缴费支付交易链表的链表尾节点对应的缴费支付交易中的累计支付总金额和累计支付总笔数;
所述第一构造单元706,具体用于获取当前所述缴费交易链表的链表尾节点对应的缴费支付交易,并生成该链表尾节点对应的缴费支付交易的哈希指针;基于所述支付系统维护的累计支付总金额和所述支付消息中携带的支付金额,确定所述缴费支付交易中的累计支付总金额;基于所述支付系统维护的累计支付总笔数,确定所述缴费支付交易中的累计支付总笔数;基于所述支付信息、生成的哈希指针、所述缴费支付交易中的累计支付总金额和累计支付总笔数,构造所述缴费支付交易。
可选的,所述装置还包括:
更新单元708,用于在将所述缴费支付交易发布至区块链进行存证后,采用所述缴费支付交易中记录的累计支付总金额和累计支付总笔数、分别更新所述支付系统维护的累计支付总金额和累计支付总笔数。
可选的,所述装置还包括:
复位单元709,用于在确定资金结算完成后,将所述支付系统维护的累计支付总金额和累计支付总笔数清零。
可选的,所述装置还包括:
第二构造单元710,用于在确定资金结算完成后,基于资金结算结果构造缴费结算凭证交易;
第二发布单元711,用于将所述缴费结算凭证交易发布至所述区块链进行存证。
参见图8,图8是本说明书一示例性实施例示出的另一种基于区块链的结算装置的框图,该装置可应用在与区块链对接的收款方系统上,可包括如下所示单元。
第一构造单元801,用于响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易;
第一发布单元802,用于将所述缴费结算请求交易发布至所述区块链进行存证,以使支付系统监听收款方系统在所述区块链中存证的缴费结算请求交易;响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算;
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值。
可选的,所述装置还包括:
第一监听单元803,用于监听由支付系统在所述区块链中存证的缴费支付交易;其中,所述缴费支付交易中携带支付信息;
销账单元804,用于响应于监听到的所述缴费支付交易,基于所述缴费支付交易中的支付信息进行缴费销账;
第二构造单元805,用于基于缴费销账结果构造缴费销账交易;
第二发布单元806,用于将缴费销账交易发布至所述区块链进行存证。
可选的,所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述收款方系统维护了所述缴费销账交易链表的链表尾节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数;
所述第二构造单元805,具体用于获取当前所述缴费销账链表的链表尾节点对应的缴费销账交易,并生成该链表尾节点对应的缴费销账交易的哈希指针;生成监听到的所述缴费支付交易的哈希指针;基于所述收款方系统维护的累计销账总金额和所述缴费支付交易中携带的支付金额,确定所述缴费销账交易中的累计销账总金额;基于所述收款方系统维护的累计销账总笔数,确定所述缴费销账交易中的累计销账总笔数;基于所述缴费销账结果、该链表尾节点对应的缴费销账交易的哈希指针、所述缴费支付交易的哈希指针、所述缴费销账交易中的累计销账总金额和累计销账总笔数,构造缴费销账交易。
可选的,所述第二发布单元806,具体用于检测所述收款方系统维护的累计销账总金额与所述支付金额之和是否与所述缴费支付交易中的累计支付总金额一致、以及检测所述收款方系统维护的累计销账笔数加1后的值是否与所述缴费支付交易中的累计支付总笔数一致;若均一致,则将缴费销账交易发布至所述区块链进行存证。
可选的,所述装置还包括:
更新单元807,用于在将缴费销账交易发布至所述区块链进行存证之后,基于所述缴费销账交易中的累计销账总金额和累计销账总笔数,更新所述收款方系统维护的累计销账总金额和累计销账总笔数。
可选的,所述装置还包括:
第二监听单元808,用于监听由所述支付系统发布至所述区块链的缴费结算凭证交易;
复位单元809,用于响应于所述缴费结算凭证交易,将所述收款方系统维护的累计销账总金额和累计销账总笔数清零。
与上述方法实施例对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听收款方系统在所述区块链中存证的结算请求交易;
响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;
确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;
如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取用户终端发送的支付消息;所述支付消息中携带支付信息;
响应于所述支付消息,基于所述支付信息构造缴费支付交易;
将所述缴费支付交易发布至区块链进行存证,以使得收款方系统在监听到所述区块链中存证的缴费支付交易后,基于该缴费支付交易中的支付信息进行缴费销账,并将由缴费销账结果构造的缴费销账交易发布至所述区块链进行存证。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
检测当前所述缴费交易链表的链表尾节点对应的缴费支付交易与当前所述缴费销账链表的链表尾节点对应的缴费销账交易中的累计值是否相同;
若相同,则将所述缴费支付交易发布至区块链进行存证。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述支付系统维护了所述缴费支付交易链表的链表尾节点对应的缴费支付交易中的累计支付总金额和累计支付总笔数;
通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取当前所述缴费交易链表的链表尾节点对应的缴费支付交易,并生成该链表尾节点对应的缴费支付交易的哈希指针;
基于所述支付系统维护的累计支付总金额和所述支付消息中携带的支付金额,确定所述缴费支付交易中的累计支付总金额;
基于所述支付系统维护的累计支付总笔数,确定所述缴费支付交易中的累计支付总笔数;
基于所述支付信息、生成的哈希指针、所述缴费支付交易中的累计支付总金额和累计支付总笔数,构造所述缴费支付交易。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
在将所述缴费支付交易发布至区块链进行存证后,采用所述缴费支付交易中记录的累计支付总金额和累计支付总笔数、分别更新所述支付系统维护的累计支付总金额和累计支付总笔数。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器还被促使:
在确定资金结算完成后,将所述支付系统维护的累计支付总金额和累计支付总笔数清零。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器还被促使:
在确定资金结算完成后,基于资金结算结果构造缴费结算凭证交易;
将所述缴费结算凭证交易发布至所述区块链进行存证。
与上述方法实施例对应,本说明书还提供了另一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
响应于客户端发起的缴费结算请求,基于该结算请求构造结算请求交易;
将所述缴费结算请求交易发布至所述区块链进行存证,以使支付系统监听收款方系统在所述区块链中存证的缴费结算请求交易;响应于监听到的所述缴费结算请求交易,获取由所述区块链上存证的缴费支付交易按照缴费支付顺序构成的缴费支付交易链表的链表尾节点对应的目标缴费支付交易;以及,由所述区块链上存证的缴费销账交易按照缴费销账顺序构成的缴费销账交易链表的链表尾节点对应的目标缴费销账交易;确定所述目标缴费支付交易和所述目标缴费销账交易的累计值是否相同;如果相同,基于所述目标缴费支付交易中或所述目标缴费销账交易中的累计值进行资金结算;
其中,所述缴费支付交易包括所述缴费支付交易链表中的未结算交易累积至该缴费支付交易时对应的累计值;所述缴费销账交易包括所述缴费销账交易链表中的未结算交易累积至该缴费支付交易时对应的累计值。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听由支付系统在所述区块链中存证的缴费支付交易;其中,所述缴费支付交易中携带支付信息;
响应于监听到的所述缴费支付交易,基于所述缴费支付交易中的支付信息进行缴费销账;
基于缴费销账结果构造缴费销账交易,并将缴费销账交易发布至所述区块链进行存证。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
所述缴费支付交易的累计值包括:累计支付总金额和累计支付总笔数;
所述缴费销账交易的累计值包括:累计销账总金额和累计销账总笔数。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
所述缴费支付交易中还包括:指向所述区块链存证的上一笔缴费支付交易的哈希指针;
所述缴费销账结果交易还包括:指向所述区块链存证的上一笔缴费销账交易的哈希指针、指向与所述缴费销账交易对应的缴费支付交易的哈希指针。
可选的,所述支付信息包括:支付金额;
所述收款方系统维护了所述缴费销账交易链表的链表尾节点对应的缴费销账交易中的累计销账总金额和累计销账总笔数;
通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
获取当前所述缴费销账链表的链表尾节点对应的缴费销账交易,并生成该链表尾节点对应的缴费销账交易的哈希指针;
生成监听到的所述缴费支付交易的哈希指针;
基于所述收款方系统维护的累计销账总金额和所述缴费支付交易中携带的支付金额,确定所述缴费销账交易中的累计销账总金额;
基于所述收款方系统维护的累计销账总笔数,确定所述缴费销账交易中的累计销账总笔数;
基于所述缴费销账结果、该链表尾节点对应的缴费销账交易的哈希指针、所述缴费支付交易的哈希指针、所述缴费销账交易中的累计销账总金额和累计销账总笔数,构造缴费销账交易。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
检测所述收款方系统维护的累计销账总金额与所述支付金额之和是否与所述缴费支付交易中的累计支付总金额一致、以及检测所述收款方系统维护的累计销账笔数加1后的值是否与所述缴费支付交易中的累计支付总笔数一致;
若均一致,则将缴费销账交易发布至所述区块链进行存证。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于所述缴费销账交易中的累计销账总金额和累计销账总笔数,更新所述收款方系统维护的累计销账总金额和累计销账总笔数。
可选的,通过读取并执行所述存储器存储的与基于区块链的结算的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听由所述支付系统发布至所述区块链的缴费结算凭证交易;
响应于所述缴费结算凭证交易,将所述收款方系统维护的累计销账总金额和累计销账总笔数清零。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。