本发明涉及电子支付技术领域,具体为一种基于区块链的医院用电子支付方法。
背景技术:
目前的医疗费用支付在操作过程中需要进行复杂的多方对账操作很容易出错,医疗费用支付的安全性不是很好,医疗费用支付数据可信度差,缺乏统一权威的监管措施,而且现在医院患者采用电子支付的数量越来越多,支付数据量和支付类型非常大,导致不能有效的管理,数据访问和传输比较不流畅,效率十分低下,给患者和院方造成了很大的不便。
技术实现要素:
本发明的目的是为了克服上述不足提供一种基于区块链的医院用电子支付方法。
一种基于区块链的医院用电子支付方法包括以下步骤:
通过支付终端采集医疗费用支付信息,支付终端将采集到的数据做哈希运算得到哈希值,生成merkle树,支付终端用自己的私钥对所述哈希值和merkle树加密,形成带有支付终端数字签名的数据校验包;
支付终端用管理节点的公钥对医疗费用支付进行加密,然后把加密后数据和所述数据校验包发送给管理节点;管理节点接收到支付终端发送过来的数据后,用管理节点私钥对数据进行解密得到医疗费用支付信息,用支付终端的公钥对数据的校验包解密得到数据的哈希值和merkle树;
对解密得到的医疗费用支付信息做哈希运算得到哈希值,将该哈希值与解密数据校验包得到的数据哈希值作对比,二者相等则数据通过校验,通过校验后,管理节点生成所述医疗费用支付信息的数据id,并进行加密形成区块验证信息,把加密后的数据校验包、医疗费用支付信息和区块验证信息打包成区块,并将区块广播到区块链网络中;
区块链网络上的监督节点接收到管理节点打包的区块后,对区块进行校验,若校验通过,则将所述区块加入到对应的区块链上,若校验未通过,则确定所述区块链中存在医疗费用支付信息被篡改的区块。
进一步,所述将区块广播到区块链网络中,步骤之后具体还包括:
建立数据存储节点,每个数据存储节点用于存储数据校验包、医疗费用支付信息和区块验证信息,以及医疗费用支付信息的数据id和医疗费用支付信息的映射关系;
标记所有医疗费用支付信息所属的支付终端,各支付终端之间通过一个字符串进行唯一识别;标记各个医疗费用支付信息,各医疗费用支付信息之间通过医疗费用支付信息的数据id进行唯一识别;
建立数据节点,每个数据节点中包含一组支付终端以及支付终端的所有医疗费用支付信息,为各数据节点分配医院服务器地址和访问端口;
标记各个数据节点,各数据节点之间通过一个字符串数据进行唯一识别,标记数据节点、支付终端、医疗费用支付信息之间的映射关系;
所述数据节点向所述数据存储节点发送查询所管理的支付终端及支付终端所有医疗费用支付信息的请求信息;
数据节点对查询到的医疗费用支付信息进行管理,并通过查询到的支付终端信息,连接对应支付终端,与支付终端进行相应的医疗费用支付信信息传输,向所述数据存储节点发送查询医疗费用支付信息的请求信息,所述数据存储节点反馈相应医疗费用支付信息以及医疗费用支付信息所在的数据节点的医院服务器地址和访问端口;
根据所述数据存储节点查询到的数据节点的医院服务器地址和访问端口,连接对应数据节点,完成相应医疗费用支付信息的信息传输。
本发明将医疗费用支付信息存储在区块链,在区块链中校验保证医疗费用支付信息的真实性,对医疗费用支付信息进行统一配置和管理,提供便捷接口和协议,能够在医院应用现场适应不同型号的支付终端,特别是在支付数据量和支付类型非常时能有效的管理数据访问和传输,非常流畅,提高了效率。
具体实施方式
下面结合本发明的具体实施方式对本发明基于区块链的医院用电子支付方法作以下说明。
实施例:一种基于区块链的医院用电子支付方法包括以下步骤:
通过支付终端采集医疗费用支付信息,支付终端将采集到的数据做哈希运算得到哈希值,生成merkle树,支付终端用自己的私钥对所述哈希值和merkle树加密,形成带有支付终端数字签名的数据校验包;
支付终端用管理节点的公钥对医疗费用支付进行加密,然后把加密后数据和所述数据校验包发送给管理节点;管理节点接收到支付终端发送过来的数据后,用管理节点私钥对数据进行解密得到医疗费用支付信息,用支付终端的公钥对数据的校验包解密得到数据的哈希值和merkle树;
对解密得到的医疗费用支付信息做哈希运算得到哈希值,将该哈希值与解密数据校验包得到的数据哈希值作对比,二者相等则数据通过校验,通过校验后,管理节点生成所述医疗费用支付信息的数据id,并进行加密形成区块验证信息,把加密后的数据校验包、医疗费用支付信息和区块验证信息打包成区块,并将区块广播到区块链网络中;
区块链网络上的监督节点接收到管理节点打包的区块后,对区块进行校验,若校验通过,则将所述区块加入到对应的区块链上,若校验未通过,则确定所述区块链中存在医疗费用支付信息被篡改的区块。
所述将区块广播到区块链网络中,步骤之后具体还包括:
建立数据存储节点,每个数据存储节点用于存储数据校验包、医疗费用支付信息和区块验证信息,以及医疗费用支付信息的数据id和医疗费用支付信息的映射关系;
标记所有医疗费用支付信息所属的支付终端,各支付终端之间通过一个字符串进行唯一识别;标记各个医疗费用支付信息,各医疗费用支付信息之间通过医疗费用支付信息的数据id进行唯一识别;
建立数据节点,每个数据节点中包含一组支付终端以及支付终端的所有医疗费用支付信息,为各数据节点分配医院服务器地址和访问端口;
标记各个数据节点,各数据节点之间通过一个字符串数据进行唯一识别,标记数据节点、支付终端、医疗费用支付信息之间的映射关系;
所述数据节点向所述数据存储节点发送查询所管理的支付终端及支付终端所有医疗费用支付信息的请求信息;
数据节点对查询到的医疗费用支付信息进行管理,并通过查询到的支付终端信息,连接对应支付终端,与支付终端进行相应的医疗费用支付信信息传输,向所述数据存储节点发送查询医疗费用支付信息的请求信息,所述数据存储节点反馈相应医疗费用支付信息以及医疗费用支付信息所在的数据节点的医院服务器地址和访问端口;
根据所述数据存储节点查询到的数据节点的医院服务器地址和访问端口,连接对应数据节点,完成相应医疗费用支付信息的信息传输。
完成相应医疗费用支付信息的信息传输后,创建数据存储节点的查询链接和访问实时数据点统一接口的访问链接,所述查询链接从数据节点获取查询的数据点以及数据点所在数据节点的主机地址和访问端口号后,所述访问链接连接查询到的数据节点进行数据点信息的读写。