CN115834171A - 接口共享方法、装置、计算机设备及介质 - Google Patents
接口共享方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN115834171A CN115834171A CN202211425291.XA CN202211425291A CN115834171A CN 115834171 A CN115834171 A CN 115834171A CN 202211425291 A CN202211425291 A CN 202211425291A CN 115834171 A CN115834171 A CN 115834171A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- request
- calling
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例适用于区块链技术领域,提供了一种接口共享方法、装置、计算机设备及介质,该方法应用于区块链的节点设备,包括:发布第一设备的共享接口的共享信息至区块链;若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。通过上述方法,能够统一地对接口调用过程进行权限管理和验证。
Description
技术领域
本申请属于区块链技术领域,特别是涉及一种接口共享方法、装置、计算机设备及介质。
背景技术
不同机构或者部门之间进行数据共享时,可以通过接口进行。例如,数据提供方可以开放一个接口;数据使用方可以调用该接口从数据提供方获取数据。
当两个机构之间进行接口调用时,接口调用信息的不透明容易造成双方数据使用过程中存在纠纷难以溯源和追责。另外,当数据提供方接收到多个机构的调用申请时,由于需要对数据使用方进行验证以及权限管理,容易出现服务阻塞。
例如,数据提供方可以根据数据使用方的接口调用次数来进行计费。当数据提供方临时变更费用或者数据使用方在数据调用完成后不支付费用,由于二者的立场不同,难以进行溯源取证和追责。
发明内容
有鉴于此,本申请实施例提供了一种接口共享方法、装置、计算机设备及介质,用以实现统一地对接口调用过程进行权限管理和验证,从而使得接口调用透明化。
本申请实施例的第一方面提供了一种接口共享方法,应用于区块链节点设备,所述方法包括:
发布第一设备的共享接口的共享信息至区块链;
若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;
接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;
基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;
向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
本申请实施例的第二方面提供了接口共享方法,应用于第一设备,所述方法包括:
向区块链发布共享接口的共享信息;
接收第二设备针对所述共享接口的调用请求,所述调用请求包括接口调用凭证;
将所述接口调用凭证发送至所述区块链的节点设备以请求所述节点设备对所述调用请求进行验证;
若所述调用请求验证通过,则响应所述第二设备的所述调用请求。
本申请实施例的第三方面提供了接口共享方法,应用于第二设备,所述方法包括:
向区块链的节点设备发起获取第一设备的共享接口的使用权限的申请;
接收所述节点设备针对所述申请返回的接口调用凭证;
向所述第一设备发起调用请求,所述调用请求包括所述接口调用凭证;
接收所述第一设备针对所述调用请求返回的数据,以完成对所述共享接口的调用。
本申请实施例的第四方面提供了一种接口共享装置,应用于区块链的节点设备,所述装置包括:
发布模块,用于发布第一设备的共享接口的共享信息至区块链;
授权模块,用于若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;
接收模块,用于接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;
验证模块,用于基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;
返回模块,用于向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
本申请实施例的第五方面提供了一种接口共享装置,应用于第一设备,所述装置包括:
发布模块,用于向区块链发布共享接口的共享信息;
接收模块,用于接收第二设备针对所述共享接口的调用请求,所述调用请求包括接口调用凭证;
验证模块,用于将所述接口调用凭证发送至所述区块链的节点设备以请求所述区块链对所述调用请求进行验证;
响应模块,用于若所述调用请求验证通过,则响应所述第二设备的所述调用请求。
本申请实施例的第六方面提供了一种接口共享装置,应用于第二设备,所述装置包括:
申请模块,用于向区块链的节点设备发起获取第一设备的共享接口的使用权限的申请;
接收模块,用于接收所述节点设备针对所述申请返回的接口调用凭证;
调用模块,用于向所述第一设备发起调用请求,所述调用请求包括所述接口调用凭证;
数据接收模块,用于接收所述第一设备针对所述调用请求返回的数据,以完成对所述共享接口的调用。
本申请实施例的第七方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面、第二方面或第三方面所述的方法。
本申请实施例的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面、第二方面或第三方面所述的方法。
本申请实施例的第九方面提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行上述第一方面、第二方面或第三方面所述的方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例,第一设备可以将共享接口的共享信息发布到区块链上;第二设备可以向区块链的节点设备申请该共享接口的使用权限;若节点设备向第二设备开放共享接口的使用权限,可以向第二设备发送接口调用凭证。第二设备可以利用接口调用凭证向第一设备发送针对共享接口的调用请求。第一设备在接收到调用请求后,可以将携带接口调用凭证的验证请求发送至区块链。节点设备可以根据验证请求对调用请求进行验证得到验证消息,并将验证消息发送至第一设备;第一设备可以根据验证消息确定是否允许第二设备调用接口。本申请实施例中,第一设备即为数据提供方,第二设备即为数据使用方,数据提供方可以向区块链发布共享接口的共享信息;数据使用方可以通过区块链的节点设备获取共享接口的使用权限;数据使用方在调用数据提供方的共享接口时,可以由区块链的节点设备对其权限进行验证,从而使得区块链可以对数据接口的权限进行统一管理和验证,减轻了数据提供方的计算压力;另外权限管理和验证信息可以存储到区块链中,便于对接口调用过程进行回溯,使得接口调用过程对于数据提供方和数据使用方都更为透明。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。
图1是本申请实施例提供的一种接口共享方法的步骤流程示意图;
图2是本申请实施例提供的另一种接口共享方法的步骤流程示意图;
图3是本申请实施例提供的又一种接口共享方法的步骤流程示意图;
图4是本申请实施例提供的再一种接口共享方法的步骤流程示意图;
图5是本申请实施例提供的一种区块链与设备的关系图;
图6是本申请实施例提供的一种获取接口使用权限过程的示意图;
图7是本申请实施例提供的一种接口调用过程的示意图;
图8是本申请实施例提供的一种接口共享装置的示意图;
图9是本申请实施例提供的又一种接口共享装置的示意图;
图10是本申请实施例提供的再一种接口共享装置的示意图;
图11是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请实施例提供的一种接口共享方法的步骤流程示意图,本实施例的执行主体为计算机设备,该计算机设备可以为平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机、服务器等计算机设备,计算机设备可以部署区块链网络,使得该计算机设备可以为一个区块链的节点设备。本实施例是从区块链的节点设备的角度来对接口共享方法进行的介绍,本方法具体可以包括如下步骤:
S101,发布第一设备的共享接口的共享信息至区块链。
本实施例中的接口共享方法应用于区块链的节点设备,区块链的节点设备中可以部署智能合约,智能合约用于对接口共享事务进行管理。
上述第一设备为接口提供方的设备,接口提供方即为数据提供方。第一设备可以注册到区块链的智能合约中,从而使用经区块链授权的链上账户和证书向区块链发送共享接口的共享信息,该共享信息可以包括接口的信息、接口调用参数信息、接口调用示例以及接口调用计费信息等。比如第一设备可以为机构A的服务器,服务器中可以包括数据库,服务器中可以提供共享接口,通过调用共享接口可以获取到数据库中的数据。机构A的管理人员可以通过服务器访问区块链的一个节点设备,以通过该节点设备将共享接口的共享信息发布至区块链。区块链的节点设备接收到来自第一设备的共享信息之后,可以执行相应的智能合约,从而通过第一设备的账户信息对其进行验证,验证通过后,可以将该共享信息发布到区块链上。当共享接口的共享信息被发布至区块链中时,注册到区块链上的其他用户可以获取到该共享接口的共享信息。
区块链上发布的共享接口的共享信息可以有很多,这些共享接口可以是同一个第一设备的不同接口,也可以是不同第一设备的不同接口。即,每个第一设备可以在区块链上发布任意数量的共享接口的共享信息。
S102,若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证。
上述第二设备为接口调用方的设备,接口调用方即为数据使用方。第二设备可以注册到区块链的智能合约中,从而使用经区块链授权的链上账户和证书访问区块链,从而可以获取到区块链上发布的共享接口的信息,并向区块链的智能合约发送针对共享接口的使用权限的申请。该申请可以包括需要调用的共享接口以及需要调用的次数。
具体地,第二设备可以通过向区块链的节点设备发送针对共享接口的使用权限的请求,节点设备接收到来自第二设备的针对共享接口的使用权限的申请时,可以基于区块链中存储的信息先确定该第二设备是否注册在区块链中,若第二设备已经注册到区块链中,则可以获取该第二设备对应的账户余额。
基于共享接口的计费信息和第二设备申请的调用次数,可以确定该申请对应的费用。若第二设备的账户余额大于或等于该费用,则可以通过该第二设备的针对共享接口的使用权限的申请,并向第二设备发送接口调用凭证。接口调用凭证中可以记录第二设备的信息、共享接口信息以及购买记录信息等。
S103,接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证。
第二设备可以使用接口调用凭证向第一设备发起调用请求,该调用请求中可以包括接口调用凭证、共享接口以及接口使用次数等。其中,接口调用次数为第二设备的此次调用申请想要调用该共享接口的次数。基于接收到的调用请求,第一设备可以向区块链的节点设备发送验证请求,以请求区块链的节点设备基于区块链中存储的信息对该验证请求进行验证。
区块链可以接收第一设备发送的验证请求,然后对该验证请求对应的调用请求进行验证。
S104,基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求。
区块链的节点设备在将接口调用凭证发送至第二设备时,也会将接口调用凭证保存在智能合约中。区块链的节点设备接收到验证请求中的接口调用凭证后,可以首先确定智能合约中是否存在该接口调用凭证;若智能合约中存在该接口调用凭证,则说明第二设备之前获取过该共享接口的使用权限。若智能合约中不存在该接口调用凭证,则说明第二设备没有该共享接口的使用权限,验证失败。具体地,区块链的节点设备可以通过交易触发智能合约的执行,从而确定节点设备接收到的接口调用凭证是否存在于智能合约中。
若第二设备具有该共享接口的使用权限,则确定第二设备对应的该共享接口的剩余使用次数。若剩余使用次数大于或等于第二设备需要调用的次数,则确定验证通过;否则验证失败。
根据验证结果,可以生成验证信息,并将验证信息发送至第一设备。
S105,向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
验证完成后,区块链的节点设备可以生成验证信息,并将验证信息发送至第一设备。验证信息可以包括验证成功或者验证失败。若验证消息为验证成功,则第一设备可以响应该调用请求,将对应的数据返回至第二设备;若验证信息为验证失败,则第一设备可以拒绝第二设备针对共享接口的调用请求。
在一种可能的实现方式中,当第一设备第一次接收到来自第二设备的调用申请时,可以将第二设备的接口调用凭证发送至区块链的节点设备以请求区块链的节点设备对该接口调用凭证进行验证,并接收来自区块链的节点设备的验证结果;在之后接收到来自第二设备的调用申请后,第二设备可以直接根据区块链的节点设备之前对该接口调用凭证的验证结果自行对调用申请进行验证,待多次调用之后,将第二设备的调用记录发送至区块链的节点设备以将调用记录同步至区块链。
存在一种可能,第三设备可以窃取第二设备发送至第一设备的调用申请,从而冒名使用第二设备的调用权限,这可能导致第二设备购买的调用接口的次数被其他设备所使用。为了避免这种情况,第二设备每次在发送调用申请时,可以使用第二设备的私钥对接口调用凭证和一个新的随机数进行加密得到签名值;将该签名值和随机数协同调用申请一起发送至第一设备,并且在每次发送调用申请时,使用的随机数均可以不同。第一设备在接收到第二设备的调用申请后,可以对签名值进行解密,从而确定接口调用凭证和随机数,若解密得到的随机数与调用申请携带的随机数相等,则可以确定该随机数之前使用过;若该随机数之前使用过,则可以确定该调用申请不合法;若该随机数之前未使用过,则可以说明该调用申请为第二设备发送的新的调用申请,可以将该随机数存储。
此外,由于第二设备申请的共享接口的使用权限具有次数限制,因此,在第一设备首次接收到来自第二设备的调用申请时,在进行验证请求时,可以同时向区块链请求第二设备具有的共享接口使用权限次数。之后,在对调用申请进行验证时,可以基于剩余的共享接口使用权限次数确定是否可以响应调用申请。在第二设备的剩余的共享接口使用权限次数为零之后,可以将接口调用数据发送至区块链上进行保存。区块链可以存储每次调用申请对应的时间、随机数、数据等。
示例性地,第二设备通过区块链的节点设备购买了第一设备的第一共享接口的10次调用权限,得到了区块链的节点设备发送的在区块链上生成的接口调用凭证。第二设备首次向第一设备发送第一共享接口的调用申请时,会将接口调用凭证发送至第一设备。第一设备首次接收到第二设备针对第一共享接口的调用申请时,可以根据该接口调用凭证向区块链的节点设备发送验证请求。区块链的节点设备可以基于区块链上存储的信息验证该接口调用凭证是否合法,从而得到验证信息。区块链的节点设备可以将验证信息以及该接口调用凭证对应的调用次数共同发送至第一设备;第一设备接收到该验证信息后,可以确定该接口调用凭证是否合法,从而确定是否响应该调用申请。当第一设备再次接收到来自第二设备针对第一共享接口的调用申请时,可以检测该接口调用凭证与之前的接口调用凭证是否一致,若一致,则说明该接口调用凭证合法,然后第一设备可以根据该接口调用凭证对应的接口调用次数,确定第二设备是否还具有调用权限;若第二设备还具有调用权限,则第一设备可以响应该调用申请,向第二设备返回对应的数据。若第二设备的调用次数已经使用完毕,则第一设备可以将接口调用凭证的调用记录发送至区块链,区块链接收到第一设备返回的调用记录后,可以进行计费结算,并在区块链上存储调用记录。
本实施例中以一个区块链的节点设备对一个共享接口的权限管理和验证进行方案说明,本领域技术人员应当明白,区块链可以对多个共享接口进行管理,区块链上可以发布来自多个第一设备的多个共享接口,接收不同的第二设备针对不同的共享接口的使用权限的申请;对不同的第一设备发送的验证请求进行验证。
本实施例中,共享接口的调用权限申请和验证全部由区块链的节点设备进行管理,相当于由可信任的第三方进行共享接口的授权与验证,在第一设备和第二设备存在纠纷时,可以通过区块链中记录的信息进行溯源;在接口调用过程中,数据提供方接收调用请求时第一次需要通过区块链的节点设备根据区块链的链上数据进行验证,后续可以本地先进行验证,通过了可以返回接口调用结果,数据提供方可以累计调用请求批量上链,这样可以减少和区块链交互的次数,提供运行的效率。
参照图2,示出了本申请实施例提供的另一种接口共享方法的步骤流程示意图,本实施例的执行主体为计算机设备,该计算机设备可以为平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机、服务器等计算机设备,计算机设备可以部署区块链网络,使得该计算机设备可以为一个区块链节点。本实施例是从区块链的角度来对接口共享方法进行的介绍,本方法具体可以包括如下步骤:
S201,发布第一设备的共享接口的共享信息。
本申请实施例中,第一设备和第二设备可以分别在区块链中具有对应的账户,该账户具有对应的公钥、机构名称以及账户余额等。第一设备就可以通过共享接口向其他设备提供服务或者提供数据;共享接口具有共享信息,共享信息可以包括接口调用参数、计费信息以及接口调用示例等。
S202,若接收到所述第二设备获取所述共享接口的使用权限的申请,则确定所述第二设备申请使用所述共享接口所需的费用。
共享信息中包括共享接口的计费信息,计费信息可以为每调用一次该共享接口所需的费用。第二设备发送的使用权限的申请中包括第二设备需要的接口调用次数;根据第二设备需要的接口调用次数和调用一次该共享接口所需的费用,可以计算此次申请需要的费用。
S203,从所述第二设备的账户中转移所述费用至预设的安全账户中。
区块链的节点设备可以根据区块链中存储的信息确定第二设备的账户余额是否大于该费用。若第二设备的账户余额大于该费用,则可以从第二设备的账户中将该费用转移到预设的安全账户中。安全账户可以为区块链的一个账户,该账户可以用于接收第二设备支付的费用,并在第二设备调用接口之后,将对应的费用转移至第一设备的账户中。安全账户可以冻结,即除了接收第二设备的转账和转账给第一设备,安全账户中的余额不能被支配,从而保障了安全账户中能够保有足够的交易费用。
若第二设备的账户的余额小于该费用,则区块链可以向第二设备返回余额不足购买失败的信息。
S204,生成所述接口调用凭证,并将所述接口调用凭证返回至所述第二设备。
在一种可能的实现方式中,该接口调用凭证可以基于购买该接口的交易哈希生成。例如,通过对交易哈希进行编码,编码之后的字符串作为该接口的调用凭证。区块链在生成接口调用凭证后,可以将接口调用凭证保存在区块链上;该接口调用凭证对应的第二设备的信息也保存在区块链上。第二设备的信息可以包括第二设备的公钥、购买信息等。第二设备在使用该接口调用凭证进行接口调用时,可以基于该接口调用凭证生成签名信息,基于签名信息进行调用申请;签名信息可以为基于私钥对该接口调用凭证进行加密而得到的,也可以为基于私钥对接口调用凭证以及随机数加密而得到。
在一种可能的实现方式中,第一设备可以从区块链中获取到第二设备的接口调用凭证和公钥,并基于该接口调用凭证和公钥对第二设备发送的签名信息进行验证。
S205,接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证。
第二设备可以向第一设备发送调用申请,调用申请中可以携带待调用的共享接口的标识信息、接口调用参数、以及身份验证信息,身份验证信息可以包括基于接口调用凭证生成的签名信息等。该签名信息可以为采用预设的不可逆加密算法对接口调用凭证加密而成。例如加密算法可以为RSA算法,第二设备可以使用自己的私钥对接口调用凭证进行加密,得到该签名信息。
在另一种可能的实现方式中,身份验证信息可以包括接口调用凭证、随机数以及签名信息,该签名信息可以为采用预设的不可逆加密算法对接口调用凭证和随机数加密而成。第二设备每次在申请接口调用时,可以重新选择一个新的随机数,基于接口调用凭证和随机数生成签名;由于每次的随机数不同,因而可以保障每次的签名信息都不同;每个签名信息只能使用一次,从而可以避免这样一种情况:在第二设备发送给第一设备签名信息的过程中,其他设备可以窃取该签名信息;之后利用该签名信息冒充第二设备向第一设备请求接口调用。由于每次的签名信息都不同,因此每个签名信息只能使用一次,因此其他设备在使用签名信息时,第一会检测到该签名信息已经被使用,无法再次作为调用接口的依据。
第一设备接收到来自第二设备的调用申请时,可以根据调用申请携带的验证信息生成验证请求,并将验证请求发送至区块链的节点设备。验证请求中可以包括身份验证信息,例如验证请求中可以包括接口调用凭证、随机数和签名信息。区块链可以基于该签名信息对第二设备的调用申请进行验证。
在一种可能的实现方式中,第一设备也可以直接使用获得的第二设备的公钥对该调用申请中的签名信息进行验证。
S206,基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求。
根据接口调用凭证,可以从区块链中获取到接口调用凭证对应的第二设备获取到的共享接口的使用权限信息,使用权限信息包括第二设备的身份验证信息和共享接口的剩余使用次数;剩余使用次数为初始购买次数与已调用次数的差值。基于身份验证信息和接口调用凭证,可以对签名信息进行验证;若签名信息验证通过且接口使用次数小于或等于剩余使用次数,则区块链的节点设备可以生成允许第二设备调用共享接口的验证信息,该验证信息可以保存在区块链上。
区块链的节点设备接收到身份验证信息后,可以使用第二设备的公钥对签名信息进行解密,从而得到接口调用凭证和随机数,将该随机数与身份验证信息中的随机数进行对比,将该接口调用凭证与身份验证信息携带的接口调用凭证进行验证,可以确定签名信息是否正确;若签名信息正确,则可以验证该接口调用凭证是否合法。例如,可以使用各个区块链节点的密钥对接口调用凭证进行解密,得到的信息与第二设备的申请信息进行对比,根据对比结果可以判断该接口调用凭证是否正确。
在一种可能的实现方式中,第二设备在发起调用请求时,可以发送一个签名信息,该签名信息可以由第二设备的私钥、接口调用凭证和随机数生成。在每次发起调用请求时,第二设备可以重新确定随机数,从而重新确定一个签名信息,使得签名信息只能使用一次,避免之后有其他设备窃取第二设备之前发送的签名信息伪装成第二设备进行接口调用。
区块链在每次对签名信息验证之后都会记录该签名信息。在接收到新的验证请求时,区块链的节点设备可以先确定签名信息是否已被区块链记录;若签名信息已被区块链记录,则可以确定该签名信息之前已经进行过接口调用,不能继续使用该签名进行接口调用,因此签名信息验证失败。若签名信息未被区块链记录,则根据存储的第二设备的公钥对签名信息进行解密得到待验证信息,从待验证信息中获取接口调用凭证数据,将待验证信息中的接口调用凭证数据和区块链中存储的接口调用凭证进行比对,若二者相同,则签名信息验证通过,并将验证通过的签名信息记录在区块链中。
在调用请求验证通过后,区块链可以更新第二设备对应的该共享接口的剩余使用次数,以便进行下一次的验证。
S207,确定所述第二设备已调用所述共享接口的已调用次数,所述已调用次数为所述验证请求中的接口使用次数。
区块链的节点设备可以在每验证通过一个验证请求过后,确定该验证请求对应的接口使用次数。
S208,将所述已调用次数对应的费用从所述安全账户中转移至所述第一设备的账户。
基于已调用次数,区块链的节点设备可以计算需要转账给第一设备的费用,从而将该费用从安全账户中转移到第一设备的账户中。
在另一种可能的实现方式中,也可以每隔一段时间,再确定该段时间内的已调用次数,该段时间内的已调用次数等于该段时间内的验证请求对应的接口使用次数的和;然后将基于该段时间内的已调用次数,计算该段时间内的接口调用对应的费用,从而将该费用从安全账户中转入第一设备的账户中。
S209,向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
本实施例中,区块链的计费可以由区块链智能合约进行,由于第一设备和第二设备均在区块链中有账户,区块链是第一设备和第二设备的可信任的第三方,因此当存在纠纷时,可以通过区块链获取到接口调用信息以及计费信息,从而使得接口调用过程中的计费透明化。本实施例结合区块链智能合约的特性,将接口共享中权限校验和计费都放到智能合约中,数据共享过程中自动执行,将接口共享全过程记录在区块链上,保证了多方机构数据共享的公平性,后续也方便进行追溯。
参照图3,示出了本申请实施例提供的又一种接口共享方法的步骤流程示意图,本实施例的执行主体为第一设备,该第一设备可以为平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机、服务器等计算机设备。该方法具体可以包括如下步骤:
S301,向区块链发布共享接口的共享信息。
本实施例中,第一设备和第二设备是为了便于区分对数据提供方和数据使用方的设备而进行的描述,本领域技术人员应当清楚,数据提供方也可以调用其他设备的接口;数据使用方也可以向其他设备提供接口。即,第一设备也可以实现S401-S404中的步骤,第二设备也可以实现S301-S304中的步骤。
第一设备可以在区块链中具有对应的账户,该账户具有对应的公钥、机构名称以及账户余额等。第一设备就可以通过共享接口向其他设备提供服务或者提供数据;共享接口具有共享信息,共享信息可以包括接口调用参数、计费信息以及接口调用示例等。
第一设备可以将共享信息发送至区块链的节点设备,区块链的节点设备可以将接收到的共享信息上链,从而使得共享接口的共享信息发布到区块链上,以便注册到区块链中的其他设备根据该共享信息获取授权使用权限。
S302,接收第二设备针对所述共享接口的调用请求,所述调用请求包括接口调用凭证。
上述第二设备为数据使用方,数据使用方在通过区块链获取到共享接口的使用权限后,可以向第二设备发起针对共享接口的调用请求。该调用请求中可以包括该第二设备从区块链的节点设备获取到的接口调用凭证。
S303,将所述接口调用凭证发送至所述区块链的节点设备以请求所述区块链的节点设备对所述调用请求进行验证。
第一设备接收到调用请求后,可以根据接口调用凭证生成验证请求。
S304,若所述调用请求验证通过,则响应所述第二设备的所述调用请求。
接收来自区块链的节点设备的验证信息,若验证信息为验证通过,则可以允许第二设备调用该共享接口,从而向第二设备返回数据。若验证信息为验证失败,则可以拒绝该第二设备的调用请求。
本实施例中,数据提供方将接口的共享信息发布在区块链上,从而在区块链上由区块链的智能合约进行接口的权限申请和验证管理。对于数据提供方而言,接口的权限申请可以由区块链作为第三方进行管理,并在区块链中存储数据,从而避免数据并提供方和数据使用方在接口调用过程中产生纠纷时无法确责。
参照图4,示出了本申请实施例提供的再一种接口共享方法的步骤流程示意图,本实施例的执行主体为第二设备,该第一设备可以为平板电脑、可穿戴设备、车载设备、笔记本电脑、超级移动个人计算机、服务器等计算机设备。具体可以包括如下步骤:
S401,向区块链的节点设备发起获取第一设备的共享接口的使用权限的申请。
第二设备为数据使用方。当第二设备需要调用其他设备的接口获取数据时,可以从区块链中查找是否存在对应的共享接口的共享信息,若区块链中存在对应的共享信息,则可以向区块链的节点设备发起针对该共享接口的使用权限的申请。申请中可以包括目标共享接口、接口调用次数等信息。
S402,接收所述节点设备针对所述申请返回的接口调用凭证。
区块链在接收到第二设备的获取共享接口的使用权限的申请,可以对该申请进行验证,若验证通过,则可以向第二设备返回接口调用凭证。接口调用凭证用于第二设备向第一设备调用接口时进行验证。
S403,向所述第一设备发起调用请求,所述调用请求包括所述接口调用凭证。
第二设备可以向第一设备发送调用请求,调用请求中可以包括接口调用凭证、接口调用参数、签名信息等。签名信息和接口调用凭证用于区块链对第二设备进行身份验证和权限验证。
第一设备接收到第二设备的调用请求后,可以向区块链的节点设备发送验证请求,以通过区块链上的智能合约对调用请求进行验证,验证请求可以包括签名信息和接口调用凭证。区块链节点设备可以通过发起智能合约的执行来进行验证,智能合约可以根据签名信息和接口调用凭证对第二设备进行身份验证和权限验证。在验证通过后,区块链的节点设备可以向第一设备返回验证成功的验证信息。
S404,接收所述第一设备针对所述调用请求返回的数据,以完成对所述共享接口的调用。
第一设备接收到验证成功的验证信息后,可以根据接口调用参数执行对共享接口的调用,并将得到的数据返回至第一设备。第一设备接收到返回的数据后,此次共享接口的调用完成。
本实施例中,第二设备是通过区块链获取共享接口的使用权限,由于共享信息已经公开在区块链中,因此,第二设备对于共享接口的使用权限的获取过程是透明的;避免了由于数据提供方临时变更造成的授权纠纷。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了更好的对本方案进行说明,下面以机构B调用机构A的接口为例对本申请方案进行阐述。图5是本申请实施例提供的一种区块链与设备的关系图,如图5所示,机构A分别和机构B在区块链的智能合约中都有一个账户,该账户记录了机构公钥、机构名称、余额等信息。
图6是本申请实施例提供的一种获取接口使用权限过程的示意图。机构A首先将接口发布到区块链上,发布接口时设置计费情况,例如机构A可以设置接口调用次数及对应的费用、设置接口的描述、接口调用参数、接口调用示例等,其他机构需要使用该数据则可以在区块链链上购买该接口。机构B若要使用该对应的数据,可以通过区块链购买该接口,在购买接口时,机构B可以按照调用次数进行购买。机构B请求区块链购买机构A的接口后,智能合约可以检查机构B的账户余额,若机构B的余额不足则购买失败;若机构B的余额足够,则购买成功,机构B购买该接口的费用会被冻结到智能合约的一个安全账户中,后续机构A收到的金额从该冻结的余额中转入。区块链可以生成接口调用凭证,智能合约中记录该凭证以及购买机构的公钥,购买的调用次数,剩余可调用次数,购买的金额。接口调用凭证可以发送至机构B,后续机构B可以通过凭证调用机构A的接口。
图7是本申请实施例提供的一种接口调用过程的示意图。如图7所示,机构B调用机构A的接口时,可以向机构A发送凭证、调用接口需要的参数以及签名,签名的内容有凭证、调用次数和随机数,签名凭证是为了智能合约可以验证签名,校验凭证是否和传入的凭证一致,传入随机数是为了防止机构B或其他机构多次使用该签名,保证签名的唯一性,区块链的智能合约验证通过后会在区块链上记录所有的验证记录,保证每次签名只能使用一次。机构A收到机构B调用请求后,可以向区块链传入凭证和机构B发给机构A的签名。区块链的智能合约可以验证该签名是否已经记录,如果已经记录说明该签名已经使用过,则验证失败;如果没有记录过则对该签名进行验证。区块链的智能合约可以根据凭证获取购买机构的公钥,通过该公钥解密签名验证凭证和传入的凭证是否一致,以及使用的次数是否超过了剩余可调用次数,如果凭证不一致或者使用的次数超过剩余可调用次数则验证失败;否则验证通过。若验证通过,则将机构B的冻结金额按照调用次数转入对应金额到机构A的账户中。机构A根据区块链返回的验证结果向机构A返回数据,如果验证通过则返回该接口传入参数的数据,如果验证失败则返回错误信息。
本实施例中,通过区块链智能合约完成接口共享数据过程中的权限校验和计费,保证了多方机构平等的参与数据共享过程,避免了中心化计费不透明,同时链上存储了接口共享记录后续可以方便进行追溯和审计。
参照图8,示出了本申请实施例提供的一种接口共享装置的示意图,该装置可以应用于区块链的节点设备,具体可以包括发布模块81、授权模块82、接收模块83、验证模块84和返回模块85,其中:
发布模块81,用于发布第一设备的共享接口的共享信息至区块链;
授权模块82,用于若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;
接收模块83,用于接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;
验证模块84,用于基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;
返回模块85,用于向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
在一种可能的实现方式中,上述授权模块82包括:
计费子模块,用于若接收到所述第二设备获取所述共享接口的使用权限的申请,则确定所述第二设备申请使用所述共享接口所需的费用;
转账子模块,用于从所述第二设备的账户中转移所述费用至预设的安全账户中;
生成子模块,用于生成所述接口调用凭证,并将所述接口调用凭证返回至所述第二设备。
在一种可能的实现方式中,上述装置还包括:
已调用次数确定模块,用于确定所述第二设备已调用所述共享接口的已调用次数,所述已调用次数为所述验证请求中的接口使用次数;
付费模块,用于将所述已调用次数对应的费用从所述安全账户中转移至所述第一设备的账户。
在一种可能的实现方式中所述验证请求还包括接口使用次数和所述第二设备的签名信息,上述验证模块84包括:
确定子模块,用于确定所述接口调用凭证对应的所述第二设备获取到的所述共享接口的使用权限信息,所述使用权限信息包括所述第二设备的身份验证信息和所述共享接口的剩余使用次数;
身份验证子模块,用于基于所述身份验证信息和所述接口调用凭证,对所述签名信息进行验证;
判断子模块,用于若所述签名信息验证通过且所述接口使用次数小于或等于所述剩余使用次数,则生成允许所述第二设备调用所述共享接口的所述验证信息。
在一种可能的实现方式中,上述身份验证子模块包括:
判断单元,用于确定所述签名信息是否已被所述区块链记录;
第一验证单元,用于若所述签名信息已被所述区块链记录,则确定所述签名信息验证失败;
第二验证单元,用于若所述签名信息未被所述区块链记录,则根据所述第二设备的公钥对所述签名信息进行解密得到待验证信息;若所述待验证信息和所述接口调用凭证匹配,则所述签名信息验证通过,并将验证通过的所述签名信息记录在所述区块链中。
参照图9,示出了本申请实施例提供的一种接口共享装置的示意图,该装置应用于第一设备,具体可以包括发布模块91、接收模块92、验证模块93和响应模块94,其中:
发布模块91,用于向区块链发布共享接口的共享信息;
接收模块92,用于接收第二设备针对所述共享接口的调用请求,所述调用请求包括接口调用凭证;
验证模块93,用于将所述接口调用凭证发送至所述区块链的节点设备以请求所述节点设备对所述调用请求进行验证;
响应模块94,用于若所述调用请求验证通过,则响应所述第二设备的所述调用请求。
参照图10,示出了本申请实施例提供的一种接口共享装置的示意图,应用于第二设备,具体可以包括申请模块1001、接收模块1002、调用模块1003和数据接收模块1004,其中:
申请模块1001,用于向区块链的节点设备发起获取第一设备的共享接口的使用权限的申请;
接收模块1002,用于接收所述节点设备针对所述申请返回的接口调用凭证;
调用模块1003,用于向所述第一设备发起调用请求,所述调用请求包括所述接口调用凭证;
数据接收模块1004,用于接收所述第一设备针对所述调用请求返回的数据,以完成对所述共享接口的调用。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
图11为本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该实施例的计算机设备110包括:至少一个处理器1100(图11中仅示出一个)处理器、存储器1101以及存储在所述存储器1101中并可在所述至少一个处理器1100上运行的计算机程序1102,所述处理器1100执行所述计算机程序1102时实现上述任意各个方法实施例中的步骤。
所述计算机设备110可以是桌上型计算机、笔记本、掌上电脑及云端计算机设备等计算设备。该计算机设备可包括,但不仅限于,处理器1100、存储器1101。本领域技术人员可以理解,图11仅仅是计算机设备110的举例,并不构成对计算机设备110的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器1100可以是中央处理单元(Central Processing Unit,CPU),该处理器1100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器1101在一些实施例中可以是所述计算机设备110的内部存储单元,例如计算机设备110的硬盘或内存。所述存储器1101在另一些实施例中也可以是所述计算机设备110的外部存储设备,例如所述计算机设备110上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器1101还可以既包括所述计算机设备110的内部存储单元也包括外部存储设备。所述存储器1101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器1101还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种接口共享方法,其特征在于,应用于区块链的节点设备,所述方法包括:
发布第一设备的共享接口的共享信息至区块链;
若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;
接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;
基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;
向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
2.如权利要求1所述的方法,其特征在于,所述若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证,包括:
若接收到所述第二设备获取所述共享接口的使用权限的申请,则确定所述第二设备申请使用所述共享接口所需的费用;
从所述第二设备的账户中转移所述费用至预设的安全账户中;
生成所述接口调用凭证,并将所述接口调用凭证返回至所述第二设备。
3.如权利要求2所述的方法,在基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息之后,所述方法还包括:
确定所述第二设备已调用所述共享接口的已调用次数,所述已调用次数为所述验证请求中的接口使用次数;
将所述已调用次数对应的费用从所述安全账户中转移至所述第一设备的账户。
4.如权利要求1-3任一项所述的方法,其特征在于,所述验证请求还包括接口使用次数和所述第二设备的签名信息,所述基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,包括:
确定所述接口调用凭证对应的所述第二设备获取到的所述共享接口的使用权限信息,所述使用权限信息包括所述第二设备的身份验证信息和所述共享接口的剩余使用次数;
基于所述身份验证信息和所述接口调用凭证,对所述签名信息进行验证;
若所述签名信息验证通过且所述接口使用次数小于或等于所述剩余使用次数,则生成允许所述第二设备调用所述共享接口的所述验证信息。
5.如权利要求4所述的方法,其特征在于,所述基于所述身份验证信息和所述接口调用凭证,对所述签名信息进行验证,包括:
确定所述签名信息是否已被所述区块链记录;
若所述签名信息已被所述区块链记录,则确定所述签名信息验证失败;
若所述签名信息未被所述区块链记录,则根据所述第二设备的公钥对所述签名信息进行解密得到待验证信息;若所述待验证信息和所述接口调用凭证匹配,则所述签名信息验证通过,并将验证通过的所述签名信息记录在所述区块链中。
6.一种接口共享方法,其特征在于,应用于第一设备,所述方法包括:
向区块链发布共享接口的共享信息;
接收第二设备针对所述共享接口的调用请求,所述调用请求包括接口调用凭证;
将所述接口调用凭证发送至所述区块链的节点设备以请求所述节点设备对所述调用请求进行验证;
若所述调用请求验证通过,则响应所述第二设备的所述调用请求。
7.一种接口共享方法,其特征在于,应用于第二设备,所述方法包括:
向区块链的节点设备发起获取第一设备的共享接口的使用权限的申请;
接收所述节点设备针对所述申请返回的接口调用凭证;
向所述第一设备发起调用请求,所述调用请求包括所述接口调用凭证;
接收所述第一设备针对所述调用请求返回的数据,以完成对所述共享接口的调用。
8.一种接口共享装置,其特征在于,应用于区块链的节点设备,所述装置包括:
发布模块,用于发布第一设备的共享接口的共享信息至区块链;
授权模块,用于若接收到第二设备获取所述共享接口的使用权限的申请,则向所述第二设备返回接口调用凭证;
接收模块,用于接收来自所述第一设备的验证请求,所述验证请求包括所述接口调用凭证;
验证模块,用于基于所述接口调用凭证对所述第二设备的调用请求进行验证,得到验证信息,所述调用请求是所述第二设备调用所述第一设备的所述共享接口的请求;
返回模块,用于向所述第一设备返回所述验证信息,所述第一设备用于根据所述验证信息处理针对所述共享接口的所述调用请求。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211425291.XA CN115834171A (zh) | 2022-11-15 | 2022-11-15 | 接口共享方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211425291.XA CN115834171A (zh) | 2022-11-15 | 2022-11-15 | 接口共享方法、装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834171A true CN115834171A (zh) | 2023-03-21 |
Family
ID=85528092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211425291.XA Pending CN115834171A (zh) | 2022-11-15 | 2022-11-15 | 接口共享方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834171A (zh) |
-
2022
- 2022-11-15 CN CN202211425291.XA patent/CN115834171A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853801B2 (en) | Methods and devices for protecting sensitive data of transaction activity based on smart contract in blockchain | |
CN108898389B (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
CN112215608B (zh) | 数据处理方法和装置 | |
CN111213171B (zh) | 用于安全离线支付的方法和装置 | |
CN113012008B (zh) | 一种基于可信硬件的身份管理方法、装置及设备 | |
CN110061846B (zh) | 对区块链中用户节点进行身份认证和确认的方法、装置及计算机可读存储介质 | |
US8843415B2 (en) | Secure software service systems and methods | |
CN110677376B (zh) | 认证方法、相关设备和系统及计算机可读存储介质 | |
JP2016096547A (ja) | 否認防止方法、このための決済管理サーバおよび使用者端末 | |
CN106936588B (zh) | 一种硬件控制锁的托管方法、装置及系统 | |
CN109474437B (zh) | 一种基于生物识别信息来应用数字证书的方法 | |
CN111160908B (zh) | 基于区块链的供应链交易隐私保护系统、方法及相关设备 | |
KR101385429B1 (ko) | Nfc를 이용하는 전자 계약의 개인 인증 방법, 이를 수행하기 위한 인증 서버 및 단말기 | |
CN110942382A (zh) | 电子合同的生成方法、装置、计算机设备及存储介质 | |
CN111814172A (zh) | 一种数据授权信息的获取方法、装置及设备 | |
WO2017050147A1 (zh) | 一种信息注册、认证方法及装置 | |
CN111105235A (zh) | 基于区块链的供应链交易隐私保护系统、方法及相关设备 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN111431840A (zh) | 安全处理方法和装置 | |
TW201902179A (zh) | 具隱密性的kyc資料共享系統及其方法 | |
CN113271207A (zh) | 基于移动电子签名的托管密钥使用方法、系统、计算机设备及存储介质 | |
CN110417557B (zh) | 智能终端外设数据安全控制方法及装置 | |
CN110276693B (zh) | 保险理赔方法及系统 | |
KR101120059B1 (ko) | 클라우드 컴퓨팅 과금 공증장치, 과금 시스템 및 과금방법 | |
US20180218363A1 (en) | Payment instrument management with key tokenization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |