掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的旅游费用结算方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:39:06


基于区块链的旅游费用结算方法、装置、设备及存储介质

技术领域

本申请属于区块链技术领域,具体涉及一种基于区块链的旅游费用结算方法、装置、设备及存储介质。

背景技术

目前游客经常选择旅行社提供的旅游服务,在这些旅游服务中旅行社可能为游客预定了酒店、景点和导游服务等,游客在出游之前预付这些旅游服务的服务费给旅行社。但在游客的实际出游过程中,可能游客并没有入住旅行社预定的酒店,或者游客未去旅行社规划的某些景点,如此旅行社需要将游客未享受的这部分的服务费退回给游客。但实际场景中,当游客与旅行社发生费用纠纷时很难实现实时退费。

发明内容

本申请提出一种基于区块链的旅游费用结算方法、装置、设备及存储介质,在整个旅行过程进行到目标区块高度时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个环节的确认情况判断出来,从而能够将用户未享受的服务的费用及时返回给用户。

本申请第一方面实施例提出了一种基于区块链的旅游费用结算方法,包括:

接收游客发送的旅游交易的交易信息,所述交易信息包括旅游交易标识、合约地址和服务费金额;

根据所述交易信息,确定所述旅游交易对应的目标区块高度;

创建所述旅游交易对应的数据链,将所述交易信息和所述目标区块高度存储在所述数据链上;

接收所述旅游交易对应的服务确认信息,将所述服务确认信息存储在所述旅游交易对应的数据链上,所述服务确认信息包括所述旅游交易标识、服务标识和确认方签名信息;

判断所述数据链中当前区块的区块高度是否与所述旅游交易的交易信息包括的目标区块高度相同;

如果是,则根据所述数据链上存储的所述旅游交易对应的交易信息和服务确认信息,执行所述旅游交易的交易处理。

在本申请的一些实施例中,所述根据所述交易信息,确定所述旅游交易对应的目标区块高度,包括:

根据所述交易信息包括的合约地址,获取所述旅游交易对应的旅游合约;

从所述旅游合约中获取旅游服务结束的时刻;

根据接收所述交易信息的时刻与所述旅游服务结束的时刻,确定所述旅游交易对应的目标区块高度。

在本申请的一些实施例中,所述根据接收所述交易信息的时刻与所述旅游服务结束的时刻,确定所述旅游交易对应的目标区块高度,包括:

将接收所述交易信息的时刻与所述旅游服务结束的时刻之间的时长确定为所述旅游交易的持续时长;

计算所述持续时长与预设区块生成时长之间的比值,所述预设区块生成时长为区块链系统中生成一个区块所需的平均时长;

将所述比值确定为所述旅游交易对应的目标区块高度。

在本申请的一些实施例中,所述根据所述数据链上存储的所述旅游交易对应的交易信息和服务确认信息,执行所述旅游交易的交易处理,包括:

从所述旅游交易对应的数据链中获取所述旅游交易对应的交易信息和每个服务确认信息;

获取所述旅游交易对应的旅游合约;

根据所述旅游合约、所述交易信息及所述每个服务确认信息,执行所述旅游交易的交易处理。

在本申请的一些实施例中,所述根据所述旅游合约、所述交易信息及所述每个服务确认信息,执行所述旅游交易的交易处理,包括:

根据所述旅游合约及所述每个服务确认信息,确定所述旅游交易对应的各服务中是否存在未经确认的服务;

如果不存在未经确认的服务,则将所述游客的账户中扣除所述旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入所述服务费金额;

如果存在未经确认的服务,则对未经确认的服务进行仲裁处理,根据仲裁结果、所述旅游合约、所述交易信息及所述每个服务确认信息,执行所述旅游交易的交易处理。

在本申请的一些实施例中,所述对未经确认的服务进行仲裁处理,根据仲裁结果、所述旅游合约、所述交易信息及所述每个服务确认信息,执行所述旅游交易的交易处理,包括:

发送仲裁请求给仲裁方,所述仲裁请求包括未经确认的服务标识、服务方信息和游客信息;

接收所述仲裁法返回的仲裁结果,若所述仲裁结果指示游客使用了所述未经确认的服务,则将所述游客的账户中扣除所述旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入所述服务费金额;

若所述仲裁结果指示游客未使用所述未经确认的服务,则从所述旅游交易对应的交易信息中包括的服务金额中扣除所述未经确认的服务的服务费,将剩余的金额转入旅行社的账户中,将所述未经确认的服务的服务费退回到所述游客的账户中。

在本申请的一些实施例中,所述将所述服务确认信息存储在所述旅游交易对应的数据链上,包括:

根据所述服务确认信息包括的旅游交易标识,确定出所述服务确认信息所属的旅游交易对应的数据链;

将所述服务确认信息存储在确定出的所述数据链上。

本申请第二方面的实施例提供了一种基于区块链的旅游费用结算装置,包括:

接收模块,用于接收游客发送的旅游交易的交易信息,所述交易信息包括旅游交易标识、合约地址和服务费金额;

确定模块,用于根据所述交易信息,确定所述旅游交易对应的目标区块高度;

存储模块,用于创建所述旅游交易对应的数据链,将所述交易信息和所述目标区块高度存储在所述数据链上;

所述接收模块,用于接收所述旅游交易对应的服务确认信息,通过所述存储模块将所述服务确认信息存储在所述旅游交易对应的数据链上,所述服务确认信息包括所述旅游交易标识、服务标识和确认方签名信息;

判断模块,用于判断所述数据链中当前区块的区块高度是否与所述旅游交易的交易信息包括的目标区块高度相同;

交易执行模块,用于如果所述判断模块判断出当前区块的区块高度与所述交易信息包括的目标区块高度相同,则根据所述数据链上存储的所述旅游交易对应的交易信息和服务确认信息,执行所述旅游交易的交易处理。

本申请第三方面的实施例提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述第一方面所述的方法的步骤。

本申请第四方面的实施例提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述第一方面所述的方法的步骤。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

在本申请实施例中,节点设备根据旅游合约生成执行旅游费用结算的目标区块高度,将整个旅游过程划分为多个环节,在每个环节通过游客或服务方(如酒店或景区)进行确认,对于未确认的节点通过仲裁方进行仲裁。如此用户的预付款不会直接支付给旅行社,而是在整个旅行过程进行到目标区块高度时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个环节的确认情况或仲裁结果准确地判断出来,并将用户未享受的服务的费用及时返回给用户。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。

在附图中:

图1示出了本申请一实施例所提供的一种基于区块链的旅游费用结算方法的流程图;

图2示出了本申请一实施例所提供的一种基于区块链的旅游费用结算装置的结构示意图;

图3示出了本申请一实施例所提供的一种计算机设备的结构示意图;

图4示出了本申请一实施例所提供的一种存储介质的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。

本申请的一些实施例提供了一种基于区块链的旅游费用结算方法,该方法将整个旅游过程划分为多个节点,在每个节点通过游客或服务方(如酒店或景区)进行确认,对于未确认的节点通过仲裁方进行仲裁。如此用户的预付款不会直接支付给旅行社,而是在整个旅行过程进行到一定节点或最终节点时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个节点的确认情况或仲裁结果准确地判断出来,并将用户未享受的服务的费用及时返回给用户。

参见图1,该方法具体包括以下步骤:

步骤101:接收游客发送的旅游交易的交易信息,该交易信息包括旅游交易标识、合约地址和服务费金额。

在本申请实施例中,旅行社、游客、酒店和旅游景区都是在区块链系统中经过线上认证过的。本申请实施例的执行主体为区块链系统中的节点设备。当游客与旅行社签署旅游合约,制定出旅游合约,并在区块链系统中部署该旅游合约后,游客通过自己的手机或电脑等终端发送本次旅游交易的交易信息给区块链系统中的一个节点设备,该节点设备可以为距离游客的终端最近的节点设备。

该节点设备接收游客的终端发送的交易信息,该交易信息包括本次旅游交易对应的旅游交易标识、合约地址和服务费金额。其中,旅游交易标识用于唯一标识本次旅游交易。合约地址为旅游合约的地址,用于唯一标识该旅游合约。服务费金额为按照游客与旅行社双方签署的旅游合约游客所需支付给旅行社的服务费用总额。

步骤102:根据上述交易信息,确定旅游交易对应的目标区块高度。

在本申请实施例中,游客发起本次旅游交易时区块链系统并不立即将交易信息中的服务费金额转入旅行社的账户中,而是在旅游合约规定的旅游服务结束时进行结算,将游客享受的所有服务的费用总额转入旅行社的账户中。上述目标区块高度为最终执行本次旅游的结算及转账处理的区块的高度。

根据交易信息包括的合约地址,获取旅游交易对应的旅游合约;从旅游合约中获取旅游服务结束的时刻;根据接收交易信息的时刻与旅游服务结束的时刻,确定旅游交易对应的目标区块高度。具体地,将接收交易信息的时刻与旅游服务结束的时刻之间的时长确定为旅游交易的持续时长;计算持续时长与预设区块生成时长之间的比值,预设区块生成时长为区块链系统中生成一个区块所需的平均时长;将该比值确定为旅游交易对应的目标区块高度。

例如,假设区块链系统中平均生成一个区块所需时长为20秒,游客发起上述旅游交易的时刻与旅游合约规定的各项服务均结束的时刻之间的时长为3天,则该目标区块高度即为3天与20秒之间的比值51840。

在本申请的另一些实施例中,也可以不在旅游合约规定的旅游服务均结束时才执行该旅游交易,而是在每个服务结束时即对该服务的费用进行结算,并将结算的费用转入旅行社的账户中。在该应用场景中,可以按照上述方式分别计算出各服务对应的目标区块高度,服务对应的目标区块高度为服务结束时对该服务的费用进行结算处理的区块的高度。服务对应的目标区块高度可以是根据游客发起上述旅游交易的时刻与旅游合约规定的该服务结束的时刻之间的时长与预设区块生成时长之间的比值。

例如,假设区块链系统中平均生成一个区块所需时长为20秒,游客发起上述旅游交易的时刻与旅游合约规定的酒店服务结束的时刻之间的时长为1天,则酒店服务对应的目标区块高度即为1天与20秒之间的比值17280。

步骤103:创建旅游交易对应的数据链,将上述交易信息和计算的目标区块高度存储在该数据链上。

在本地创建本次旅游交易对应的数据链,将该交易信息及步骤102计算的目标区块高度存储在该数据链上。该节点设备还将该交易信息及目标区块高度传播到区块链系统中的其他每个节点设备,其他每个节点设备接收到该交易信息及目标区块高度,都在各自本地创建该旅游交易对应的数据链,并在各自的数据链上存储该交易信息及目标区块高度。

步骤104:接收该旅游交易对应的服务确认信息,将该服务确认信息存储在该旅游交易对应的数据链上,该服务确认信息包括旅游交易标识、服务标识和确认方签名信息。

当游客享受了旅游合约中的某项服务后,可以由游客或服务方发起该项服务的确认交易。游客或服务方的终端发送服务确认信息给区块链中的节点设备,该服务确认信息包括该项服务所属的旅游交易对应的旅游交易标识、该项服务的服务标识和确认方签名信息。

例如,游客入住酒店之后,可以由导游发起游客入住酒店的确认请求,游客接收到该确认请求之后进行确认,生成对应的酒店确认信息,该酒店确认信息中包括对应的旅游交易标识、酒店对应的服务标识和游客的签名信息,游客的签名信息可以包括游客的姓名、联系方式或身份证号等信息中的一种或多种。游客的终端发送该酒店确认信息给区块链中的节点设备。

又如,游客在景区进行验票游览后,可以由导游发起游客游览景点的确认请求,游客接收到该确认请求之后进行确认,生成对应的景点确认信息,该景点确认信息中包括对应的旅游交易标识、景点对应的服务标识和游客的签名信息,游客的签名信息可以包括游客的姓名、联系方式或身份证号等信息中的一种或多种。游客的终端发送该景点确认信息给区块链中的节点设备。

对于旅行过程中的每个环节,当游客享受旅行社提供的相应服务之后,都可以由导游发起该访问的确认请求,由游客进行确认,并将产生的服务确认信息发送到区块链中。在实际应用场景中,存在导游发起对游客的服务确认请求,但用户不进行确认的情况。在出现这种情况时,可以由导游发起对服务方的服务确认请求,由服务方进行确认。

例如,若游客入住酒店后导游发起游客入住酒店的确认请求,游客接收到该确认请求之后未进行确认。则导游可以发起该游客确认请求给酒店方,该游客确认请求包括该游客的姓名、联系方式或身份证号等身份信息。酒店方接收到该游客确认请求后进行确认,生成对应的酒店确认信息,该酒店确认信息中包括对应的旅游交易标识、酒店对应的服务标识和酒店的签名信息,酒店的签名信息中包括酒店的标识信息、该游客的入住时间、入住房号以及该游客的姓名、联系方式或身份证号等身份信息等。酒店的标识信息可以为酒店的名称。酒店方发送该酒店确认信息给区块链中的节点设备。

又如,游客在景区进行验票游览,导游发起游客游览景点的确认请求后,若游客未进行确认,则可以由导游发起对景区方的服务确认请求,由景区方进行确认。景区方确认后生成对应的景点确认信息,该景点确认信息中包括对应的旅游交易标识、景点对应的服务标识和景区的签名信息,景区的签名信息可以包括景区的标识信息、该游客在该景区验票的时间、该游客的姓名、联系方式或身份证号等信息。景区方发送该景点确认信息给区块链中的节点设备。

在本申请的另一些实施例中,也可以不由导游发起服务确认请求并由游客或服务方进行确认。而是将酒店方、景区方等服务方作为区块链系统的外部预言机。当游客享受了旅游合约中规定的酒店方、景区方等服务方的相应服务之后,这些服务方以外部预言机的方式发送服务确认信息给旅游合约。例如,当游客在酒店办理完入住手续后,酒店方以外部预言机的方式发送酒店确认信息给旅游合约。又如,当游客在景区核验票后,景区方以外部预言机的方式发送景点确认信息给旅游合约。

节点设备接收到服务确认信息后,根据服务确认信息包括的旅游交易标识,确定出服务确认信息所属的旅游交易对应的数据链;将该服务确认信息存储在确定出的数据链上。

旅游合约中规定的任一服务完成之后,游客或服务方都可以将服务确认信息发送给区块链中的节点设备。节点设备接收该服务确认信息,根据该服务确认信息中包括的旅游交易标识,将该服务确认信息存储在对应的旅游交易标识对应的数据链上。

该节点设备还将该服务确认信息传播到区块链系统中的其他每个节点设备,其他每个节点设备接收到该服务确认信息,都将该服务确认信息存储在各自本地中该旅游交易标识对应的数据链上。

步骤105:判断该数据链中当前区块的区块高度是否与该旅游交易的交易信息包括的目标区块高度相同,如果是,则执行步骤106,如果否,则返回执行步骤104。

目标区块高度是与时间相关的,确定游客发起上述旅游交易的时刻与旅游合约规定的各项服务均结束的时刻之间的时长,计算该时长与区块链系统平均生成一个区块所需时长之间的比值,将该比值确定为目标区块高度。通过判断当前区块的区块高度是否达到目标区块高度来确定是否执行该旅游交易,相当于判断该旅游交易对应的旅游合约规定的各项服务是否结束,在各项服务结束时再执行该旅游交易,以便于对旅行过程中所有服务的服务费用进行结算。

每当节点设备接收到服务确认信息,并将服务确认信息存储在对应的数据链上之后,判断该数据链中当前区块的区块高度是否与该数据链中存储的旅游交易的交易信息包括的目标区块高度相同,如果是,则表明该旅游交易对应的所有服务都已结束了,执行步骤106完成该旅游交易。如果否,则表明该旅游交易对应的服务中尚有未结束的服务,则返回步骤104在等待区块高度达到交易信息中包括的区块高度的过程中继续接收某些服务结束后游客或服务方发送的服务确认信息。

步骤106:根据该数据链上存储的该旅游交易对应的交易信息和服务确认信息,执行该旅游交易的交易处理。

在当前区块高度达到交易信息包括的目标区块高度时,从该旅游交易对应的数据链中获取该旅游交易对应的交易信息和每个服务确认信息,以及获取该旅游交易对应的旅游合约。根据该旅游合约、上述交易信息及每个服务确认信息,执行该旅游交易的交易处理。

具体地,根据该旅游合约及每个服务确认信息,确定该旅游交易对应的各服务中是否存在未经确认的服务,如果不存在,则表明所有服务都已经过确认,游客需向旅行社支付所有服务的服务费,则将该游客的账户中扣除该旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入该服务费金额。

如果确定出该旅游交易对应的各服务中存在未经确认的服务,则对未经确认的服务进行仲裁处理,根据仲裁结果、旅游合约、交易信息及每个服务确认信息,执行该旅游交易的交易处理。

具体地发送仲裁请求给仲裁方,该仲裁请求包括未经确认的服务标识、服务方信息和游客信息。其中,服务方信息可以包括服务方的名称、唯一标识、联系方式等。游客信息包括游客的名称、联系方式、身份证号等。仲裁方可以为对旅行社进行监管的平台或行政部门等。仲裁方接收到该仲裁请求后,根据服务方信息和游客信息,从服务方调取该游客信息对应的服务验证信息,若该需仲裁的服务为酒店服务,则调取的服务验证信息为该游客的酒店入住信息。若该需仲裁的服务为景区游览服务,则调取的服务验证信息该游客的景点验票信息。仲裁方根据调取的服务验证信息来裁断游客是否使用了上述未经确认的服务。仲裁方获得仲裁结果后,发送仲裁结果给节点设备。

节点设备接收仲裁方发送的仲裁结果,若仲裁结果指示游客使用了该未经确认的服务,则游客需要向旅行社支付该服务的服务费,因此节点设备将游客的账户中扣除交易信息中包括的服务费金额,在旅行社的账户中转入该服务费金额。

若仲裁结果指示游客未使用该未经确认的服务,则游客不需要向旅行社支付该服务的服务费,则从该旅游交易对应的交易信息中包括的服务金额中扣除该未经确认的服务的服务费,将剩余的金额转入旅行社的账户中,将该未经确认的服务的服务费退回到游客的账户中。

在本申请实施例中,节点设备根据旅游合约生成执行旅游费用结算的目标区块高度,将整个旅游过程划分为多个环节,在每个环节通过游客或服务方(如酒店或景区)进行确认,对于未确认的节点通过仲裁方进行仲裁。如此用户的预付款不会直接支付给旅行社,而是在整个旅行过程进行到目标区块高度时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个环节的确认情况或仲裁结果准确地判断出来,并将用户未享受的服务的费用及时返回给用户。

本申请实施例提供了一种基于区块链的旅游费用结算装置,该装置用于执行上述任一实施例所述的基于区块链的旅游费用结算方法,如图2所示,该装置包括:

接收模块201,用于接收游客发送的旅游交易的交易信息,交易信息包括旅游交易标识、合约地址和服务费金额;

确定模块202,用于根据交易信息,确定旅游交易对应的目标区块高度;

存储模块203,用于创建旅游交易对应的数据链,将交易信息和目标区块高度存储在数据链上;

接收模块201,用于接收旅游交易对应的服务确认信息,通过存储模块203将服务确认信息存储在旅游交易对应的数据链上,服务确认信息包括旅游交易标识、服务标识和确认方签名信息;

判断模块204,用于判断数据链中当前区块的区块高度是否与旅游交易的交易信息包括的目标区块高度相同;

交易执行模块205,用于如果判断模块204判断出当前区块的区块高度与交易信息包括的目标区块高度相同,则根据数据链上存储的旅游交易对应的交易信息和服务确认信息,执行旅游交易的交易处理。

