基于区块链的乘车结算方法及装置与流程

专利2022-06-29  59


本申请涉及计算机及通信技术领域,具体而言,涉及一种基于区块链的乘车结算方法及装置。



背景技术:

现有技术中,乘客一般借助于交通卡来进行乘车支付。即,乘客先向运营方所提供的交通卡中充值,然后再按照每一次的乘车费用从交通卡的账户中进行扣减。

由于各个运营方彼此独立,因此,一运营方所提供的交通卡不同用于乘坐另一运营方的交通工具,也就是说,同一张交通卡不能够实现跨运营方进行乘车结算。

因此,如何实现跨运营方进行乘车结算是现有技术中亟待解决的技术问题。



技术实现要素:

本申请的实施例提供了一种多媒体文件的处理方法、装置、介质及电子设备,进而至少在一定程度上可以实现多媒体文件的快速传输,提高了多媒体文件的传输效率。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供了一种基于区块链的乘车结算方法,应用于区块链系统中的节点,所述方法包括:

接收出站闸机发送的出站请求,所述出站请求包括待出站乘客的用户标识和所述待出站乘客所在出站站点的第一站点标识;

从区块链中获取所述用户标识对应的交易记录;

根据所述用户标识对应的交易记录确定是否满足出站条件;

若满足,则控制向所述出站站点所属运营方的区块链账户进行转账。

根据本申请实施例的一个方面,提供了一种基于区块链的乘车结算装置,其特征在于,应用于区块链系统中的节点,所述装置包括:

出站请求接收模块,用于接收出站闸机发送的出站请求,所述出站请求包括待出站乘客的用户标识和所述待出站乘客所在出站站点的第一站点标识;

交易记录获取模块,用于从区块链中获取所述用户标识对应的交易记录;

确定模块,用于根据所述用户标识对应的交易记录确定是否满足出站条件;

控制转账模块,用于若确定满足出站条件,则控制向所述出站站点所属运营方的区块链账户进行转账。

在本公开的技术方案中,在满足出站条件时,才向出站站点所属运营方的取款链账户中进行转账。也就是说,不管乘客所进行的充值或者购买周期卡,并不是直接将账目转入运营方的区块链账户中,而是在每次乘车消费时才对应向运营方的区块链账户进行转账,以支付本次的乘车花费。

通过本公开的方案,该区块链系统可以接入多个运营方。基于此,乘客基于一次充值或者所购买的同一周期卡,可以乘坐不同运营方的交通工具,而不需要分别购买每一运营方所提供的公交卡等,从而实现了跨运营方乘车。而且,由于将乘客的交易记录写入区块链中,基于区块链的不可篡改性,根据从区块链中所获取的交易记录来判断是否满足出站条件,从而,不会出现现有技术中因交通卡丢失所导致的损失,可以有效保证乘客在区块链系统中的资产。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本申请实施例的技术方案的区块链系统的示意图;

图2示出了根据一实施例的区块链的示意图;

图3是根据一实施例示出的基于区块链的乘车结算方法的流程图;

图4是图3对应实施例的步骤350在一实施例中的流程图;

图5是图3对应实施例的步骤370在一实施例中的流程图;

图6是根据另一实施例示出的基于区块链的乘车结算方法的流程图;

图7是根据又一实施例示出的基于区块链的乘车结算方法的流程图;

图8是根据又一实施例示出的基于区块链的乘车结算方法的流程图;

图9是根据又一实施例示出的基于区块链的乘车结算方法的流程图;

图10是根据又一实施例示出的基于区块链的乘车结算方法的流程图;

图11是根据又一实施例示出的基于区块链的乘车结算方法的流程图;

图12是根据一实施例示出的基于区块链的乘车结算装置的框图;

图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

参见图1,图1是本发明实施例提供的区块链系统100的一个可选的结构示意图,该区块链系统100包括多个节点110通过网络通信的形式连接形成的分布式系统,其中,节点110可以是接入网络中的任意形式的计算设备(如服务器、用户终端等)。

该区块链系统100中的节点110可以与进站闸机、出站闸机进行通信,从而,节点可以接收出站闸机发送的出站请求、可以接收进站闸机发送的进站记录,基于此,按照本公开的方法实现乘车结算。

节点110至少包括乘客所在终端,从而,从而乘客基于自身所在终端与进站闸机或出站闸机进行交互,进站闸机或出站闸机可以获取到乘客在区块链系统中的用户标识。节点110还包括运营方所在计算机设备,从而,运营方可以基于自身所在客户端实现自身区块链账户中余额的提现等过程。节点110还可以包括其他实现特定服务的节点,例如专门执行本公开方而布设的计算节点等。

节点110之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在该系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。

参见图1示出的区块链系统100中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,该记录数据例如余额充值记录、周期卡购买记录、乘车消费记录等,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到区块中。

应用实现的业务可以包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;

2.2)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易;当然,智能合约还可以是执行对接收的信息进行处理的合约,例如确定是否满足出站条件的智能合约,向出站站点所属运营方的区块链账户进行转账的智能合约等。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。该记录数据可以是余额充值记录、周期卡购买记录、乘车消费记录、提现交易记录等交易记录。

参见图2,图2是本发明实施例提供的区块链的一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

以下对本申请实施例的技术方案的实现细节进行详细阐述:

图3示出了根据本申请的一个实施例的基于区块链的乘车结算方法的流程图,该基于区块链的乘车结算方法应用于区块链系统中的节点。参照图3所示,该基于区块链的乘车结算方法至少包括步骤310至步骤370,详细介绍如下:

步骤310,接收出站闸机发送的出站请求,出站请求包括待出站乘客的用户标识和待出站乘客所在出站站点的第一站点标识。

第一站点标识泛指待出站乘客的进站站点所对应的站点标识。

待出站乘客的用户标识用于在区块链系统中唯一标识乘客。在一实施例中,该用户标识是区块链系统中的节点为该待出站乘客生成的,该用户标识例如节点为该待出站乘客生成的公钥。在其他实施例中,该用户标识还可以是节点根据待出站乘客的公钥进行一次或者多次哈希运算生成的标识码,在此不进行具体限定。

在待出站乘客需要出站时,待出站乘客通过终端设备、ic卡等将自身在区块链系统中的用户标识发送至出站闸机,出站闸机根据待出站乘客的用户标识和出站闸机所在出站站点的第一站点标识生成出站请求,并将该出站请求发送至区块链系统中的节点。

其中,终端设备可以是智能手机、平板电脑等终端,也可以是智能手环等可穿戴设备,在此不进行具体限定。

待出站乘客可以在终端的客户端中,将携带自身的用户标识信息的二维码或一维码等,在出站闸机的扫描处进行扫描,以使出站闸机通过识别该二维码或一维码对应获得乘客的用户标识。

在另一实施例中,出站闸机还可以采集待出站乘客的生物特征信息,例如指纹信息或人脸图像信息,然后根据所采集待出站乘客的生物特征信息确定该待出站乘客在区块链系统中的用户标识,并基于该用户标识和第一站点标识生成出站请求。

步骤330,从区块链中获取用户标识对应的交易记录。

在本公开的方案中,节点为在区块链系统中的用户对应设有一区块链账户。对于区块链系统而言,其用户至少包括乘客和运营方。其中,运营方是指乘客的乘车费用被转入的一方。在区块链系统中,通过用户标识来对应标识用户。

在一实施例中,乘客可以在为自身的区块链账户充值的基础上,基于在区块链账户中的余额支付乘车费用。

在另一实施例中,乘客可以通过购买周期卡,在购买周期卡的基础上,乘客可以基于该周期卡进行出站,而不需要从乘客的区块链账户中另外扣除费用。购买周期卡后,将所购买周期卡的信息与用户标识相关联,从而,用户标识所对应乘客即可凭借该周期卡出站。值得一提的是,该周期卡可以是一种虚拟卡或者实体卡。

周期卡可以是周卡、月卡、季度卡、年卡等。该周期卡对应有一有效乘车期间,若乘车时间在周期卡对应的有效乘车期间内,所关联用户标识所指示乘客可以依据该周期卡出站;若乘车时间不在该周期卡对应的有效乘车期间内,则对应乘客不可以依据该周期卡出站。

用户标识对应的交易记录是指与用户标识相关的交易记录,该交易记录可以包括表征用户标识所对应区块链账户中的资金流动情况的交易记录,还可以包括用户标识所指示乘客购买周期卡而生成的交易记录。

用户标识对应的交易记录可以包括向用户标识对应的区块链账户进行充值而产生的交易记录(即下文中的余额充值记录)、为购买周期卡而产生的交易记录(即下文中的周期卡购买记录)、为进行乘车费用支付从用户标识所对应的区块链账户向运营方账户进行转账而产生的交易记录(即下文中的乘车消费记录)。

区块链系统中的节点生成交易记录后,将该交易记录写入区块链中,并同步至区块链系统中的其他节点。从而,区块链系统中的任一节点均可根据用户标识从区块链中对应获得交易记录。

在从区块链中获取到用户标识对应的交易记录后,节点可根据所获取的交易记录知晓用户标识所相关的交易情况。

步骤350,根据用户标识对应的交易记录确定是否满足出站条件。

其中出站条件可以根据实际需要进行设定。该出站条件可以是用户标识所对应区块链账户中的余额不低于此次乘车的乘车费用。对应的,根据待用户标识对应的交易记录可以对应计算出该用户标识所对应区块链账户中的余额,进而,根据所计算出的余额判断该余额是否低于此次乘车的乘车费用;如果不低于乘车费用,则满足出站条件;反之,如果低于乘车费用,则不满足出站条件。

在另一实施例中,该出站条件还可以是当前乘车时间处于用户标识所关联的周期卡的有效乘车期限内;对应的,若根据该用户标识对应的交易记录进行查找,确定该用户标识对应的交易记录中是否包括周期卡购买记录;如果包括,则进一步判断当前时间是否在该周期卡购买记录所对应周期卡的有效乘车期间内,若在,则确定满足出站条件;反之,若不在,则确定不满足出站条件。

