基于区块链的退款方法和装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的退款方法和装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
本说明书提出一种基于区块链的退款方法,所述方法应用于支付系统;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳;所述方法包括:
监听由收款方发布至所述区块链的最新区块的确认时间戳;
基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易;
将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
可选地,所述方法还包括:
在完成针对所述目标支付订单的退款处理时,生成对应于所述目标支付订单的退款处理结果;
将所述退款处理结果发布至所述区块链进行存证。
可选地,所述区块链中还存证了在收款方确认收款时发布至所述区块链的收款确认结果;
所述支付系统采用以下步骤确定目标支付订单:
确定与所述支付订单对应的收款确认结果或退款处理结果是否已在所述区块链中存证;
如果所述收款确认结果以及所述退款处理结果均未在所述区块链中存证,则确定所述支付订单为未确认收款的目标支付订单。
可选地,所述获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理,包括:
监听所述智能合约在完成对所述目标支付订单的校验时生成的校验事件;
确定所述校验事件是否为校验通过事件;
如果所述校验事件为校验通过事件,则针对所述目标支付订单进行退款处理。
可选地,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
可选地,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
本说明书还提出一种基于区块链的退款方法,所述方法应用于所述区块链中的节点设备;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳;所述方法包括:
接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造;
响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
可选地,所述向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理,包括:
通过所述智能合约在完成对所述目标支付订单的校验时生成校验事件,以由所述支付系统在确定监听到的所述校验事件为校验通过事件时,针对所述目标支付订单进行退款处理。
可选地,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
可选地,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
本说明书还提出一种基于区块链的退款装置,所述装置应用于支付系统;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳;所述装置包括:
监听模块,用于监听由收款方发布至所述区块链的最新区块的确认时间戳;
构造模块,用于基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易;
发送模块,用于将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
退款模块,用于获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
可选地,所述装置还包括:
生成模块,用于在完成针对所述目标支付订单的退款处理时,生成对应于所述目标支付订单的退款处理结果;
存证模块,用于将所述退款处理结果发布至所述区块链进行存证。
可选地,所述区块链中还存证了在收款方确认收款时发布至所述区块链的收款确认结果;
所述构造模块具体用于:
确定与所述支付订单对应的收款确认结果或退款处理结果是否已在所述区块链中存证;
如果所述收款确认结果以及所述退款处理结果均未在所述区块链中存证,则确定所述支付订单为未确认收款的目标支付订单。
可选地,所述退款模块具体用于:
监听所述智能合约在完成对所述目标支付订单的校验时生成的校验事件;
确定所述校验事件是否为校验通过事件;
如果所述校验事件为校验通过事件,则针对所述目标支付订单进行退款处理。
可选地,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
可选地,所述确认时间戳,指示收款方不再支付时间戳在对所述确认时间戳之前的支付订单进行收款确认。
本说明书还提出一种基于区块链的退款装置,所述装置应用于所述区块链中的节点设备;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳;所述装置包括:
接收模块,用于接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造;
调用模块,用于响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
发布模块,用于向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
可选地,所述发布模块具体用于:
通过所述智能合约在完成对所述目标支付订单的校验时生成校验事件,以由所述支付系统在确定监听到的所述校验事件为校验通过事件时,针对所述目标支付订单进行退款处理。
可选地,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
可选地,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
本说明书还提出一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听由收款方发布至所述区块链的最新区块的确认时间戳;
基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易;
将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
其中,所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳。
本说明书还提出一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造;
响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理;
其中,所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳。
在上述技术方案中,由于可以将确认时间戳和包含支付时间戳的支付订单发布至区块链进行存证,并通过部署在区块链上的智能合约,校验未确认收款的支付订单中的支付时间戳与确认时间戳的差值是否大于预设时长,以在该差值大于预设时长时,针对该支付订单进行退款处理,因此可以保证支付时间戳和确认时间戳等时间数据,以及针对支付订单的校验逻辑真实、有效,从而可以保证退款安全,并提高退款效率。
附图说明
图1是本说明书一示例性实施例示出的一种基于区块链的退款系统的示意图;
图2是本说明书一示例性实施例示出的一种基于区块链的退款方法的流程图;
图3是本说明书一示例性实施例示出的另一种基于区块链的退款方法的流程图;
图4是本说明书一示例性实施例示出的一种基于区块链的退款装置所在电子设备的硬件结构图;
图5是本说明书一示例性实施例示出的一种基于区块链的退款装置的框图;
图6是本说明书一示例性实施例示出的另一种基于区块链的退款装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书旨在提供一种基于区块链中存证的确认时间戳,对区块链中存证的支付订单进行校验,以确定其中满足退款条件的支付订单,并自动针对该支付订单进行退款处理的技术方案。
在具体实现时,收款方可以将确认时间戳发布至区块链进行存证;支付系统则可以监听区块链的最新区块中存证的确认时间戳,并基于该确认时间戳和区块链中存证的未确认收款的支付订单,构造智能合约调用交易。
区块链中的节点设备可以接收到由支付系统发送的该智能合约调用交易,并响应于该智能合约调用交易,调用部署在区块链上的智能合约中声明的支付订单校验逻辑,校验该支付订单的支付时间戳与该确认时间戳的差值是否达到预设时长。
支付系统可以获取到智能合约针对该支付订单的校验结果,并在该校验结果为该支付订单的支付时间戳与该确认时间戳的差值达到预设时长时,针对该支付订单进行退款处理。
在本说明书中描述的区块链,具体可以包括任意类型的区块链网络;例如,在实际应用中,可以采用共有链、私有链、或者联盟链中的任意一种。
其中,区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。
在上述技术方案中,由于可以将确认时间戳和包含支付时间戳的支付订单发布至区块链进行存证,并通过部署在区块链上的智能合约,校验未确认收款的支付订单中的支付时间戳与确认时间戳的差值是否大于预设时长,以在该差值大于预设时长时,针对该支付订单进行退款处理,因此可以保证支付时间戳和确认时间戳等时间数据,以及针对支付订单的校验逻辑真实、有效,从而可以保证退款安全,并提高退款效率。
请参考图1,图1是本说明书一示例性实施例示出的一种基于区块链的退款系统的示意图。
在图1所示的基于区块链的退款系统中,收款方可以向付款方收取费用,例如:收款方可以是缴费机构,付款方可以是缴纳水费和电费等费用的用户;或者,收款方可以是银行,付款方可以是进行信用卡还款的用户。
付款方可以通过支付系统向收款方进行支付。支付系统在确定付款方完成支付后,一方面,可以将本次支付生成的支付订单发布至区块链进行存证,其中,支付订单可以包括订单流水号、支付金额以及与支付时刻对应的支付时间戳等数据;另一方面,可以向收款方发布针对本次支付的收款确认通知。收款方在确认收款后,可以将相应的收款确认结果发布至区块链进行存证,其中,收款确认结果可以包括订单流水号、收款金额以及与收款时刻对应的收款时间戳等数据。
在实际应用中,支付系统可以将该收款确认通知发布至区块链进行存证,收款方则可以在监听到区块链中存证的该收款确认通知时,针对该支付订单进行收款确认。
除此之外,收款方还可以生成确认时间戳,并将该确认时间戳发布至区块链进行存证。
需要说明的是,支付系统可以是搭载在区块链中的节点设备上的软件系统,也可以是搭载在与区块链中的节点设备之间建立连接的服务器上的软件系统,本说明书对此不作限制。
请参考图2,图2是本说明书一示例性实施例示出的一种基于区块链的退款方法的流程图。该方法可以应用于图1所示的支付系统,包括以下步骤:
步骤202,监听由收款方发布至所述区块链的最新区块的确认时间戳。
步骤204,基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易。
步骤206,将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长。
步骤208,获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
在本实施例中,一方面,支付系统可以在确定付款方完成支付时,将基于本次支付的支付数据生成的支付订单发布至区块链进行存证。
其中,支付订单可以包括与支付时刻对应的支付时间戳、支付金额以及订单流水号等数据,本说明书对此不作限制。
举例来说,付款方可以通过支付系统向收款方进行支付,支付系统在从付款方的账户余额中扣除了相应的金额后,可以确定付款方完成支付,从而可以将基于本次支付的支付数据生成的支付订单发布至区块链进行存证。
另一方面,支付系统可以实时监听区块链中新生成的区块,以监听区块链的最新区块中存证的确认时间戳。
其中,确认时间戳可以与一个具体时刻(称为确认时刻)对应。在实际应用中,确认时间戳可以由收款方生成,并由收款方发布至区块链中进行存证。
需要说明的是,上述确认时间戳可以指示收款方不再针对支付时间戳在该确认时间戳之前的支付订单进行收款确认。
具体地,收款方在接收到由支付系统发布的针对某次支付的收款确认通知后,一方面,可以基于此次支付的支付订单中的支付时间戳,确定与该支付时间戳对应的支付时刻是否在与该确认时间戳对应的确认时刻之前;另一方面,可以确定接收到该收款确认通知的时刻是否在与该确认时间戳对应的确认时刻之后。如果与该支付时间戳对应的支付时刻在与该确认时间戳对应的确认时刻之前,且接收到该收款确认通知的时刻在与该确认时间戳对应的确认时刻之后,则支付系统无需针对此次支付的支付订单进行收款确认。
举例来说,假设与该确认时间戳对应的确认时刻为8时45分,收款方在8时46分接收到一个收款确认通知。由于收款确认通知以及支付订单中都可以包含订单流水号,因此在这种情况下,收款方可以基于该收款确认通知中的订单流水号,确定与该收款确认通知对应的支付订单,即订单流水号与该收款确认通知中的订单流水号相同的支付订单。假设与该支付订单中的支付时间戳对应的支付时刻为8时42分,则由于该支付时刻早于该确认时刻,且收款方接收到该收款确认通知的时刻晚于该确认时刻,因此收款方无需针对该支付订单进行收款确认。
在实际应用中,如果区块链的最新区块中存证了多个确认时间戳,则支付系统可以从中选择对应的确认时刻最晚的确认时间戳。
举例来说,假设区块链的最新区块中存证了确认时间戳1、确认时间戳2和确认时间戳3;其中,与确认时间戳1对应的确认时刻1为8时43分,与确认时间戳2对应的确认时刻2为8时44分;与确认时间戳3对应的确认时刻3为8时45分。由于在这三个确认时刻中,确认时刻3最晚,因此支付系统可以选择确认时间戳3。
在示出的一种实施方式中,确认时间戳可以由收款方基于预设的时间周期,定期发布至区块链进行存证。
其中,预设的时间周期可以是由收款方相关人员自行设置,也可以是默认的缺省值,本说明书对此不作限制。
举例来说,假设收款方相关人员设置的时间周期为1分钟,则收款方可以每隔1分钟,基于当前时刻生成确认时间戳,并将生成的确认时间戳发布至区块链中进行存证,例如:收款方可以在8时45分生成确认时间戳,并将该确认时间戳发布至区块链进行存证,与该确认时间戳中对应的确认时刻即为8时45分;收款方可以继续在8时46分生成确认时间戳,并将该确认时间戳发布至区块链进行存证,与该确认时间戳对应的确认时刻即为8时46分;以此类推。
在实际应用中,无需始终基于当前时刻生成确认时间戳,而是可以基于当前时刻或在当前时刻之前的某个时刻生成确认时间戳,并将生成的确认时间戳发布至区块链中进行存证,例如:收款方可以在8时45分构造确认时间戳,并将该确认时间戳发布至区块链进行存证,与该确认时间戳对应的确认时刻可以是8时43分;收款方可以继续在8时46分构造确认时间戳,并将该确认时间戳发布至区块链进行存证,与该确认时间戳对应的确认时刻可以是8时44分;以此类推。
支付系统在监听到区块链中存证的确认时间戳后,可以基于该确认时间戳,以及区块链中存证的未确认收款的支付订单(称为目标支付订单),构造智能合约调用交易,并将构造的智能合约调用交易发送给区块链中的节点设备。
在实际应用中,如果某笔支付订单为未确认收款状态,则说明在付款方完成支付后,收款方还没有针对该支付订单进行收款确认;否则,说明在付款方完成支付后,收款方已完成针对该支付订单的收款确认。
区块链中的节点设备在接收到上述智能合约调用交易后,可以对该智能合约调用交易进行响应,从而可以调用部署在区块链上的智能合约中声明的支付订单校验逻辑,校验上述目标支付订单中的支付时间戳与上述确认时间戳的差值是否达到预设时长。
其中,支付订单校验逻辑具体可以是声明在该智能合约中的,与校验支付订单是否满足退款条件的执行逻辑相关的程序代码(例如:一些可供调用的程序方法或者函数);预设时长可以由收款方相关人员自行设置,也可以是默认的缺省值,本说明书对此不作限制。
具体地,针对该目标支付订单,区块链中的节点设备可以计算与该支付订单中的支付时间戳对应的支付时刻,和与该确认时间戳对应的确认时刻之间的时间差,并进一步地校验该时间差是否达到该预设时长。
举例来说,假设收款方相关人员设置的预设时长为5分钟,与该确认时间戳对应的确认时刻为8时45分,与该目标支付订单中的支付时间戳对应的支付时刻为8时40分。由于该支付时刻和该确认时刻之间的时间差为5分钟,已经达到该预设时长,因此区块链中的节点设备可以确定针对该目标支付订单的校验结果为达到预设时长。
后续,支付系统可以获取上述智能合约针对上述目标支付订单的校验结果,并在该校验结果为达到预设时长时,针对该目标支付订单进行退款处理。
在示出的一种实施方式中,上述智能合约可以在完成对上述目标支付订单的校验时,生成校验事件。支付系统则可以对智能合约生成的校验事件进行监听,并确定监听到的校验事件是否为校验通过事件。如果确定该校验事件为校验通过事件,则支付系统可以针对该目标支付订单进行退款处理,例如:支付系统可以基于该目标支付订单中的支付金额,将该支付金额退还至付款方的账户余额。
在示出的一种实施方式中,为了避免重复对支付订单进行退款处理,支付系统在完成针对上述目标支付订单的退款处理时,可以生成与该目标支付订单对应的退款处理结果,并将该退款处理结果发布至区块链进行存证。
其中,退款处理结果可以包括订单流水号、退款金额以及与退款时刻对应的退款时间戳等数据,本说明书对此不作限制。
举例来说,支付系统在将该目标支付订单中的支付金额退还至付款方的账户余额后,可以确定完成针对该目标支付订单的退款处理,从而可以生成与该目标支付订单对应的退款处理结果,并将该退款处理结果发布至区块链进行存证。
在示出的一种实施方式中,进一步地,收款方可以在确认收款后,生成与上述支付订单对应的收款确认结果,并将该收款确认结果发布至区块链进行存证。
其中,收款确认结果可以包括订单流水号、收款金额以及与收款时刻对应的收款时间戳等数据,本说明书对此不作限制。
举例来说,支付系统在确定付款方完成支付后,可以向收款方发布针对本次支付的收款确认通知。收款方在接收到该收款确认通知后,可以通过订单流水号确定本次支付的支付订单,并针对该支付订单进行收款确认,例如:确认收款金额与支付金额是否相等;确认是否已对该支付订单进行销账处理等。收款方在确认收款后,可以生成与该支付订单对应的收款确认结果,并将该收款确认结果发布至区块链进行存证。
在上述情况下,为了确定区块链中存证的某笔支付订单是否为未确认收款的支付订单,支付系统可以先确定与该支付订单对应的收款确认结果或退款处理结果是否已在区块链中存证。
举例来说,支付系统可以基于该支付订单中的订单流水号,确定与该支付订单对应的收款确认结果或退款处理结果是否已在区块链中存证。具体地,如果确定区块链中存证了订单流水号与该支付订单中的订单流水号相同的收款确认结果,或者确定区块链中存证了订单流水号与该支付订单中的订单流水号相同的退款处理结果,则可以确定与该支付订单对应的收款确认结果或退款处理结果已在区块链中存证;相应地,如果确定区块链中未存证订单流水号与该支付订单中的订单流水号相同的收款确认结果,也未存证订单流水号与该支付订单中的订单流水号相同的退款处理结果,则可以确定与该支付订单对应的收款确认结果或退款处理结果未在区块链中存证。
如果确定与该支付订单对应的收款确认结果或退款处理结果均未在区块链中存证,则说明收款方尚未针对该支付订单进行收款确认,支付系统也尚未针对该支付订单进行退款处理,因此支付系统可以确定该支付订单为未确认收款的支付订单,即可以将该支付订单确定为目标支付订单,并进一步地由区块链中的节点设备通过部署在区块链上的智能合约校验该目标支付订单是否满足退款条件。
在上述技术方案中,由于可以将确认时间戳和包含支付时间戳的支付订单发布至区块链进行存证,并通过部署在区块链上的智能合约,校验未确认收款的支付订单中的支付时间戳与确认时间戳的差值是否大于预设时长,以在该差值大于预设时长时,针对该支付订单进行退款处理,因此可以保证支付时间戳和确认时间戳等时间数据,以及针对支付订单的校验逻辑真实、有效,从而可以保证退款安全,并提高退款效率。
请参考图3,图3是本说明书一示例性实施例示出的另一种基于区块链的退款方法的流程图。该方法可以应用于图1所示的区块链中的节点设备,包括以下步骤:
步骤302,接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造。
步骤304,响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长。
步骤306,向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
在本实施例中,一方面,支付系统可以在确定付款方完成支付时,将基于本次支付的支付数据生成的支付订单发布至区块链进行存证。
其中,支付订单可以包括与支付时刻对应的支付时间戳、支付金额以及订单流水号等数据,本说明书对此不作限制。
另一方面,支付系统可以实时监听区块链中新生成的区块,以监听区块链的最新区块中存证的确认时间戳。
其中,确认时间戳可以与一个具体时刻(称为确认时刻)对应。在实际应用中,确认时间戳可以由收款方生成,并由收款方发布至区块链中进行存证。
需要说明的是,上述确认时间戳可以指示收款方不再针对支付时间戳在该确认时间戳之前的支付订单进行收款确认。
具体地,收款方在接收到由支付系统发布的针对某次支付的收款确认通知后,一方面,可以基于此次支付的支付订单中的支付时间戳,确定与该支付时间戳对应的支付时刻是否在与该确认时间戳对应的确认时刻之前;另一方面,可以确定接收到该收款确认通知的时刻是否在与该确认时间戳对应的确认时刻之后。如果与该支付时间戳对应的支付时刻在与该确认时间戳对应的确认时刻之前,且接收到该收款确认通知的时刻在与该确认时间戳对应的确认时刻之后,则支付系统无需针对此次支付的支付订单进行收款确认。
在实际应用中,如果区块链的最新区块中存证了多个确认时间戳,则支付系统可以从中选择对应的确认时刻最晚的确认时间戳。
在示出的一种实施方式中,确认时间戳可以由收款方基于预设的时间周期,定期发布至区块链进行存证。
其中,预设的时间周期可以是由收款方相关人员自行设置,也可以是默认的缺省值,本说明书对此不作限制。
在实际应用中,无需始终基于当前时刻生成确认时间戳,而是可以基于当前时刻或在当前时刻之前的某个时刻生成确认时间戳,并将生成的确认时间戳发布至区块链中进行存证。
支付系统在监听到区块链中存证的确认时间戳后,可以基于该确认时间戳,以及区块链中存证的未确认收款的支付订单(称为目标支付订单),构造智能合约调用交易,并将构造的智能合约调用交易发送给区块链中的节点设备。
在实际应用中,如果某笔支付订单为未确认收款状态,则说明在付款方完成支付后,收款方还没有针对该支付订单进行收款确认;否则,说明在付款方完成支付后,收款方已完成针对该支付订单的收款确认。
区块链中的节点设备在接收到上述智能合约调用交易后,可以对该智能合约调用交易进行响应,从而可以调用部署在区块链上的智能合约中声明的支付订单校验逻辑,校验上述目标支付订单中的支付时间戳与上述确认时间戳的差值是否达到预设时长。
其中,支付订单校验逻辑具体可以是声明在该智能合约中的,与校验支付订单是否满足退款条件的执行逻辑相关的程序代码(例如:一些可供调用的程序方法或者函数);预设时长可以由收款方相关人员自行设置,也可以是默认的缺省值,本说明书对此不作限制。
具体地,针对该目标支付订单,区块链中的节点设备可以计算与该支付订单中的支付时间戳对应的支付时刻,和与该确认时间戳对应的确认时刻之间的时间差,并进一步地校验该时间差是否达到该预设时长。
后续,支付系统可以获取上述智能合约针对上述目标支付订单的校验结果,并在该校验结果为达到预设时长时,针对该目标支付订单进行退款处理。
在示出的一种实施方式中,上述智能合约可以在完成对上述目标支付订单的校验时,生成校验事件。支付系统则可以对智能合约生成的校验事件进行监听,并确定监听到的校验事件是否为校验通过事件。如果确定该校验事件为校验通过事件,则支付系统可以针对该目标支付订单进行退款处理,例如:支付系统可以基于该目标支付订单中的支付金额,将该支付金额退还至付款方的账户余额。
在示出的一种实施方式中,为了避免重复对支付订单进行退款处理,支付系统在完成针对上述目标支付订单的退款处理时,可以生成与该目标支付订单对应的退款处理结果,并将该退款处理结果发布至区块链进行存证。
其中,退款处理结果可以包括订单流水号、退款金额以及与退款时刻对应的退款时间戳等数据,本说明书对此不作限制。
举例来说,支付系统在将该目标支付订单中的支付金额退还至付款方的账户余额后,可以确定完成针对该目标支付订单的退款处理,从而可以生成与该目标支付订单对应的退款处理结果,并将该退款处理结果发布至区块链进行存证。
在示出的一种实施方式中,进一步地,收款方可以在确认收款后,生成与上述支付订单对应的收款确认结果,并将该收款确认结果发布至区块链进行存证。
其中,收款确认结果可以包括订单流水号、收款金额以及与收款时刻对应的收款时间戳等数据,本说明书对此不作限制。
在上述情况下,为了确定区块链中存证的某笔支付订单是否为未确认收款的支付订单,支付系统可以先确定与该支付订单对应的收款确认结果或退款处理结果是否已在区块链中存证。
如果确定与该支付订单对应的收款确认结果或退款处理结果均未在区块链中存证,则说明收款方尚未针对该支付订单进行收款确认,支付系统也尚未针对该支付订单进行退款处理,因此支付系统可以确定该支付订单为未确认收款的支付订单,即可以将该支付订单确定为目标支付订单,并进一步地由区块链中的节点设备通过部署在区块链上的智能合约校验该目标支付订单是否满足退款条件。
在上述技术方案中,由于可以将确认时间戳和包含支付时间戳的支付订单发布至区块链进行存证,并通过部署在区块链上的智能合约,校验未确认收款的支付订单中的支付时间戳与确认时间戳的差值是否大于预设时长,以在该差值大于预设时长时,针对该支付订单进行退款处理,因此可以保证支付时间戳和确认时间戳等时间数据,以及针对支付订单的校验逻辑真实、有效,从而可以保证退款安全,并提高退款效率。
与前述基于区块链的退款方法的实施例相对应,本说明书还提供了基于区块链的退款装置的实施例。
本说明书基于区块链的退款装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书基于区块链的退款装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于区块链的退款的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,图5是本说明书一示例性实施例示出的一种基于区块链的退款装置的框图。该装置50可以应用于图4所示的电子设备上搭载的支付系统;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单,所述支付订单包括与支付时刻对应的支付时间戳;该装置50可以包括:
监听模块501,用于监听由收款方发布至所述区块链的最新区块的确认时间戳;
构造模块502,用于基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易;
发送模块503,用于将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
退款模块504,用于获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
在本实施例中,所述装置50还可以包括:
生成模块505,用于在完成针对所述目标支付订单的退款处理时,生成对应于所述目标支付订单的退款处理结果
存证模块505,用于将所述退款处理结果发布至所述区块链进行存证。
在本实施例中,所述区块链中还存证了在收款方确认收款时发布至所述区块链的收款确认结果;
所述构造模块502具体可以用于:
确定与所述支付订单对应的收款确认结果或退款处理结果是否已在所述区块链中存证;
如果所述收款确认结果以及所述退款处理结果均未在所述区块链中存证,则确定所述支付订单为未确认收款的目标支付订单。
在本实施例中,所述退款模块504具体可以用于:
监听所述智能合约在完成对所述目标支付订单的校验时生成的校验事件;
确定所述校验事件是否为校验通过事件;
如果所述校验事件为校验通过事件,则针对所述目标支付订单进行退款处理。
在本实施例中,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
在本实施例中,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
请参考图6,图6是本说明书一示例性实施例示出的另一种基于区块链的退款装置的框图。该装置60可以应用于图4所示的电子设备,该电子设备可以是所述区块链中的节点设备;所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳;该装置60可以包括:
接收模块601,用于接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造;
调用模块602,用于响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
发布模块603,用于向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理。
在本实施例中,所述发布模块603具体可以用于:
通过所述智能合约在完成对所述目标支付订单的校验时生成校验事件,以由所述支付系统在确定监听到的所述校验事件为校验通过事件时,针对所述目标支付订单进行退款处理。
在本实施例中,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
在本实施例中,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述基于区块链的退款方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听由收款方发布至所述区块链的最新区块的确认时间戳;
基于所述确认时间戳,以及所述区块链中存证的未确认收款的目标支付订单,构造智能合约调用交易;
将所述智能合约调用交易发送给所述区块链中的节点设备,以由所述节点设备响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
获取所述智能合约针对所述目标支付订单的校验结果,并在所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理;
其中,所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单;所述支付订单包括与支付时刻对应的支付时间戳。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器还被促使:
在完成针对所述目标支付订单的退款处理时,生成对应于所述目标支付订单的退款处理结果;
将所述退款处理结果发布至所述区块链进行存证。
在本实施例中,所述区块链中还存证了在收款方确认收款时发布至所述区块链的收款确认结果;
通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定与所述支付订单对应的收款确认结果或退款处理结果是否已在所述区块链中存证;
如果所述收款确认结果以及所述退款处理结果均未在所述区块链中存证,则确定所述支付订单为未确认收款的目标支付订单。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
监听所述智能合约在完成对所述目标支付订单的校验时生成的校验事件;
确定所述校验事件是否为校验通过事件;
如果所述校验事件为校验通过事件,则针对所述目标支付订单进行退款处理。
在本实施例中,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
在本实施例中,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
与上述基于区块链的退款方法实施例相对应,本说明书还提供了另一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收支付系统发送的智能合约调用交易;其中,所述智能合约调用交易由所述支付系统在监听到由收款方发布至所述区块链的最新区块的确认时间戳时,基于所述确认时间戳以及所述区块链中存证的未确认收款的目标支付订单构造;
响应于所述智能合约调用交易,调用部署在所述区块链上的智能合约中声明的支付订单校验逻辑,校验所述目标支付订单中的支付时间戳与所述确认时间戳的差值是否达到预设时长;
向所述支付系统发布针对所述目标支付订单的校验结果,以由所述支付系统在确定所述校验结果为达到预设时长时,针对所述目标支付订单进行退款处理;
其中,所述区块链中存证了在付款方完成支付时发布至所述区块链的支付订单,所述支付订单包括与支付时刻对应的支付时间戳。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的退款的控制逻辑对应的机器可执行指令,所述处理器被促使:
通过所述智能合约在完成对所述目标支付订单的校验时生成校验事件,以由所述支付系统在确定监听到的所述校验事件为校验通过事件时,针对所述目标支付订单进行退款处理。
在本实施例中,所述确认时间戳由收款方基于预设的时间周期,定期发布至所述区块链进行存证。
在本实施例中,所述确认时间戳,指示收款方不再针对支付时间戳在所述确认时间戳之前的支付订单进行收款确认。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其他实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。