确定模块202,用于根据交易信息包括的合约地址,获取旅游交易对应的旅游合约;从旅游合约中获取旅游服务结束的时刻;根据接收交易信息的时刻与旅游服务结束的时刻,确定旅游交易对应的目标区块高度。

确定模块202,用于将接收交易信息的时刻与旅游服务结束的时刻之间的时长确定为旅游交易的持续时长;计算持续时长与预设区块生成时长之间的比值,预设区块生成时长为区块链系统中生成一个区块所需的平均时长;将比值确定为旅游交易对应的目标区块高度。

交易执行模块205,用于从旅游交易对应的数据链中获取旅游交易对应的交易信息和每个服务确认信息;获取旅游交易对应的旅游合约;根据旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

交易执行模块205,用于根据旅游合约及每个服务确认信息,确定旅游交易对应的各服务中是否存在未经确认的服务;如果不存在未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;如果存在未经确认的服务,则对未经确认的服务进行仲裁处理,根据仲裁结果、旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

交易执行模块205,用于发送仲裁请求给仲裁方,仲裁请求包括未经确认的服务标识、服务方信息和游客信息;接收仲裁法返回的仲裁结果,若仲裁结果指示游客使用了未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;若仲裁结果指示游客未使用未经确认的服务,则从旅游交易对应的交易信息中包括的服务金额中扣除未经确认的服务的服务费,将剩余的金额转入旅行社的账户中,将未经确认的服务的服务费退回到游客的账户中。

存储模块203,用于根据服务确认信息包括的旅游交易标识,确定出服务确认信息所属的旅游交易对应的数据链;将服务确认信息存储在确定出的数据链上。

在本申请实施例中,节点设备根据旅游合约生成执行旅游费用结算的目标区块高度,将整个旅游过程划分为多个环节,在每个环节通过游客或服务方(如酒店或景区)进行确认,对于未确认的节点通过仲裁方进行仲裁。如此用户的预付款不会直接支付给旅行社,而是在整个旅行过程进行到目标区块高度时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个环节的确认情况或仲裁结果准确地判断出来,并将用户未享受的服务的费用及时返回给用户。

本申请实施例提供了一种计算机设备。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种基于区块链的旅游费用结算方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种基于区块链的旅游费用结算方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收游客发送的旅游交易的交易信息,交易信息包括旅游交易标识、合约地址和服务费金额;根据交易信息,确定旅游交易对应的目标区块高度;创建旅游交易对应的数据链,将交易信息和目标区块高度存储在数据链上;接收旅游交易对应的服务确认信息,将服务确认信息存储在旅游交易对应的数据链上,服务确认信息包括旅游交易标识、服务标识和确认方签名信息;判断数据链中当前区块的区块高度是否与旅游交易的交易信息包括的目标区块高度相同;如果是,则根据数据链上存储的旅游交易对应的交易信息和服务确认信息,执行旅游交易的交易处理。

处理器执行计算机程序时还可以实现以下步骤:根据交易信息包括的合约地址,获取旅游交易对应的旅游合约;从旅游合约中获取旅游服务结束的时刻;根据接收交易信息的时刻与旅游服务结束的时刻,确定旅游交易对应的目标区块高度。

处理器执行计算机程序时还可以实现以下步骤:将接收交易信息的时刻与旅游服务结束的时刻之间的时长确定为旅游交易的持续时长;计算持续时长与预设区块生成时长之间的比值,预设区块生成时长为区块链系统中生成一个区块所需的平均时长;将比值确定为旅游交易对应的目标区块高度。

处理器执行计算机程序时还可以实现以下步骤:从旅游交易对应的数据链中获取旅游交易对应的交易信息和每个服务确认信息;获取旅游交易对应的旅游合约;根据旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

处理器执行计算机程序时还可以实现以下步骤:根据旅游合约及每个服务确认信息,确定旅游交易对应的各服务中是否存在未经确认的服务;如果不存在未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;如果存在未经确认的服务,则对未经确认的服务进行仲裁处理,根据仲裁结果、旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