在又一实施例中,该出站条件是用户标识所对应区块链账户中的余额不低于此次乘车的乘车费用或当前乘车时间处于用户标识所关联的周期卡的有效乘车期限内。对应的,向根据用户标识对应的交易记录判断是否存在周期卡购买记录;若存在,进一步判断当前时间是否在该周期卡购买记录所指示周期卡的有效乘车期间内,若在,则确定满足乘车条件;若不在,则根据用户标识对应的交易记录计算得到用户标识所对应区块链账户中的余额,若该余额不低于此次乘车对应的乘车费用,则确定满足乘车条件,若该余额低于乘车费用,则确定不满足乘车条件。若根据用户标识对应的交易记录判断不存在周期卡购买记录,则通过确定用户标识所对应区块链账户中的余额,若该余额不低于此次乘车对应的乘车费用,则确定满足乘车条件,若该余额低于乘车费用,则确定不满足乘车条件。

步骤370,若满足出站条件,则控制向出站站点所属运营方的区块链账户进行转账。

在本公开的技术方案中,在满足出站条件时,才向出站站点所属运营方的取款链账户中进行转账。也就是说,不管乘客进行的充值或者购买周期卡,该交易并不是直接将账目转入运营方的区块链账户中,而是在每次乘车消费时才对应向运营方的区块链账户进行转账,以支付本次的乘车花费。

通过本公开的方案,该区块链系统可以接入多个运营方。基于此,乘客基于一次充值或者所购买的同一周期卡,可以乘坐不同运营方的交通工具,而不需要分别购买每一运营方所提供的公交卡等,从而实现了跨运营方进行乘车。而且,由于将乘客的交易记录写入区块链中,基于区块链的不可篡改性,保证了所获取交易记录的准确性和有效性。

本公开的方案可以用于乘坐地铁、轻轨、轮渡、火车等设有出站闸机和进站闸机的交通工具中的乘车结算。

在一实施例中,若确定用户标识对应的交易记录满足出站条件,节点还进一步向出站闸机发送放行指令,从而,出站闸机为乘客执行放行动作,乘客通过出站闸机。在另一实施例中,还可以是在步骤370中转账成功之后,再向出站闸机发送放行指令。

在一实施例中,如图4所示,步骤350包括:

步骤410,判断用户标识对应的交易记录中是否包括周期卡购买记录;

若不包括,则执行步骤420:根据用户标识对应的交易记录中的余额充值记录和乘车消费记录计算得到用户标识对应的区块链账户中的余额;

步骤430,判断余额是否低于乘车费用。乘车费用是根据第一站点标识和待出站乘客所对应进站站点的第二站点标识确定的,第二站点标识是根据待出站乘客的进站记录确定的。

若不低于,则确定满足出站条件;若低于,则确定不满足出站条件;

若用户标识对应的交易记录中包括周期卡购买记录,则执行步骤440:判断当前时间是否在周期卡购买记录所指示周期卡的有效乘车期间内;

如果当前时间在周期卡购买记录所指示周期卡的有效乘车期间内,则确定满足出站条件;

如果当前时间不在所对应周期卡的有效乘车期间内,则转至步骤420。

周期卡购买记录是待出站乘客在区块链系统中购买周期卡所对应产生的交易记录。

在区块链系统中,若乘客购买周期卡,则该乘客可在设定周期内可以基于所购买的周期卡进行乘车,而不用支出该乘客的区块链账户中的余额。该设定周期即为该周期卡的有效乘车期间。

在区块链系统中,区块链系统中对应为用户配置一区块链账户。作为乘客的用户对应在区块链系统中拥有一区块链账户。乘客的区块链账户中的款项用于支付乘客的乘车花费。

而为了通过乘客的区块链账户进行乘车花费的支付,需要保证乘客的区块链账户中存在款项。换言之,需要向乘客的区块链账户进行充值。

余额充值记录是指向乘客的区块链账户中进行充值所对应产生的交易记录。

若通过乘客的区块链账户支付乘车花费,则乘客的区块链账户中对应产生一支出。乘车消费记录是指通过乘客的区块链账户进行支出而对应生成的交易记录。

若限定乘客的区块链账户仅可以用于支付乘车花费,则乘车消费记录是指通过乘客的区块链账户支付乘车花费所对应生成的交易记录。也就是说,在此种情况下,乘车消费记录中的支出账户是对应乘客的区块链账户,而接收账户是运营方的区块链账户。

在其他实施例中,还可以赋予乘客的区块链账户其他的支出权利,例如进行购物支付、转账等,则对应的乘客的消费记录对应包括进行购物支付、转账而对应生成的交易记录。

如上所描述,在本公开方案中,所购买的周期卡对应有一有效乘车期间,若使用时间超过该有效乘车期间,则不可以依据该周期卡进行出站;若使用时间位于该有效乘车期间内,则可以依据该周期卡为待出站乘客放行。

因此,若从区块链中所获得乘客的交易记录包括周期卡交易记录,且当前时间在该周期卡交易记录所对应周期卡的有效乘车期间内,则表明该乘客可以基于该周期卡交易记录所对应周期卡进行出站。从而,该乘客满足出站条件。

若从区块链中所获得乘客的交易记录不包括周期卡交易记录,或包括周期卡交易记录但当前时间不在该周期卡交易记录所对应周期卡的有效乘车期间内,则仅可以通过该乘客的区块链账户中的余额来支付乘车花费。在此情况下,若乘客的区块链账户中的余额不低于所计算得到的乘车费用,则表明该乘客的区块链账户可以支付此次乘车的乘车费用,从而,该乘客满足出站条件。

进一步的,待出站乘客在进站站点进站时,对应使进站闸机获得乘客的用户标识,进站闸机获得乘客的用户标识的过程与上述出站闸机的获得乘客的用户标识的过程类似,在此不再赘述。

进站闸机在获得乘客的用户标识后,根据该乘客的用户标识和所在进站站点的第二站点标识生成进站记录,并将进站记录发送至区块链系统中的节点。

从而,在区块链系统中的节点接收到出站请求后,对应根据出站请求中的用户标识获取对应于该用户标识的进站记录,进而,根据所获取进站记录中的第二站点标识作为待出站乘客的第二站点标识。

在确定待出站乘客所对应第一站点标识和第二站点标识后,按照预设的乘车计费规则对应为该待出站乘客计算得到此次乘车的乘车费用。

值得一提的是,该区块链系统中可能接入了多个运营方,而不同的运营方的乘车计费规则可能存在差异,因此在计算乘车费用之前,根据第一站点标识或第二站点标识所属的运营方对应获取乘车计费规则。在此基础上,根据所获取的乘车计费规则、第一站点标识和第二站点标识进行乘车费用的计算。

在一实施例中,区块链系统中设有公共区块链账户,公共区块链账户作为乘客购买周期卡的转入账户,如图5所示,步骤370,包括:

若用户标识对应的交易记录中不包括周期卡购买记录,或用户标识对应的交易记录中包括周期卡购买记录且当前时间不在周期卡购买记录的有效乘车期间内,则执行步骤510:按照乘车费用从用户标识对应的区块链账户向出站站点所属运营方的区块链账户进行转账。

若用户标识对应的交易记录包括周期卡购买记录且当前时间在周期卡购买记录的有效乘车期间内,则执行步骤530:按照预设金额从公共区块链账户向出站站点所属运营方的区块链账户进行转账。

如上所描述,若乘客购买了周期卡,且当前的乘车时间在所购买周期卡的有效乘车期间内,则乘客可以根据该周期卡进行出站,而并不需要花费乘车的区块链账户中的余额。

其中,预设金额可以是根据乘车费用和预设比例进行计算得到,还可以是预设的固定值,在此不进行具体限定。

在本实施例的方案中,为了对乘车的区块链账户进行有效记账,在区块链系统中设有一公共区块链账户。在用户购买周期卡时,根据周期卡对应的数额向该公共区块链账户进行转账。

在乘客基于所购买的周期卡进行出站时,通过该公共区块链账户向出站站点所属运营方的区块链账户进行转账,从而,实现在乘客基于所购买的周期卡进行出站时,并不花费自身的区块链账户中的余额。

也就是说,乘客购买周期卡,相当于预先存储一笔用于支付乘车花费的款项,该笔款项并不存储于乘客的区块链账户(避免与区块链账户进行充值而充入的数额混淆)中,也不存储于任一运营方的区块链账户中,而是存储于公共区块链中。从而可以实现按次进行乘车费用的支付。

通过设置的公共区块链账户,在乘客购买周期卡时,对应向该公共区块链账户进行转入,从而,乘客凭借周期卡乘车期间由该公共区块链账户基于乘客在购买周期卡是所转入的数额向地铁运营方的区块链账户进行支付,从而实现了在乘客在购买周期卡后乘车,并不需要花费自身区块链账户中的余额进行乘车结算。

在一实施例中,在按照乘车费用从用户标识对应的区块链账户向出站站点所属运营方的区块链账户进行转账的步骤之后,该方法还包括:

根据用户标识对应的区块链账户标识和乘车费用生成乘车消费记录。

通过所生成的乘车消费记录从而来表示用户标识对应的区块链账户中的款项流动,例如在支付乘车费用中,至少表示乘车费用的具体数额、转出账户(用户标识对应的区块链账户)。在其他实施例中,该乘车消费记录中还可以包括转入账户(出站站点所属运营方的区块链账户)。

在另一实施例中,在按照预设金额从公共区块链账户向出站站点所属运营方的区块链账户进行转账的步骤之后,该方法还包括:

通过预设金额和公共区块链账户所对应账户标识来生成第二消费记录。在其他实施例中,该第二消费记录中还可以包括出站站点所属运营方的区块链账户所对应账户标识。通过该第二消费记录来记录该公共区块链账户中款项的流出情况。

在一实施例中,交易记录包括余额充值记录,如图6所示,该方法还包括:

步骤610,获取充值请求,充值请求指示了充值数额和第一目标区块链账户。

该充值请求可以是乘客通过客户端发起,换言之,该充值请求可以是乘客所在的乘客节点发起。

第一目标区块链账户泛指待充值的区块链账户。

步骤630,按照充值数额向第一目标区块链账户进行转账。

步骤650,若转账成功,根据第一目标区块链账户的账户标识、充值数额生成余额充值记录。

余额充值记录是指向区块链账户中进行数额转入而产生的交易记录。对于乘客而言,乘客的余额充值记录是指向该乘客的区块链账户中进行数额转入而产生的交易记录。

通过生成的余额充值记录来记录对应区块链账户中的资金流入情况,实现记账。

在一实施例中,如图7所示,交易记录包括周期卡购买记录,区块链系统中设有公共区块链账户,该方法还包括:

步骤710,获取周期卡购买请求,周期卡购买请求指示了所请求购买的周期卡和所请求购买乘客的用户标识。

该充值请求可以是乘客通过客户端发起,换言之,该充值请求可以是乘客所在的乘客节点发起。

该周期卡购买请求中所请求购买乘客的用户标识用于告知节点所购买的周期卡对应的使用对象。

步骤730,根据周期卡购买请求,按照所请求购买的周期卡所对应数额向公共区块链账户转账。

步骤750,若转账成功,根据所请求购买乘客的用户标识、所请求购买的周期卡所对应周期卡标识、和公共区块链账户所对应账户标识生成周期卡购买记录。

通过所生成的周期卡购买记录,从而记录用户标识所指示乘客的周期卡购买情况,以在用户标识指示乘客的周期卡处于有效乘车期间时,通过公共区块链账户来支付乘客的乘车花费,而不需要花费用户标识对应区块链账户中的余额。

在一实施例中,如图8所示,该方法还包括:

步骤810,接收提现请求,提现请求指示了提现数额、目标转入账户和运营方的区块链账户。

步骤820,根据提现请求从区块链中获取运营方的交易记录。

步骤830,根据运营方的交易记录计算得到运营方的区块链账户中的余额。

步骤840,若运营方的区块链账户中的余额不低于提现数额,则按照提现数额从运营方的区块链账户向目标转入账户进行转账。

步骤850,若转账成功,根据目标转入账户的账户标识、运营方的区块链账户标识和提现数额生成提现交易记录。

如上所描述,区块链系统中的节点可以是乘客所在的乘客节点,也可以是运营方所在的运营方节点。对于运营方节点而言,其在区块链系统中的区块链账户属于收款的一方。因此,在本公开的方案中,运营方节点可以发起体现请求,将自身区块链账户的款项转至其他的账户中。

对于区块链系统中发生的交易,该交易所对应的交易记录均被写入区块链中,从而,对应根据体现请求中的运营方标识从区块链中获取运营方对应的交易记录。

运营方的交易记录记载了运营方的区块链账户中的数额变动情况,从而,根据运营方的交易记录即可对应确定运营方的区块链账户的余额情况,而不需要向运营方的区块链账户发起余额信息请求。

若运营方的区块链账户中的余额不低于提现请求所请求的提现数额,则继续执行840-850;反之,若运营方的区块链账户中的余额低于提现请求所请求的提现数额,则向运营方节点返回提示信息,以指示对应区块链账户中的余额小于此次的提现数额。

在转账成功后,通过所生成的提现交易记录来记录运营方的区块链账户中的提现支出情况。

在一实施例中,如图9所示,该方法还包括:

步骤910,在节点生成交易记录后,对所生成的交易记录进行哈希运算得到摘要数据,交易记录包括乘车消费记录、余额充值记录、周期卡购买记录和提现交易记录中的任一种。

步骤930,通过节点自身的私钥对摘要数据进行签名,得到签名数据。

步骤950,根据节点自身的公钥、交易记录和签名数据生成发布数据。

步骤970,将发布数据发布至区块链系统的记录池中,以等待将乘车消费记录写入区块链。

区块链系统对应为每一节点生成密钥对,该密钥对包括私钥和公钥。从而,节点可以基于自身的私钥对摘要数据进行签名。

区块链系统的记录池用于对发布数据进行缓存。

通过步骤910-970实现了将交易记录以发布数据的形式发布,以等待将发布数据中的交易记录写入区块链中。

在一实施例中,如图10所示,该方法还包括:

步骤1010,获取区块链系统的记录池中的发布数据,发布数据包括交易记录、签名数据和发布数据所对应发布方的公钥,签名数据是通过发布方的私钥对摘要数据进行签名得到的,摘要数据是是对交易记录进行哈希运算得到的。

步骤1030,通过发布数据所对应发布方的公钥对发布数据中的签名数据进行解密,得到第一解密数据。

以及步骤1050,对发布数据中的交易记录进行哈希运算,得到第一数据。

步骤1070,若第一数据与第一解密数据一致,则根据发布数据中的消费记录构建区块。

步骤1090,将区块链接到区块链并在区块链系统中同步。

若第一数据与第一解密数据一致,则表明发布数据中的交易记录未被篡改;反之,若第一数据与第一解密数据不一致,则表明发布数据中的交易记录被篡改,则舍弃该交易记录。

通过如上的步骤,实现节点对发布数据中的交易记录进行验证,并在验证确定交易记录未被篡改时,将发布数据中未被篡改的交易记录写入区块链中,从而,保证所写入区块链的数据的准确性和有效性。

在一实施例中,如图11所示,该方法还包括:

步骤1110,获取注册请求。

步骤1130,根据注册请求为所请求注册的用户生成私钥。

步骤1150,通过椭圆加密算法对私钥进行加密,得到用户的公钥。

步骤1170,将公钥和私钥返回至注册请求的发起方,以使用户按照私钥和公钥登录至区块链系统。

以及步骤1190,对公钥进行哈希运算,得到钱包地址,以钱包地址作为对应用户在区块链系统中的区块链账户标识。

用户若想要基于该区块链系统实现乘车结算,需要先在该区块链系统中进行注册,即向区块链系统中的节点发送注册请求。

其中,所请求注册的用户可以是乘客,也可以是运营方,还可以是其他非乘客、非运营方的用户,在此不进行具体限定。

由节点根据该注册请求为所请求注册的用户生成私钥和公钥,并对应根据该注册请请求为所请求注册的用户开设一区块链账户。

在节点为用户生成私钥和公钥之后,用户所在客户端通过该私钥和公钥登录至区块链系统中(例如,以公钥作为用户在账号,以私钥作为密码进行登录)。在用户所在客户端登录至区块链系统后,所登录用户的客户端对应成为区块链系统中的又一节点。

其中,节点为用户所生成的私钥和公钥是相对应的。具体来说,若用私钥对某一数据进行签名,则仅可以用所对应的公钥对该签名后的数据u进行解密;反之,若用用户的公钥对某一数据进行加密,则仅可以用该用户的私钥对加密后的数据进行解密。

在一实施例中,步骤1190中生成钱包地址的过程为:对公钥进行sha-256哈希计算,得到第一哈希值;对第一哈希值进行ripemd-160计算,得到第二哈希值;对第二哈希值进行sha-256哈希计算得到第三哈希值;对第三哈希值再次进行sha-256哈希计算,得到第四哈希值;将第三哈希值的前若干字节,例如四个字节,添加到第四哈希值的后面,即得到请求注册用户的钱包地址。

值得一提的是,基于椭圆曲线加密算法和哈希算法的特点,节点为用户所生成私钥、公钥和钱包地址的过程是不可逆的。换言之,虽然生成过程是私钥→公钥→钱包地址,但是,若知晓用户的钱包地址,并不能逆向计算出用户的公钥;同样,若知晓用户的公钥,并不能逆向计算出用户的私钥。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的方法实施例。

本申请公开了一种基于区块链的乘车结算装置1200,应用于区块链系统中的节点,如图12所示,该装置包括。

出站请求接收模块1210,用于接收出站闸机发送的出站请求,出站请求包括待出站乘客的用户标识和待出站乘客所在出站站点的第一站点标识。

交易记录获取模块1230,用于从区块链中获取用户标识对应的交易记录。

确定模块1250,用于根据用户标识对应的交易记录确定是否满足出站条件。

控制转账模块1270,用于若确定满足出站条件,则控制向出站站点所属运营方的区块链账户进行转账。

在一实施例中,确定模块1250,包括:

第一确定单元,用于若用户标识对应的交易记录中包括周期卡购买记录,且当前时间在周期卡购买记录所指示周期卡的有效乘车期间内,则确定满足出站条件。

第二确定单元,用于若用户标识对应的交易记录中不包括周期卡购买记录,或者,用户标识对应的交易记录中包括周期卡购买记录且当前时间不在所对应周期卡的有效乘车期间内,则根据用户标识对应的交易记录中的余额充值记录和乘车消费记录计算得到用户标识对应的区块链账户中的余额,若余额不低于乘车费用,则确定满足出站条件,乘车费用是根据第一站点标识和待出站乘客所对应进站站点的第二站点标识确定的,第二站点标识是根据待出站乘客的进站记录确定的。

在一实施例中,区块链系统中设有公共区块链账户,公共区块链账户作为乘客购买周期卡的转入账户,控制转账模块1270,包括:

第一转账单元,用于若用户标识对应的交易记录中不包括周期卡购买记录,或用户标识对应的交易记录中包括周期卡购买记录且当前时间不在周期卡购买记录的有效乘车期间内,则按照乘车费用从用户标识对应的区块链账户向出站站点所属运营方的区块链账户进行转账;

第二转账单元,用于若用户标识对应的交易记录包括周期卡购买记录且当前时间在周期卡购买记录的有效乘车期间内,则按照预设金额从公共区块链账户向出站站点所属运营方的区块链账户进行转账。

在一实施例中,该装置还包括:

乘车消费记录生成模块,用于根据用户标识所对应用户标识对应的区块链账户标识和乘车费用生成乘车消费记录。

在一实施例中,交易记录包括余额充值记录,该装置还包括:

充值请求获取模块,用于获取充值请求,充值请求指示了充值数额和第一目标区块链账户。

第一转账模块,用于按照充值数额向第一目标区块链账户进行转账。

余额充值记录生成模块,用于若转账成功,根据第一目标区块链账户的账户标识、充值数额生成余额充值记录。

在一实施例中,交易记录包括周期卡购买记录,区块链系统中设有公共区块链账户,该装置还包括:

周期卡购买请求获取模块,用于获取周期卡购买请求,周期卡购买请求指示了所请求购买的周期卡和所请求购买乘客的用户标识。

第二转账模块,用于根据周期卡购买请求,按照所请求购买的周期卡所对应数额向公共区块链账户转账。

周期卡购买记录生成模块,用于若转账成功,根据所请求购买乘客的用户标识、所请求购买的周期卡所对应周期卡标识、和公共区块链账户所对应账户标识生成周期卡购买记录。

在一实施例中,该装置还包括:

提现请求接收模块,用于接收提现请求,提现请求指示了提现数额、目标转入账户和运营方的区块链账户。

第一获取模块,用于根据提现请求从区块链中获取运营方的交易记录。

余额计算模块,用于根据运营方的交易记录计算得到运营方的区块链账户中的余额。

第三转账模块,用于若运营方的区块链账户中的余额不低于提现数额,则按照提现数额从运营方的区块链账户向目标转入账户进行转账。

提现交易记录生成模块,用于若第三转账模块转账成功,根据目标转入账户的账户标识、运营方的区块链账户标识和提现数额生成提现交易记录。

在一实施例中,该装置还包括:

第二获取模块,用于获取节点所生成的交易记录,交易记录包括乘车消费记录、余额充值记录、周期卡购买记录和提现交易记录中的任一种。

第一哈希运算模块,用于对交易记录进行哈希运算得到摘要数据;

签名模块,用于通过节点自身的私钥对摘要数据进行签名,得到签名数据。

发布数据生成模块,用于根据节点自身的公钥、交易记录和签名数据生成发布数据。

发布模块,用于将发布数据发布至区块链系统的记录池中,以等待将乘车消费记录写入区块链。

在一实施例中,该装置还包括:

发布数据获取模块,用于获取区块链系统的记录池中的发布数据,发布数据包括交易记录、签名数据和发布数据所对应发布方的公钥,签名数据是通过发布方的私钥对摘要数据进行签名得到的,摘要数据是对交易记录进行哈希运算得到的。

解密模块,用于通过发布数据所对应发布方的公钥对发布数据中的签名数据进行解密,得到第一解密数据。

以及第二哈希运算模块,用于对发布数据中的交易记录进行哈希运算,得到第一数据。

区块构建模块,用于若第一数据与第一解密数据一致,则根据发布数据中的消费记录构建区块。

链接和同步模块,用于将区块链接到区块链并在区块链系统中同步。

上述装置中各个模块的功能和作用的实现过程具体详见上述基于区块链的乘车结算方法中对应步骤的实现过程,在此不再赘述。

可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序。

图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图13示出的电子设备的计算机系统1300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图13所示,计算机系统1300包括中央处理单元(centralprocessingunit,cpu)1301,其可以根据存储在只读存储器(read-onlymemory,rom)1302中的程序或者从存储部分1308加载到随机访问存储器(randomaccessmemory,ram)1303中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram1303中,还存储有系统操作所需的各种程序和数据。cpu1301、rom1302以及ram1303通过总线1304彼此相连。输入/输出(input/output,i/o)接口1305也连接至总线1304。

