数字人民币的支付方法、装置和电子设备【
技术领域:
:】1.本技术实施例涉及互联网
技术领域:
:,尤其涉及一种数字人民币的支付方法、装置和电子设备。
背景技术:
::2.在网络信号较差或者没有的情况下(比如:自然灾害、高铁、飞机、地下商场等),当用户有面对面交易需求并且在没有纸币的情况下,使用数字人民币的双离线支付能力,可以满足用户的支付需求。3.现有相关技术提供的数字人民币的双离线支付方案,采用近场通信(nearfieldcommunication,nfc)的通讯方式完成离线交易过程,采用区块链未花费的交易输出(unspenttransactionoutput,utxo)账本完成在线交易信息的同步。具体为:4.(1)通过nfc通讯方式,收付双方发送双离线交易信息,包括转账数字货币和金额、付款者账号、收款者账号、交易时间和付款者私钥签名;5.(2)当恢复网络后,收款者和付款者分别将交易信息进行上传,并且下载确认对方上传的确认交易信息,完成在线同步区块链utxo账本。6.但是,上述方案主要聚焦在如何实现整个双离线过程,并未考虑付款方和收款方的安全问题,因此双离线支付的安全性较差。技术实现要素:7.本技术实施例提供了一种数字人民币的支付方法、装置和电子设备,以实现在收款方和付款方均处于离线状态的场景下,使用数字人民币进行支付,并保证双离线状态下,采用数字人民币进行支付的安全性。8.第一方面,本技术实施例提供一种数字人民币的支付方法,应用于收款方使用的第一电子设备,所述第一电子设备和付款方使用的第二电子设备均处于离线状态,所述方法包括:获取所述第二电子设备使用数字人民币进行支付的支付请求;响应于所述支付请求,向所述第二电子设备发送人民币数字证书,以供所述第二电子设备对所述第一电子设备发送的人民币数字证书进行校验,并接收所述第二电子设备发送的人民币数字证书;其中,所述人民币数字证书来自数字人民币的发行服务器;对所述第二电子设备发送的人民币数字证书进行校验;确定所述第二电子设备发送的人民币数字证书通过校验之后,使用所述第一电子设备保存的私钥对交易信息进行签名,获得第一签名,将所述交易信息和所述第一签名发送给所述第二电子设备;其中,所述第一电子设备保存的私钥是第三方的认证服务器下发的;接收所述第二电子设备发送的交易信息、第一签名和第二签名;其中,所述交易信息、所述第一签名和所述第二签名是所述第二电子设备接收到所述第一电子设备发送的交易信息和第一签名之后,对所述第一签名进行校验,确定所述第一签名通过校验之后,使用所述第二电子设备保存的私钥对所述第一电子设备发送的交易信息进行签名,获得第二签名之后发送给所述第一电子设备的;其中,所述第二电子设备保存的私钥是第三方的认证服务器下发的;对所述第二签名进行校验,并将所述交易信息、所述第一签名和所述第二签名存储到所述第一电子设备的可信执行环境中。9.上述数字人民币的支付方法中,在第一电子设备和第二电子设备均处于离线状态的场景下,第一电子设备获取第二电子设备使用数字人民币进行支付的支付请求之后,响应于上述支付请求,向第二电子设备发送人民币数字证书,并接收第二电子设备发送的人民币数字证书,对第二电子设备发送的人民币数字证书进行校验,确定第二电子设备发送的人民币数字证书通过校验之后,使用第一电子设备保存的私钥对交易信息进行签名,获得第一签名,将上述交易信息和上述第一电子设备的第一签名发送给第二电子设备,接收第二电子设备发送的交易信息、第一签名和第二电子设备的第二签名。最后,对第二签名进行校验,并将上述交易信息、第一签名和第二签名存储到第一电子设备的可信执行环境中,从而可以实现在第一电子设备和第二电子设备均处于离线状态的场景下,使用数字人民币进行支付,并且可以保证第一电子设备和第二电子设备在支付过程中的可靠性和安全性。10.其中一种可能的实现方式中,所述将所述交易信息、所述第一签名和所述第二签名存储到所述第一电子设备的可信执行环境中之后,还包括:在所述第一电子设备联网之后,将所述交易信息、所述第一签名和所述第二签名上传到第三方的交易服务器,以供所述交易服务器对所述第一签名和所述第二签名进行校验,在所述第一签名和所述第二签名通过校验之后,将所述交易信息上传所述数字人民币的发行服务器,并接收所述发行服务器发送的所述交易信息对应的交易结果;接收所述交易服务器发送的所述交易信息对应的交易结果。11.其中一种可能的实现方式中,所述向所述第二电子设备发送人民币数字证书之前,还包括:获取用户注册数字人民币并且开通个人子钱包的请求;其中,所述用户包括使用所述第一电子设备的用户;将所述请求发送给所述数字人民币的发行服务器;接收所述发行服务器发送的人民币数字证书、公钥、钱包标识、账户令牌以及所述发行服务器派生的第一公私钥对;将所述发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和所述第一公私钥对存储到所述第一电子设备的可信执行环境中;使用预先与所述第三方的认证服务器协定好的公钥对所述账户标识、所述钱包标识和所述第一电子设备的设备标识进行加密,将加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到所述认证服务器;接收并保存所述认证服务器发送的第三方数字证书和第二公私钥对。12.其中一种可能的实现方式中,所述第三方数字证书是所述认证服务器使用自身保存的私钥对加密后的账户标识、加密后的设备标识和加密后的钱包标识进行解密,对解密获得的账户标识、设备标识和钱包标识进行验证,确定解密获得的账户标识、设备标识和钱包标识通过验证之后,生成第二公私钥对,使用所述认证服务器自身保存的私钥对所述第二公私钥对中的公钥和数字证书有效期进行加密,得到数字签名,将所述第二公私钥对中的公钥、数字证书有效期和所述数字签名组成第三方数字证书之后,发送给所述第一电子设备的。13.其中一种可能的实现方式中,所述接收并保存所述认证服务器发送的第三方数字证书和第二公私钥对包括:对所述认证服务器发送的第三方数字证书进行验签;在所述第三方数字证书通过验签之后,生成随机数;使用预先与所述认证服务器协定好的公钥对所述账户标识、所述钱包标识、所述第一电子设备的设备标识和所述随机数进行加密;将加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密后的随机数发送到所述认证服务器;接收所述认证服务器发送的加密的私钥;其中,所述加密的私钥是所述认证服务器使用自身保存的私钥对所述加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密的随机数进行解密,并确定解密获得的账户标识、设备标识和钱包标识通过验证之后,使用解密获得的随机数对所述第二公私钥对中的私钥进行加密之后发送给所述第一电子设备的;使用所述随机数对所述加密的私钥进行解密;确定解密获得私钥通过验证之后,保存所述认证服务器发送的第三方数字证书和所述第二公私钥对。14.其中一种可能的实现方式中,所述第一电子设备与第二电子设备通过蓝牙建立连接,所述向所述第二电子设备发送人民币数字证书包括:通过蓝牙连接向第二电子设备发送人民币数字证书;所述接收所述第二电子设备发送的人民币数字证书包括:通过蓝牙连接接收所述第二电子设备发送的人民币数字证书。15.第二方面,本技术实施例提供一种数字人民币的支付装置,设置在收款方使用的第一电子设备中,所述第一电子设备和付款方使用的第二电子设备均处于离线状态,所述装置包括:获取模块,用于获取所述第二电子设备使用数字人民币进行支付的支付请求;发送模块,用于响应于所述支付请求,向所述第二电子设备发送人民币数字证书,以供所述第二电子设备对所述第一电子设备发送的人民币数字证书进行校验;接收模块,用于接收所述第二电子设备发送的人民币数字证书;其中,所述人民币数字证书来自数字人民币的发行服务器;校验模块,用于对所述第二电子设备发送的人民币数字证书进行校验;签名模块,用于在所述校验模块确定所述第二电子设备发送的人民币数字证书通过校验之后,使用所述第一电子设备保存的私钥对交易信息进行签名,获得第一签名;所述发送模块,还用于将所述交易信息和所述第一签名发送给所述第二电子设备;其中,所述第一电子设备保存的私钥是第三方的认证服务器下发的;所述接收模块,还用于接收所述第二电子设备发送的交易信息、第一签名和第二签名;其中,所述交易信息、所述第一签名和所述第二签名是所述第二电子设备接收到所述第一电子设备发送的交易信息和第一签名之后,对所述第一签名进行校验,确定所述第一签名通过校验之后,使用所述第二电子设备保存的私钥对所述第一电子设备发送的交易信息进行签名,获得第二签名之后发送给所述第一电子设备的;其中,所述第二电子设备保存的私钥是第三方的认证服务器下发的;所述校验模块,还用于对所述第二签名进行校验;存储模块,用于将所述交易信息、所述第一签名和所述第二签名存储到所述第一电子设备的可信执行环境中。16.其中一种可能的实现方式中,所述发送模块,还用于在所述存储模块将所述交易信息、所述第一签名和所述第二签名存储到所述第一电子设备的可信执行环境中之后,在所述第一电子设备联网之后,将所述交易信息、所述第一签名和所述第二签名上传到第三方的交易服务器,以供所述交易服务器对所述第一签名和所述第二签名进行校验,在所述第一签名和所述第二签名通过校验之后,将所述交易信息上传所述数字人民币的发行服务器,并接收所述发行服务器发送的所述交易信息对应的交易结果;所述接收模块,还用于接收所述交易服务器发送的所述交易信息对应的交易结果。17.其中一种可能的实现方式中,所述装置还包括:加密模块;所述获取模块,还用于在所述发送模块向所述第二电子设备发送人民币数字证书之前,获取用户注册数字人民币并且开通个人子钱包的请求;其中,所述用户包括使用所述第一电子设备的用户;所述发送模块,还用于将所述请求发送给所述数字人民币的发行服务器;所述接收模块,还用于接收所述发行服务器发送的人民币数字证书、公钥、钱包标识、账户令牌以及所述发行服务器派生的第一公私钥对;所述存储模块,还用于将所述发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和所述第一公私钥对存储到所述第一电子设备的可信执行环境中;所述加密模块,用于使用预先与所述第三方的认证服务器协定好的公钥对所述账户标识、所述钱包标识和所述第一电子设备的设备标识进行加密;所述发送模块,还用于将所述加密模块加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到所述认证服务器;所述接收模块,还用于接收所述认证服务器发送的第三方数字证书和第二公私钥对;所述存储模块,还用于保存所述接收模块接收的第三方数字证书和第二公私钥对。18.其中一种可能的实现方式中,所述接收模块接收的第三方数字证书是所述认证服务器使用自身保存的私钥对加密后的账户标识、加密后的设备标识和加密后的钱包标识进行解密,对解密获得的账户标识、设备标识和钱包标识进行验证,确定解密获得的账户标识、设备标识和钱包标识通过验证之后,生成第二公私钥对,使用所述认证服务器自身保存的私钥对所述第二公私钥对中的公钥和数字证书有效期进行加密,得到数字签名,将所述第二公私钥对中的公钥、数字证书有效期和所述数字签名组成第三方数字证书之后,发送给所述第一电子设备的。19.其中一种可能的实现方式中,所述接收模块包括:验签子模块,用于对所述认证服务器发送的第三方数字证书进行验签;生成子模块,用于在所述第三方数字证书通过验签之后,生成随机数;密钥加密子模块,用于使用预先与所述认证服务器协定好的公钥对所述账户标识、所述钱包标识、所述第一电子设备的设备标识和所述随机数进行加密;加密发送子模块,用于将加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密后的随机数发送到所述认证服务器;私钥接收子模块,用于接收所述认证服务器发送的加密的私钥;其中,所述加密的私钥是所述认证服务器使用自身保存的私钥对所述加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密的随机数进行解密,并确定解密获得的账户标识、设备标识和钱包标识通过验证之后,使用解密获得的随机数对所述第二公私钥对中的私钥进行加密之后发送给所述第一电子设备的;解密子模块,用于使用所述随机数对所述加密的私钥进行解密;所述存储模块,具体用于在确定解密获得私钥通过验证之后,保存所述认证服务器发送的第三方数字证书和所述第二公私钥对。20.其中一种可能的实现方式中,所述第一电子设备与第二电子设备通过蓝牙建立连接;所述发送模块,具体用于通过蓝牙连接向第二电子设备发送人民币数字证书;所述接收模块,具体用于通过蓝牙连接接收所述第二电子设备发送的人民币数字证书。21.第三方面,本技术实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。22.第四方面,本技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。23.应当理解的是,本技术实施例的第二~四方面与本技术实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。【附图说明】24.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。25.图1为本技术一个实施例提供的数字人民币的支付方法的流程图;26.图2为本技术另一个实施例提供的数字人民币的支付方法的流程图;27.图3为本技术再一个实施例提供的数字人民币的支付方法的流程图;28.图4为本技术再一个实施例提供的数字人民币的支付方法的流程图;29.图5为本技术再一个实施例提供的数字人民币的支付方法的流程图;30.图6为本技术一个实施例提供的数字人民币的支付装置的结构示意图;31.图7为本技术另一个实施例提供的数字人民币的支付装置的结构示意图;32.图8为本技术一个实施例提供的电子设备的结构示意图。【具体实施方式】33.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。34.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。35.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。36.针对网络信号较差、无网以及自然灾害(比如:地震和/或水灾等)情况下,数字人民币双离线支付的技术能力,可以满足人们日常的支付需求。而数字人民币在进行双离线支付过程中存在一些安全问题,主要分为2大类:付款方的安全问题和收款方的安全问题。基于此,本技术实施例提供一种数字人民币的支付方法,在收款方和付款方均处于离线状态的场景下,提供一套较完整的加解密过程,保证了双离线支付的可靠性及安全性。37.图1为本技术一个实施例提供的数字人民币的支付方法的流程图,上述数字人民币的支付方法可以应用于收款方使用的第一电子设备,第一电子设备和付款方使用的第二电子设备均处于离线状态。38.如图1所示,上述方法可以包括:39.步骤101,第一电子设备获取第二电子设备使用数字人民币进行支付的支付请求。40.具体地,当第一电子设备和第二电子设备均处于离线状态时,第一电子设备可以通过扫描第二电子设备的屏幕上显示的二维码,获取第二电子设备使用数字人民币进行支付的支付请求。41.步骤102,响应于上述支付请求,第一电子设备向第二电子设备发送人民币数字证书,以供第二电子设备对第一电子设备发送的人民币数字证书进行校验,并接收第二电子设备发送的人民币数字证书。42.其中,人民币数字证书来自数字人民币的发行服务器,人民币数字证书可以用于证实拥有人民币数字证书的用户的账户和钱包的真实性。43.具体地,第一电子设备可以与第二电子设备通过蓝牙建立连接,通过蓝牙连接向第二电子设备发送人民币数字证书,以及通过上述蓝牙连接接收第二电子设备发送的人民币数字证书。44.步骤103,第一电子设备对第二电子设备发送的人民币数字证书进行校验。45.具体地,对第二电子设备发送的人民币数字证书进行校验可以为:使用上述发行服务器下发的公钥,对人民币数字证书进行解密,如果能成功解密,则可以确定使用第二电子设备的用户的钱包和账户是经过认证的,使用第二电子设备的用户的钱包和账户真实有效。46.步骤104,第一电子设备确定第二电子设备发送的人民币数字证书通过校验之后,使用第一电子设备保存的私钥对交易信息进行签名,获得第一签名,将上述交易信息和上述第一签名发送给第二电子设备。47.其中,第一电子设备保存的私钥是第三方的认证服务器下发的。48.步骤105,第一电子设备接收第二电子设备发送的交易信息、第一签名和第二签名。49.其中,上述交易信息、第一签名和第二签名是第二电子设备接收到第一电子设备发送的交易信息和第一签名之后,对第一签名进行校验,确定第一签名通过校验之后,使用第二电子设备保存的私钥对第一电子设备发送的交易信息进行签名,获得第二签名之后发送给第一电子设备的;同样,第二电子设备保存的私钥也是第三方的认证服务器下发的。50.步骤106,第一电子设备对第二签名进行校验,并将上述交易信息、第一签名和第二签名存储到第一电子设备的可信执行环境中。51.具体地,对第二签名进行校验可以为:使用上述第三方的认证服务器下发的与上述私钥相对应的公钥,对第二签名进行解密,获取解密后的第二签名,进而可以对解密后的第二签名进行校验。52.上述数字人民币的支付方法中,在第一电子设备和第二电子设备均处于离线状态的场景下,第一电子设备获取第二电子设备使用数字人民币进行支付的支付请求之后,响应于上述支付请求,向第二电子设备发送人民币数字证书,并接收第二电子设备发送的人民币数字证书,对第二电子设备发送的人民币数字证书进行校验,确定第二电子设备发送的人民币数字证书通过校验之后,使用第一电子设备保存的私钥对交易信息进行签名,获得第一签名,将上述交易信息和上述第一电子设备的第一签名发送给第二电子设备,接收第二电子设备发送的交易信息、第一签名和第二电子设备的第二签名。最后,对第二签名进行校验,并将上述交易信息、第一签名和第二签名存储到第一电子设备的可信执行环境中,从而可以实现在第一电子设备和第二电子设备均处于离线状态的场景下,使用数字人民币进行支付,并且可以保证第一电子设备和第二电子设备在支付过程中的可靠性和安全性。53.图2为本技术另一个实施例提供的数字人民币的支付方法的流程图,如图2所示,本技术图1所示实施例中,步骤106之后,还可以包括:54.步骤201,在第一电子设备联网之后,第一电子设备将上述交易信息、第一签名和第二签名上传到第三方的交易服务器,以供上述交易服务器对第一签名和第二签名进行校验,在第一签名和第二签名通过校验之后,将上述交易信息上传上述数字人民币的发行服务器,并接收上述发行服务器发送的上述交易信息对应的交易结果。55.步骤202,第一电子设备接收上述交易服务器发送的上述交易信息对应的交易结果。56.图3为本技术再一个实施例提供的数字人民币的支付方法的流程图,如图3所示,本技术图1所示实施例中,步骤102之前,还包括:57.步骤301,第一电子设备获取用户注册数字人民币并且开通个人子钱包的请求;其中,上述用户包括使用第一电子设备的用户。58.步骤302,第一电子设备将上述请求发送给上述数字人民币的发行服务器。59.步骤303,第一电子设备接收上述发行服务器发送的人民币数字证书、公钥、钱包标识、账户令牌以及上述发行服务器派生的第一公私钥对。60.其中,上述发行服务器发送的人民币数字证书、公钥、钱包标识、账户令牌以及上述发行服务器派生的第一公私钥对,用于确保上述用户的账户和钱包的真实性和有效性。61.步骤304,第一电子设备将上述发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和上述第一公私钥对存储到第一电子设备的可信执行环境中。62.步骤305,第一电子设备使用预先与第三方的认证服务器协定好的公钥对上述账户标识、上述钱包标识和第一电子设备的设备标识进行加密,将加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到上述认证服务器。63.其中,第一电子设备的设备标识可以为第一电子设备的国际移动设备识别码(internationalmobileequipmentidentity,imei),imei即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于电子设备的身份证。64.步骤306,第一电子设备接收并保存上述认证服务器发送的第三方数字证书和第二公私钥对。65.下面结合图4,对步骤305~步骤306的具体过程进行说明,图4为本技术再一个实施例提供的数字人民币的支付方法的流程图,图4中以第一电子设备向第三方的认证服务器发起认证的过程为例进行说明,可以理解,第二电子设备向第三方的认证服务器发起认证的过程与第一电子设备向第三方的认证服务器发起认证的过程相同,在此不再赘述。如图4所示,可以包括:66.步骤401,同步骤305。67.步骤402,第三方的认证服务器使用自身保存的私钥对加密后的账户标识、加密后的设备标识和加密后的钱包标识进行解密,对解密获得的账户标识、设备标识和钱包标识进行验证。68.具体地,上述认证服务器可以将解密获得的账户标识、设备标识和钱包标识与上述认证服务器连接的注册数据库中保存的账户标识、设备标识和钱包标识进行比对,如果比对一致,则可以确定解密获得的账户标识、设备标识和钱包标识通过验证;如果比对不一致,则可以确定解密获得的账户标识、设备标识和钱包标识未通过验证,然后认证服务器可以返回错误码:error。69.步骤403,确定解密获得的账户标识、设备标识和钱包标识通过验证之后,认证服务器生成第二公私钥对。70.步骤404,认证服务器使用认证服务器自身保存的私钥对上述第二公私钥对中的公钥和数字证书有效期进行加密,得到数字签名。71.具体地,使用认证服务器自身保存的私钥对上述第二公私钥对中的公钥和数字证书有效期进行加密之前,认证服务器可以使用哈希(hash)算法对上述第二公私钥对中的公钥和数字证书有效期进行哈希处理。然后认证服务器再使用认证服务器自身保存的私钥对哈希处理后的公钥和数字证书有效期进行加密。72.步骤405,认证服务器将上述第二公私钥对中的公钥、数字证书有效期和上述数字签名组成第三方数字证书。73.步骤406,认证服务器将第三方数字证书发送给第一电子设备。74.步骤407,第一电子设备对上述认证服务器发送的第三方数字证书进行验签。75.具体地,如果第三方数字证书通过验签,则执行步骤408;如果第三方数字证书未通过验签,则第一电子设备重新发起认证请求。76.步骤408,在上述第三方数字证书通过验签之后,第一电子设备生成随机数。77.步骤409,第一电子设备使用预先与上述认证服务器协定好的公钥对上述账户标识、上述钱包标识、上述第一电子设备的设备标识和上述随机数进行加密。78.步骤410,第一电子设备将加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密后的随机数发送到上述认证服务器。79.步骤411,认证服务器使用自身保存的私钥对上述加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密的随机数进行解密;对解密获得的账户标识、设备标识和钱包标识进行验证。80.本实施例中,如果解密获得的账户标识、设备标识和钱包标识未通过验证,则返回错误码:error。81.步骤412,确定解密获得的账户标识、设备标识和钱包标识通过验证之后,认证服务器使用解密获得的随机数对上述第二公私钥对中的私钥进行加密。82.具体地,在确定解密获得的账户标识、设备标识和钱包标识通过验证之后,认证服务器可以使用解密获得的随机数,利用对称加密算法对第二公私钥对中的私钥进行加密。83.步骤413,认证服务器将加密的私钥发送给第一电子设备。84.步骤414,第一电子设备使用上述随机数对上述加密的私钥进行解密,并对解密获得的私钥进行验证。85.具体地,如果解密获得的私钥通过验证,则执行步骤415;如果解密获得的私钥未通过验证,则第一电子设备重新发起认证请求。86.步骤415,确定解密获得私钥通过验证之后,第一电子设备保存认证服务器发送的第三方数字证书和第二公私钥对。87.图5为本技术再一个实施例提供的数字人民币的支付方法的流程图,如图5所示,上述数字人民币的支付方法可以包括:88.步骤501,第一电子设备获取用户注册数字人民币并且开通个人子钱包的请求,将上述请求发送给上述数字人民币的发行服务器。89.其中,第一电子设备可以为收款方使用的电子设备,用户可以为使用第一电子设备的用户。具体实现时,用户可以通过第一电子设备上安装的数字人民币应用(application,app)发起注册数字人民币并且开通个人子钱包的请求,并由数字人民币app将上述请求发送给数字人民币的发行服务器。90.步骤502,发行服务器将人民币数字证书、公钥、钱包标识、账户令牌以及上述发行服务器派生的第一公私钥对,发送给第一电子设备。91.步骤503,第一电子设备将上述发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和上述第一公私钥对存储到第一电子设备的可信执行环境(trustedexecutionenvironment,tee)中。92.步骤504,第一电子设备在联网的状态下,使用预先与第三方的认证服务器协定好的公钥对上述账户标识、上述钱包标识和第一电子设备的设备标识进行加密,将加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到上述认证服务器。93.步骤505,第一电子设备接收认证服务器发送的第三方数字证书和第二公私钥对。94.需要说明的是,认证服务器发送给第一电子设备的第三方数字证书和第二公私钥对,是认证服务器为第一电子设备生成的第三方数字证书和第二公私钥对。95.步骤506,第一电子设备调用与第一电子设备的tee之间的接口,将第三方数字证书和第二公私钥对存储到第一电子设备的tee中。96.本实施例中,步骤504~步骤506的具体实现方式可以参见本技术图4所示实施例的描述,在此不再赘述。97.步骤507,第二电子设备将发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和第一公私钥对存储到第二电子设备的tee中。98.其中,第二电子设备可以为付款方使用的电子设备。步骤507之前,第二电子设备可以执行步骤501~步骤502,获得发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和第一公私钥对。本步骤中,发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和第一公私钥对,是发行服务器为第二电子设备生成的,与使用第二电子设备的用户相对应。99.步骤508,第二电子设备在联网的状态下,使用预先与第三方的认证服务器协定好的公钥对上述账户标识、钱包标识和第二电子设备的设备标识进行加密,将加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到上述认证服务器。100.步骤509,第二电子设备接收认证服务器发送的第三方数字证书和第二公私钥对。101.需要说明的是,认证服务器发送给第二电子设备的第三方数字证书和第二公私钥对,是认证服务器为第二电子设备生成的第三方数字证书和第二公私钥对。102.步骤510,第二电子设备调用与第二电子设备的tee之间的接口,将第三方数字证书和第二公私钥对存储到第二电子设备的tee中。103.具体实现时,步骤508~步骤510可以与步骤504~步骤506并行执行,或先后执行,本实施例对步骤508~步骤510与步骤504~步骤506的执行顺序不作限定。104.步骤511,当第一电子设备和第二电子设备均处于离线状态时,第一电子设备获取第二电子设备使用数字人民币进行支付的支付请求。105.具体地,当第一电子设备和第二电子设备均处于离线状态时,第一电子设备可以通过扫描第二电子设备的屏幕上显示的二维码,获取第二电子设备使用数字人民币进行支付的支付请求。106.步骤512,响应于上述支付请求,第一电子设备向第二电子设备发送人民币数字证书,以供第二电子设备对第一电子设备发送的人民币数字证书进行校验,并接收第二电子设备发送的人民币数字证书。107.具体地,第一电子设备可以与第二电子设备通过蓝牙建立连接,通过蓝牙连接向第二电子设备发送人民币数字证书,以及通过上述蓝牙连接接收第二电子设备发送的人民币数字证书。108.步骤513,第一电子设备对第二电子设备发送的人民币数字证书进行校验,第二电子设备对第一电子设备发送的人民币数字证书进行校验。109.步骤514,第一电子设备确定第二电子设备发送的人民币数字证书通过校验之后,使用第一电子设备保存的私钥对交易信息进行签名,获得第一签名。110.步骤515,第一电子设备将上述交易信息和上述第一签名发送给第二电子设备。111.步骤516,第二电子设备接收到第一电子设备发送的交易信息和第一签名之后,对第一签名进行校验。112.步骤517,确定第一签名通过校验之后,第二电子设备使用第二电子设备保存的私钥对第一电子设备发送的交易信息进行签名,获得第二签名。113.步骤518,第二电子设备将交易信息、第一签名和第二签名发送给第一电子设备。114.步骤519,第一电子设备对第二签名进行校验,并将上述交易信息、第一签名和第二签名存储到第一电子设备的tee中。115.步骤520,在第一电子设备联网之后,第一电子设备将上述交易信息、第一签名和第二签名上传到第三方的交易服务器。116.步骤521,交易服务器将上述交易信息插入流水表。117.步骤522,交易服务器对第一签名和第二签名进行校验。118.步骤523,如果未创建过上述交易信息对应的交易单,则交易服务器将第一签名和第二签名的校验结果和上述交易信息插入交易表。119.步骤524,在第二电子设备联网之后,第二电子设备将上述交易信息、第一签名和第二签名上传到第三方的交易服务器。120.步骤525,交易服务器对第一签名和第二签名进行校验。121.步骤526,如果未创建过上述交易信息对应的交易单,则交易服务器将第一签名和第二签名的校验结果和上述交易信息插入交易表。122.具体实现时,步骤524~步骤526可以与步骤520~步骤523并行执行或先后执行,本实施例对步骤524~步骤526与步骤520~步骤523的执行顺序不作限定。123.步骤527,交易服务器将上述交易信息上传上述数字人民币的发行服务器。124.步骤528,交易服务器接收发行服务器发送的上述交易信息对应的交易结果。125.步骤529,交易服务器将上述交易信息对应的交易结果发送给第一电子设备。126.具体地,交易服务器可以采用异步通知的方式将上述交易信息对应的交易结果发送给第一电子设备。127.步骤530,交易服务器将上述交易信息对应的交易结果发送给第二电子设备。128.同样,交易服务器可以采用异步通知的方式将上述交易信息对应的交易结果发送给第二电子设备。129.可以理解,步骤529与步骤530可以并行执行,也可以先后执行,本实施例对步骤529与步骤530的执行顺序不作限定。130.本技术实施例提供的数字人民币的支付方法基于完整的加解密的设计,保证了收款方和付款方均双离线状态下支付的安全性,具体表现为:131.(a)交易前:确保用户的账户、钱包和设备验证通过。132.(b)交易中:交易过程加密验证,从而确保交易信息不被劫持篡改。133.(c)交易后:收款方和付款方分别将交易信息发送给交易服务器,交易服务器将交易结果分别发送给收款方和付款方,不仅交易服务器可以对收付款方发送的交易信息进行校验,收付款方也可以根据交易结果进行事后追偿,即提供事后追偿机制。134.本技术实施例提供的数字人民币的支付方法可以用于网络信号较差的场景下,例如:线下收单和/或共享单车等。长远来看,双离线支付将作为一种必须具备的支付手段,以应对一些自然灾害或者其它极端场景,比较典型的例子是:在水灾和/或地震等极端场景下,有了双离线支付,可以保证人民正常生活的需求。135.上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。136.图6为本技术一个实施例提供的数字人民币的支付装置的结构示意图,上述数字人民币的支付装置设置在收款方使用的第一电子设备中,第一电子设备和付款方使用的第二电子设备均处于离线状态。如图6所示,上述数字人民币的支付装置可以包括:获取模块61、发送模块62、接收模块63、校验模块64、签名模块65和存储模块66;137.其中,获取模块61,用于获取第二电子设备使用数字人民币进行支付的支付请求;138.发送模块62,用于响应于上述支付请求,向第二电子设备发送人民币数字证书,以供第二电子设备对第一电子设备发送的人民币数字证书进行校验;139.接收模块63,用于接收第二电子设备发送的人民币数字证书;其中,人民币数字证书来自数字人民币的发行服务器;140.校验模块64,用于对第二电子设备发送的人民币数字证书进行校验;141.签名模块65,用于在校验模块64确定第二电子设备发送的人民币数字证书通过校验之后,使用第一电子设备保存的私钥对交易信息进行签名,获得第一签名;142.发送模块62,还用于将上述交易信息和第一签名发送给第二电子设备;其中,第一电子设备保存的私钥是第三方的认证服务器下发的;143.接收模块63,还用于接收第二电子设备发送的交易信息、第一签名和第二签名;其中,上述交易信息、第一签名和第二签名是第二电子设备接收到第一电子设备发送的交易信息和第一签名之后,对第一签名进行校验,确定第一签名通过校验之后,使用第二电子设备保存的私钥对第一电子设备发送的交易信息进行签名,获得第二签名之后发送给第一电子设备的;其中,第二电子设备保存的私钥是第三方的认证服务器下发的;144.校验模块64,还用于对第二签名进行校验;145.存储模块66,用于将上述交易信息、第一签名和第二签名存储到第一电子设备的可信执行环境中。146.图6所示实施例提供的数字人民币的支付装置可用于执行本技术图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。147.图7为本技术另一个实施例提供的数字人民币的支付装置的结构示意图,与图6所示的数字人民币的支付装置相比,图7所示的数字人民币的支付装置中,发送模块62,还用于在存储模块66将上述交易信息、第一签名和第二签名存储到第一电子设备的可信执行环境中之后,在第一电子设备联网之后,将上述交易信息、第一签名和第二签名上传到第三方的交易服务器,以供交易服务器对第一签名和第二签名进行校验,在第一签名和第二签名通过校验之后,将上述交易信息上传上述数字人民币的发行服务器,并接收发行服务器发送的上述交易信息对应的交易结果;148.接收模块63,还用于接收上述交易服务器发送的上述交易信息对应的交易结果。149.进一步地,上述数字人民币的支付装置还可以包括:加密模块67;150.获取模块61,还用于在发送模块62向第二电子设备发送人民币数字证书之前,获取用户注册数字人民币并且开通个人子钱包的请求;其中,上述用户包括使用第一电子设备的用户;151.发送模块62,还用于将上述请求发送给上述数字人民币的发行服务器;152.接收模块63,还用于接收发行服务器发送的人民币数字证书、公钥、钱包标识、账户令牌以及上述发行服务器派生的第一公私钥对;153.存储模块66,还用于将发行服务器发送的人民币数字证书、公钥、钱包标识、账户标识和第一公私钥对存储到第一电子设备的可信执行环境中;154.加密模块67,用于使用预先与第三方的认证服务器协定好的公钥对上述账户标识、钱包标识和第一电子设备的设备标识进行加密;155.发送模块62,还用于将加密模块67加密后的账户标识、加密后的设备标识和加密后的钱包标识发送到认证服务器;156.接收模块63,还用于接收认证服务器发送的第三方数字证书和第二公私钥对;157.存储模块66,还用于保存接收模块63接收的第三方数字证书和第二公私钥对。158.本实施例中,接收模块63接收的第三方数字证书是认证服务器使用自身保存的私钥对加密后的账户标识、加密后的设备标识和加密后的钱包标识进行解密,对解密获得的账户标识、设备标识和钱包标识进行验证,确定解密获得的账户标识、设备标识和钱包标识通过验证之后,生成第二公私钥对,使用认证服务器自身保存的私钥对所述第二公私钥对中的公钥和数字证书有效期进行加密,得到数字签名,将第二公私钥对中的公钥、数字证书有效期和上述数字签名组成第三方数字证书之后,发送给第一电子设备的。159.本实施例中,接收模块63可以包括:验签子模块631、生成子模块632、密钥加密子模块633、加密发送子模块634、私钥接收子模块635和解密子模块636;160.其中,验签子模块631,用于对认证服务器发送的第三方数字证书进行验签;161.生成子模块632,用于在第三方数字证书通过验签之后,生成随机数;162.密钥加密子模块633,用于使用预先与认证服务器协定好的公钥对上述账户标识、上述钱包标识、第一电子设备的设备标识和上述随机数进行加密;163.加密发送子模块634,用于将加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密后的随机数发送到认证服务器;164.私钥接收子模块635,用于接收认证服务器发送的加密的私钥;其中,上述加密的私钥是认证服务器使用自身保存的私钥对加密后的账户标识、加密后的设备标识、加密后的钱包标识和加密的随机数进行解密,并确定解密获得的账户标识、设备标识和钱包标识通过验证之后,使用解密获得的随机数对第二公私钥对中的私钥进行加密之后发送给第一电子设备的;165.解密子模块636,用于使用上述随机数对加密的私钥进行解密;166.存储模块66,具体用于在确定解密获得私钥通过验证之后,保存认证服务器发送的第三方数字证书和第二公私钥对。167.本实施例中,第一电子设备与第二电子设备通过蓝牙建立连接;这样,发送模块62,具体用于通过蓝牙连接向第二电子设备发送人民币数字证书;接收模块63,具体用于通过蓝牙连接接收第二电子设备发送的人民币数字证书。168.图7所示实施例提供的数字人民币的支付装置可用于执行本技术图1~图5所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。169.图8为本技术一个实施例提供的电子设备的结构示意图,如图8所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本技术图1~图5所示实施例提供的数字人民币的支付方法。170.其中,上述电子设备可以作为本技术图1~图5所示实施例中的第一电子设备,上述第一电子设备可以为智能手机、平板电脑或穿戴设备等智能电子设备,本实施例对上述电子设备的形式不作限定。可以理解的是,第二电子设备也可以采用相同的结构实现,本实施例在此不作赘述。171.图8示出了适于用来实现本技术实施方式的示例性电子设备的框图。图8显示的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。172.如图8所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同组件(包括存储器430、通信接口420和处理器410)的通信总线440。173.通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线440可以包括但不限于工业标准体系结构(industrystandardarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mca)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection,pci)总线。174.电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。175.存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)和/或高速缓存存储器。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本技术图1~图5所示实施例的功能。176.具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本技术图1~图5所描述的实施例中的功能和/或方法。177.处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本技术图1~图5所示实施例提供的数字人民币的支付方法。178.本技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本技术图1~图5所示实施例提供的数字人民币的支付方法。179.上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。180.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。181.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。182.可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。183.上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。184.在本技术的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本技术中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本技术中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。185.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。186.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属
技术领域:
:的技术人员所理解。187.取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。188.需要说明的是,本技术实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。189.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。190.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。191.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本技术各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。192.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。当前第1页12当前第1页12