处理器执行计算机程序时还可以实现以下步骤:发送仲裁请求给仲裁方,仲裁请求包括未经确认的服务标识、服务方信息和游客信息;接收仲裁法返回的仲裁结果,若仲裁结果指示游客使用了未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;若仲裁结果指示游客未使用未经确认的服务,则从旅游交易对应的交易信息中包括的服务金额中扣除未经确认的服务的服务费,将剩余的金额转入旅行社的账户中,将未经确认的服务的服务费退回到游客的账户中。

处理器执行计算机程序时还可以实现以下步骤:根据服务确认信息包括的旅游交易标识,确定出服务确认信息所属的旅游交易对应的数据链;将服务确认信息存储在确定出的数据链上。

在本申请实施例中,节点设备根据旅游合约生成执行旅游费用结算的目标区块高度,将整个旅游过程划分为多个环节,在每个环节通过游客或服务方(如酒店或景区)进行确认,对于未确认的节点通过仲裁方进行仲裁。如此用户的预付款不会直接支付给旅行社,而是在整个旅行过程进行到目标区块高度时才会向旅行社支付费用,且对于用户未享受的服务能够通过各个环节的确认情况或仲裁结果准确地判断出来,并将用户未享受的服务的费用及时返回给用户。

本申请实施例还提出了一种存储有计算机可读指令的存储介质,如图4所示,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收游客发送的旅游交易的交易信息,交易信息包括旅游交易标识、合约地址和服务费金额;根据交易信息,确定旅游交易对应的目标区块高度;创建旅游交易对应的数据链,将交易信息和目标区块高度存储在数据链上;接收旅游交易对应的服务确认信息,将服务确认信息存储在旅游交易对应的数据链上,服务确认信息包括旅游交易标识、服务标识和确认方签名信息;判断数据链中当前区块的区块高度是否与旅游交易的交易信息包括的目标区块高度相同;如果是,则根据数据链上存储的旅游交易对应的交易信息和服务确认信息,执行旅游交易的交易处理。

处理器还可以执行以下步骤:根据交易信息包括的合约地址,获取旅游交易对应的旅游合约;从旅游合约中获取旅游服务结束的时刻;根据接收交易信息的时刻与旅游服务结束的时刻,确定旅游交易对应的目标区块高度。

处理器还可以执行以下步骤:将接收交易信息的时刻与旅游服务结束的时刻之间的时长确定为旅游交易的持续时长;计算持续时长与预设区块生成时长之间的比值,预设区块生成时长为区块链系统中生成一个区块所需的平均时长;将比值确定为旅游交易对应的目标区块高度。

处理器还可以执行以下步骤:从旅游交易对应的数据链中获取旅游交易对应的交易信息和每个服务确认信息;获取旅游交易对应的旅游合约;根据旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

处理器还可以执行以下步骤:根据旅游合约及每个服务确认信息,确定旅游交易对应的各服务中是否存在未经确认的服务;如果不存在未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;如果存在未经确认的服务,则对未经确认的服务进行仲裁处理,根据仲裁结果、旅游合约、交易信息及每个服务确认信息,执行旅游交易的交易处理。

处理器还可以执行以下步骤:发送仲裁请求给仲裁方,仲裁请求包括未经确认的服务标识、服务方信息和游客信息;接收仲裁法返回的仲裁结果,若仲裁结果指示游客使用了未经确认的服务,则将游客的账户中扣除旅游交易对应的交易信息中包括的服务费金额,在旅行社的账户中转入服务费金额;若仲裁结果指示游客未使用未经确认的服务,则从旅游交易对应的交易信息中包括的服务金额中扣除未经确认的服务的服务费,将剩余的金额转入旅行社的账户中,将未经确认的服务的服务费退回到游客的账户中。

处理器还可以执行以下步骤:根据服务确认信息包括的旅游交易标识,确定出服务确认信息所属的旅游交易对应的数据链;将服务确认信息存储在确定出的数据链上。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 基于区块链的旅游费用结算方法、装置、设备及存储介质
  • 基于区块链的业务费用结算方法、装置、设备及存储介质
技术分类

06120113006878