以下部件连接至i/o接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如lan(localareanetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至i/o接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理单元(cpu)1301执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。


技术特征:

1.一种基于区块链的乘车结算方法,其特征在于,应用于区块链系统中的节点,所述方法包括:

接收出站闸机发送的出站请求,所述出站请求包括待出站乘客的用户标识和所述待出站乘客所在出站站点的第一站点标识;

从区块链中获取所述用户标识对应的交易记录;

根据所述用户标识对应的交易记录确定是否满足出站条件;

若满足出站条件,则控制向所述出站站点所属运营方的区块链账户进行转账。

2.根据权利要求1所述的方法,其特征在于,所述根据所述用户标识对应的交易记录确定是否满足出站条件,包括:

若所述用户标识对应的交易记录中包括周期卡购买记录,且当前时间在所述周期卡购买记录所指示周期卡的有效乘车期间内,则确定满足出站条件;

若所述用户标识对应的交易记录中不包括周期卡购买记录,或者,所述用户标识对应的交易记录中包括周期卡购买记录且当前时间不在所对应周期卡的有效乘车期间内,则根据所述用户标识对应的交易记录中的余额充值记录和乘车消费记录计算得到所述用户标识所对应区块链账户中的余额,若所述余额不低于乘车费用,则确定满足出站条件,所述乘车费用是根据所述第一站点标识和所述待出站乘客所对应进站站点的第二站点标识确定的,所述第二站点标识是根据所述待出站乘客的进站记录确定的。

3.根据权利要求2所述的方法,其特征在于,所述区块链系统中设有公共区块链账户,所述公共区块链账户作为乘客购买周期卡的转入账户,所述控制向所述出站站点所属运营方的区块链账户进行转账,包括:

若所述用户标识对应的交易记录中不包括周期卡购买记录,或所述用户标识对应的交易记录中包括周期卡购买记录且当前时间不在所述周期卡购买记录的有效乘车期间内,则按照所述乘车费用从所述用户标识所对应区块链账户向所述出站站点所属运营方的区块链账户进行转账;

若所述用户标识对应的交易记录包括周期卡购买记录且当前时间在所述周期卡购买记录的有效乘车期间内,则按照预设金额从所述公共区块链账户向所述出站站点所属运营方的区块链账户进行转账。

4.根据权利要求3所述的方法,其特征在于,所述按照所述乘车费用从所述用户标识所对应区块链账户向所述出站站点所属运营方的区块链账户进行转账之后,所述方法还包括:

根据所述用户标识所对应区块链账户标识和所述乘车费用生成乘车消费记录。

5.根据权利要求1所述的方法,其特征在于,所述交易记录包括余额充值记录,所述方法还包括:

获取充值请求,所述充值请求指示了充值数额和第一目标区块链账户;

按照所述充值数额向所述第一目标区块链账户进行转账;

若转账成功,根据所述第一目标区块链账户的账户标识、所述充值数额生成余额充值记录。

6.根据权利要求1所述的方法,其特征在于,所述交易记录包括周期卡购买记录,所述区块链系统中设有公共区块链账户,所述方法还包括:

获取周期卡购买请求,所述周期卡购买请求指示了所请求购买的周期卡和所请求购买乘客的用户标识;

根据所述周期卡购买请求,按照所请求购买的周期卡所对应数额向所述公共区块链账户转账;

若转账成功,根据所述所请求购买乘客的用户标识、所请求购买的周期卡所对应周期卡标识、和所述公共区块链账户所对应账户标识生成周期卡购买记录。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收提现请求,所述提现请求指示了提现数额、目标转入账户和运营方的区块链账户;

根据所述提现请求从所述区块链中获取所述运营方的交易记录;

根据所述运营方的交易记录计算得到所述运营方的区块链账户中的余额;

若所述运营方的区块链账户中的余额不低于所述提现数额,则按照所述提现数额从所述运营方的区块链账户向所述目标转入账户进行转账;

若转账成功,根据所述目标转入账户的账户标识、所述运营方的区块链账户标识和所述提现数额生成提现交易记录。

8.根据权利要求4-7中任一项所述的方法,其特征在于,所述方法还包括:

在所述节点生成交易记录后,对所生成的交易记录进行哈希运算得到摘要数据,所述交易记录包括乘车消费记录、余额充值记录、周期卡购买记录和提现交易记录中的任一种;

通过所述节点自身的私钥对所述摘要数据进行签名,得到签名数据;

根据所述节点自身的公钥、所述交易记录和所述签名数据生成发布数据;

将所述发布数据发布至所述区块链系统的记录池中,以等待将所述乘车消费记录写入所述区块链。

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

获取所述区块链系统的记录池中的发布数据,所述发布数据包括交易记录、签名数据和所述发布数据所对应发布方的公钥,所述签名数据是通过所述发布方的私钥对摘要数据进行签名得到的,所述摘要数据是对所述交易记录进行哈希运算得到的;

通过所述发布数据所对应发布方的公钥对所述发布数据中的签名数据进行解密,得到第一解密数据;以及

对所述发布数据中的交易记录进行哈希运算,得到第一数据;

若所述第一数据与所述第一解密数据一致,则根据所述发布数据中的消费记录构建区块;

将所述区块链接到所述区块链并在所述区块链系统中同步。

10.一种基于区块链的乘车结算装置,其特征在于,应用于区块链系统中的节点,所述装置包括:

出站请求接收模块,用于接收出站闸机发送的出站请求,所述出站请求包括待出站乘客的用户标识和所述待出站乘客所在出站站点的第一站点标识;

交易记录获取模块,用于从区块链中获取所述用户标识对应的交易记录;

确定模块,用于根据所述用户标识对应的交易记录确定是否满足出站条件;

控制转账模块,用于若确定满足出站条件,则控制向所述出站站点所属运营方的区块链账户进行转账。

技术总结
本申请的实施例提供了一种基于区块链的乘车结算方法应用于区块链系统中的节点,所述方法包括:接收出站闸机发送的出站请求,所述出站请求包括待出站乘客的用户标识和所述待出站乘客所在出站站点的第一站点标识;从区块链中获取所述用户标识对应的交易记录;根据所述用户标识对应的交易记录确定是否满足出站条件;若满足出站条件,则控制向所述出站站点所属运营方的区块链账户进行转账。从而可以实现跨运营方进行乘车结算。

技术研发人员:刘龙坡
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.01.03
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-50936.html

最新回复(0)