扫码支付、信息发送及生成收款码的方法、装置和设备转让专利

申请号 : CN202010171354.8

文献号 : CN111062715B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘佳伟魏亚文孙曦林立

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

本说明书实施例公开了扫码支付、支付过程中的信息发送和生成收款码的方法、装置和设备。方案包括:终端获取码图像信息;对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息,所述码图像解析信息包含第一密钥参数;获取第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;获取区块链节点存储的加密后的收单机构访问地址信息;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。

权利要求 :

1.一种扫码支付方法,包括:

终端获取码图像信息;

对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;所述第一密钥参数由商户侧设备保管;

获取第二密钥参数;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括所述终端或支付机构的第一服务器;

根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

获取区块链节点存储的加密后的收单机构访问地址信息;

采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述收单机构访问地址信息,进行支付。

2.如权利要求1所述的方法,所述获取第二密钥参数,具体包括:向第一服务器发送获取第二密钥参数的请求;

获取所述第一服务器反馈的所述第二密钥参数。

3.如权利要求1所述的方法,所述获取区块链节点存储的加密后的收单机构访问地址信息,具体包括:获取在本次支付过程中使用的应用的支付机构标识信息;

根据所述密钥与所述支付机构标识信息,生成索引数据;

向所述区块链节点发送用于获取收单机构访问地址信息的请求;所述用于获取收单机构访问地址信息的请求中至少包括所述索引数据;

获取所述区块链节点反馈的加密后的收单机构访问地址信息。

4.如权利要求3所述的方法,所述用于获取收单机构访问地址信息的请求中,具体包括:商户索引号、商户签名和所述索引数据。

5.如权利要求1至4任一项所述的方法,所述码图像解析信息,具体包括:商户索引号和商户签名;

或者,所述码图像解析信息,具体包括:

商户索引号、交易关键参数和商户签名。

6.如权利要求1至4任一项所述的方法,所述采用所述密钥对所述加密后的收单机构访问地址信息进行解密之后,还包括:若采用所述密钥无法对所述加密后的收单机构访问地址信息进行解密,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器,以便所述第二服务器基于所述加密后的收单机构访问地址信息完成本次支付。

7.如权利要求6所述的方法,所述将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器之前,还包括:获取所述区块链节点反馈的第一字段,一个所述第一字段至少与一个加密后的收单机构访问地址信息相对应;

获取第二字段;

判断所述第一字段与所述第二字段是否相同,得到判断结果;

所述将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器,具体包括:若所述判断结果表示所述第一字段与所述第二字段相同,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器。

8.一种支付过程中的信息发送方法,包括:

区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;所述第一密钥参数由商户侧设备保管;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括所述终端或支付机构的第一服务器;

将查找到的所述加密后的收单机构访问地址信息发送至所述终端。

9.如权利要求8所述的方法,所述查找对应的加密后的收单机构访问地址信息,具体包括:获取所述信息获取请求中包含的索引数据;

查找所述索引数据对应的加密后的收单机构访问地址信息。

10.如权利要求9所述的方法,所述索引数据是基于所述密钥与支付机构的标识信息生成的。

11.如权利要求9或10所述的方法,所述查找对应的加密后的收单机构访问地址信息之后,还包括:若未查找到所述索引数据对应的加密后的收单机构访问地址信息,则将所述信息获取请求中包含的商户索引号对应的全部加密后的收单机构访问地址信息发送至所述终端。

12.如权利要求8至10任一项所述的方法,所述查找对应的加密后的收单机构访问地址信息之前,还包括:获取所述信息获取请求中包含的商户签名;

对所述商户签名进行验证;

若验证通过,则执行所述查找对应的加密后的收单机构访问地址信息的步骤。

13.一种收款码的生成方法,包括:

第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码;

获取所述第一终端的去中心化身份标识;

向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;

获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;所述商户信息包括商户索引号;

基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,第二终端根据所述第一密钥参数以及所述第二终端对应的第二密钥参数生成密钥,基于所述密钥和支付机构ID得到索引数据,基于所述索引数据和所述商户索引号从区块链节点获取加密后的收单机构访问地址信息,并采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID。

14.如权利要求13所述的方法,所述商户信息,具体包括:商户索引号;

所述基于所述商户信息与预存的第一密钥参数,生成收款码,具体包括:获取当前交易的交易参数;

获取所述商户索引号对应的第一密钥参数;

获取所述商户索引号对应的私钥;

根据所述私钥生成商户签名;

生成收款码,所述收款码携带的信息包括所述商户索引号、所述第一密钥参数、所述交易参数和所述商户签名。

15.一种电子支付方法,包括:

服务器获取终端发送的加密后的收单机构访问地址信息;所述加密后的收单机构访问地址信息是所述终端从区块链节点获取的;

确定与所述服务器对应的密钥;具体地,获取所述终端发送的第一密钥参数;获取与所述服务器对应的第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述收单机构访问地址信息,进行支付。

16.一种扫码支付装置,包括:

码图像信息获取模块,用于获取码图像信息;

码图像信息解析模块,用于对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;所述第一密钥参数由商户侧设备保管;

第二密钥参数获取模块,用于获取第二密钥参数;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括支付应用所在的终端或支付机构的第一服务器;

密钥生成模块,用于根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

密文获取模块,用于获取区块链节点存储的加密后的收单机构访问地址信息;

密文解密模块,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

支付模块,用于基于所述收单机构访问地址信息,进行支付。

17.如权利要求16所述的装置,所述密文获取模块,具体包括:支付机构标识信息获取单元,用于获取在本次支付过程中使用的应用的支付机构标识信息;

索引数据生成单元,用于根据所述密钥与所述支付机构标识信息,生成索引数据;

密文请求信息发送单元,用于向所述区块链节点发送用于获取收单机构访问地址信息的请求,所述用于获取收单机构访问地址信息的请求中至少包括所述索引数据;

密文获取单元,用于获取所述区块链节点反馈的加密后的收单机构访问地址信息。

18.如权利要求16或17所述的装置,所述装置还可以包括:密文发送模块,用于若采用所述密钥无法对所述加密后的收单机构访问地址信息进行解密,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器,以便所述第二服务器基于所述加密后的收单机构访问地址信息完成本次支付。

19.一种支付过程中的信息发送装置,包括:

请求接收模块,区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

信息查找模块,基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;

对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;所述第一密钥参数由商户侧设备保管;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括所述终端或支付机构的第一服务器;

信息发送模块,将查找到的所述加密后的收单机构访问地址信息发送至所述终端。

20.如权利要求19所述的装置,所述信息查找模块,具体包括:索引数据获取单元,用于获取所述信息获取请求中包含的索引数据;索引数据是基于所述密钥与支付机构的标识信息生成的;

信息查找单元,具体用于查找所述索引数据对应的加密后的收单机构访问地址信息。

21.如权利要求20所述的装置,所述信息发送模块还用于,若信息查找单元未查找到所述索引数据对应的加密后的收单机构访问地址信息,则将所述信息获取请求中包含的商户索引号对应的全部加密后的收单机构访问地址信息发送至所述终端。

22.一种收款码的生成装置,包括:

指令获取模块,第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码;

去中心化身份标识获取模块,获取所述第一终端的去中心化身份标识;

去中心化身份标识发送模块,向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;

商户信息获取模块,获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;所述商户信息包括商户索引号;

收款码生成模块,基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,第二终端根据所述第一密钥参数以及所述第二终端对应的第二密钥参数生成密钥,基于所述密钥和支付机构ID得到索引数据,基于所述索引数据和所述商户索引号从区块链节点获取加密后的收单机构访问地址信息,并采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息。

23.一种电子支付装置,包括:

密文信息获取模块,用于获取终端发送的加密后的收单机构访问地址信息;所述加密后的收单机构访问地址信息是所述终端从区块链节点获取的;

密钥确定模块,用于确定与服务器对应的密钥;具体地,获取所述终端发送的第一密钥参数;获取与所述服务器对应的第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

解密模块,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

支付模块,用于基于所述收单机构访问地址信息,进行支付。

24.一种用户终端,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述用户终端能够:获取码图像信息;

对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;所述第一密钥参数由商户侧设备保管;

获取第二密钥参数;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括所述终端或支付机构的第一服务器;

根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

获取区块链节点存储的加密后的收单机构访问地址信息;

采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述收单机构访问地址信息,进行支付。

25.一种区块链节点,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述区块链节点能够:获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;所述第一密钥参数由商户侧设备保管;所述第二密钥参数由支付机构侧设备保管;所述支付机构侧设备包括所述终端或支付机构的第一服务器;

将查找到的所述加密后的收单机构访问地址信息发送至所述终端。

26.一种终端,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述终端能够:获取收款码生成指令;所述收款码生成指令用于指示所述终端生成收款码;

获取所述终端的去中心化身份标识;

向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;

获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;所述商户信息包括商户索引号;

基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,第二终端根据所述第一密钥参数以及所述第二终端对应的第二密钥参数生成密钥,基于所述密钥和支付机构ID得到索引数据,基于所述索引数据和所述商户索引号从区块链节点获取加密后的收单机构访问地址信息,并采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息。

27.一种服务器,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述服务器能够:获取终端发送的加密后的收单机构访问地址信息;所述加密后的收单机构访问地址信息是所述终端从区块链节点获取的;

确定与所述服务器对应的密钥;具体地,获取所述终端发送的第一密钥参数;获取与所述服务器对应的第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;

采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;所述收单机构访问地址信息中包含主地址信息和商户ID;

基于所述收单机构访问地址信息,进行支付。

说明书 :

扫码支付、信息发送及生成收款码的方法、装置和设备

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种扫码支付、支付过程中的信息发送以及生成收款码的方法、装置和设备。

背景技术

[0002] 现有技术中,电子支付已经被广泛应用在各种场合。其中,采用二维码等码图像进行扫码支付的方式尤为普及。实际应用中,每个商户可以在收款的位置显示商户自身的二维码,消费者可以通过对二维码的扫描完成支付。
[0003] 随着支付技术的演进,一个二维码可以支持多个支付机构的支付渠道。即,用户对一个二维码进行扫描后,即可以选择支付渠道A(例如某某银行)进行支付,也可以选择支付渠道B(例如某平台的电子钱包)进行支付。为了使一个二维码可以支持多个支付渠道,需要在支付网络的节点中同时存储一个商户所支持的多个支付渠道信息。这些支付渠道信息对于商户或者支付机构来说,属于隐私信息。
[0004] 但是,如何对扫码支付过程中涉及的隐私信息从数据的角度进行保护,是亟待解决的技术问题。

发明内容

[0005] 有鉴于此,本申请实施例提供了一种扫码支付、支付过程中的信息发送以及生成收款码的方法、装置和设备方法、装置和设备,用于从数据角度保护了扫码支付过程中涉及的隐私数据的私密性。
[0006] 为解决上述技术问题,本说明书实施例是这样实现的:
[0007] 本说明书实施例提供的一种扫码支付方法,包括:终端获取码图像信息;对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;获取第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;获取区块链节点存储的加密后的收单机构访问地址信息;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。
[0008] 本说明书实施例提供的一种支付过程中的信息发送方法,包括:区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0009] 本说明书实施例提供的一种收款码的生成方法,包括:第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码;获取所述第一终端的去中心化身份标识;向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0010] 本说明书实施例提供的一种电子支付方法,包括:服务器获取终端发送的加密后的收单机构访问地址信息;确定与所述服务器对应的密钥;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。
[0011] 本说明书实施例提供的一种扫码支付装置,包括:码图像信息获取模块,用于获取码图像信息;码图像信息解析模块,用于对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;第二密钥参数获取模块,用于获取第二密钥参数;密钥生成模块,用于根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;密文获取模块,用于获取区块链节点存储的加密后的收单机构访问地址信息;密文解密模块,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;支付模块,用于基于所述收单机构访问地址信息,进行支付。
[0012] 本说明书实施例提供的一种支付过程中的信息发送装置,包括:请求接收模块,区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;信息查找模块,基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;信息发送模块,将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0013] 本说明书实施例提供的一种收款码的生成装置,包括:指令获取模块,第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码;去中心化身份标识获取模块,获取所述第一终端的去中心化身份标识;去中心化身份标识发送模块,向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;商户信息获取模块,获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;收款码生成模块,基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0014] 本说明书实施例提供的一种电子支付装置,密文信息获取模块,用于获取终端发送的加密后的收单机构访问地址信息;密钥确定模块,用于确定与服务器对应的密钥;解密模块,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;支付模块,用于基于所述收单机构访问地址信息,进行支付。
[0015] 本说明书实施例提供的一种用户终端,包括:
[0016] 至少一个处理器;以及,
[0017] 与所述至少一个处理器通信连接的存储器;其中,
[0018] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述用户终端能够:获取码图像信息;对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;获取第二密钥参数;根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;获取区块链节点存储的加密后的收单机构访问地址信息;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。
[0019] 本说明书实施例提供的一种区块链节点,包括:
[0020] 至少一个处理器;以及,
[0021] 与所述至少一个处理器通信连接的存储器;其中,
[0022] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述区块链节点能够:获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0023] 本说明书实施例提供的一种终端,包括:
[0024] 至少一个处理器;以及,
[0025] 与所述至少一个处理器通信连接的存储器;其中,
[0026] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述终端能够:获取收款码生成指令;所述收款码生成指令用于指示所述终端生成收款码;获取所述终端的去中心化身份标识;向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0027] 本说明书实施例提供的一种服务器,包括:
[0028] 至少一个处理器;以及,
[0029] 与所述至少一个处理器通信连接的存储器;其中,
[0030] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述服务器能够:获取终端发送的加密后的收单机构访问地址信息;确定与所述服务器对应的密钥;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。
[0031] 本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:提供了一种扫码支付过程的隐私保护方案,在区块链节点上存储的是加密后的收单机构访问地址信息,由于是以密文形式存储,区块链节点无法基于其上存储的某商户或某支付机构对应的数据来分析得出该商户或该支付机构的隐私数据,从而确保了商户和支付机构的数据隐私,即可以确保存储在区域块链节点中的信息的安全性。由此,从数据角度保护了扫码支付过程中涉及的隐私数据的私密性。

附图说明

[0032] 此处所述明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0033] 图1为本说明书实施例提供的一种扫码支付方法的流程示意图;
[0034] 图2为本说明书实施例提供的一种支付过程中的信息发送方法的流程示意图;
[0035] 图3为本说明书实施例提供的一种收款码的生成方法的流程示意图;
[0036] 图4为本说明书实施例中提供的扫码支付方案的应用场景的示意图;
[0037] 图5为本说明书实施例提供的对应于图1的一种扫码支付装置结构示意图;
[0038] 图6为本说明书实施例提供的对应于图2的一种支付过程中的信息发送装置的结构示意图;
[0039] 图7为本说明书实施例提供的对应于图3的一种收款码的生成装置的结构示意图;
[0040] 图8为本说明书实施例提供的一种网络支付设备的结构示意图。

具体实施方式

[0041] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0042] 在本申请的说明书中,使用了术语第一、第二等来描述各种信息、参数、字段、指令、终端等,但是这些信息、参数、字段、指令、终端不应受这些术语的限制。这些术语用来将一个信息、参数、字段、指令、终端与另一信息、参数、字段、指令、终端区分开。因此,在不脱离本公开的教导的情况下,下面讨论的第一信息、参数、字段、指令、终端也可以被称为第二信息、参数、字段、指令、终端。
[0043] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0044] 图1为本说明书实施例提供的一种扫码支付方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于用户终端的程序。在本申请的实施例中,用户终端具体指的是进行扫码支付的用户所使用的终端,也即,安装有支付应用(支付APP)的终端。
[0045] 如图1所示,该流程可以包括以下步骤:
[0046] 步骤102:终端获取码图像信息。
[0047] 在扫码支付场景下,可以使用用户终端扫描收款方的收款码,以得到码图像信息。其中,所述用户终端可以包括智能电话。所述收款方可以包括商户。所述收款码可以包括二维码、条形码等任意形式的码。所述获取码图像信息可以是获取收款码的图像信息。
[0048] 其中,所述收款码可以呈现在印刷品上,也可以呈现在商户终端设备的显示屏上,作为示例,下文的描述中均假设收款码呈现于商户终端上的情况。
[0049] 步骤104:对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息,所述码图像解析信息包含第一密钥参数。
[0050] 用户终端获取到码图像信息后,可以对获取的码图像信息进行解析以得到其中包含的码图像解析信息。所述码图像解析信息可以包括与当前商户以及当前交易相关的信息。
[0051] 在实施例中,所述码图像解析信息可以包括第一密钥参数。所述第一密钥参数可以被用于生成密钥,该生成的密钥可以被用于对加密后的收单机构访问地址信息进行解密。所述第一密钥参数可以是与当前商户对应的密钥。每个商户可以对应一个第一密钥参数,不同的商户可以对应不同的第一密钥参数。
[0052] 可选地,用户终端从商户终端获取第一参数密钥的过程,可以利用密钥交换协议进行,以确保密钥的安全性。例如,第一密钥参数为y,那么实际在携带在码图像信息中进行传输的可以是处理后的第一密钥参数,例如gy,其中g是一个大数,具体地,为大素数,例如,大于10000000的素数。素数被利用在密码学上,对要传递的信息(密码)进行编码时加入素数,编码之后进行信息传递,使得信息的破解过程成为寻找素数的过程,由此,将会因为找素数的过程(分解质因数)过久,使即使取得信息也会无意义。因此,基于对大素数的使用,能够确保信息(密码)传输的安全性。
[0053] 步骤106:获取第二密钥参数。
[0054] 所述第二密钥参数可以与前述第一密钥参数一起被用于生成密钥,该生成的密钥可以被用于对加密后的收单机构访问地址信息进行解密。所述第二密钥参数可以是与当前支付应用对应的密钥。每个支付应用可以对应一个第二密钥参数,不同的支付应用可以对应不同的第二密钥参数。例如,支付机构A的APP可以对应一个第二密钥参数、支付机构B的APP可以对应一个另外的第二密钥参数。
[0055] 可选地,所述获取第二密钥参数,具体可以包括:获取所述终端本地存储的第二密钥参数。即,安装有支付应用的用户终端中,可以预先存储有与所述支付应用对应的第二密钥参数。
[0056] 可选地,所述获取第二密钥参数,具体可以包括:向第一服务器发送获取第二密钥参数的请求;获取所述第一服务器反馈的所述第二密钥参数。其中,所述第一服务器可以是与所述支付应用对应的支付机构的服务器,即,所述第一服务器可以是所述支付应用所属的支付机构的服务器。例如,支付应用可以为支付宝APP,支付机构可以为支付宝,第一服务器可以是支付宝的服务器。
[0057] 可选地,支付机构也可以根据不同的商户索引存储不同的第二密钥参数。
[0058] 步骤108:根据所述第一密钥参数与所述第二密钥参数,计算得到密钥。
[0059] 在本申请的实施例中,在用户终端获取了与商户对应的第一密钥参数(例如,处理后的第一密钥参数),并获取了与自身对应的第二密钥参数,可以基于第一密钥参数和第二密钥参数来得到密钥,该密钥可以用于对加密后的收单机构访问地址信息进行解密。
[0060] 例如,沿用上例,处理后的第二密钥参数为gy,所述第二密钥参数可以记为x,则可以计算得到密钥可以为(gy)x=gxy。
[0061] 步骤110:获取区块链节点存储的加密后的收单机构访问地址信息。
[0062] 其中,在区块链节点上存储的收单机构访问地址信息是预先经过加密处理得到的密文信息,并且在将收单机构访问地址信息从区块链节点返回至用户终端时,也是以密文的形式。下文中的密文信息,指的是加密后的收单机构访问地址信息。由此使得,无论在存储状态下还是在信息传输过程中,收单机构访问地址信息无法被对手机构等获取,确保了保密性。
[0063] 在实施例中,收单机构访问地址信息中可以包含主地址信息与商户ID。例如,收单机构访问地址可以是:https://alipay.com/123456,其中,“alipay.com”是主支付地址,“123456”是商户ID。收单机构访问地址的格式不限于此示例。
[0064] 步骤112:采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息。
[0065] 其中,在安装有支付应用的用户终端本地生成的用于对加密后的收单机构访问地址信息进行解密的密钥,与区块链节点存储的加密后的收单机构访问地址信息被加密时使用的密钥,是相同的,由此,可以利用该生成的密钥对获取的加密后的收单机构访问地址信息进行解密,从而获得收单机构访问地址信息。
[0066] 步骤114:基于所述收单机构访问地址信息,进行支付。
[0067] 具体地,用户可以在用户终端访问该解密得到的收单机构访问地址,并在该地址对应的页面中完成支付操作,此处完成支付操作的方法可以参照现有技术,本说明书中不再进行具体说明。
[0068] 在本申请的上述实施例中,信息在区块链节点上的存储状态下以及将信息从区块链节点向用户终端传输的过程中,收单机构访问地址均是以密文的形式存在,确保了私密性。并且,由于是以密文形式存储,区块链节点无法基于其上存储的某商户或某支付机构对应的数据来分析得出该商户或该支付机构的隐私数据,从而确保了商户和支付机构的隐私数据的私密性,即确保存储在区域块链节点中的信息的安全性。再者,用于密文进行解密的密钥并非存储在某一个终端或服务器中,而是在支付前采用步骤102、步骤104、步骤106和步骤108来生成,其中用于生成密钥的第一密钥参数和第二密钥参数分别由商户侧(例如,商户终端或服务器)和支付机构侧(例如,支付机构的支付应用所在的用户终端本地,或者支付机构的服务器)保管,通过将密钥参数分散管理且在使用时即时生成的方式,确保了用于解密密文的密钥的安全性。
[0069] 基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
[0070] 在实际应用中,区块链节点中可以存储有许多不同的支付机构各自对应的收单机构访问地址的密文,安装有支付应用的用户终端可以从区块链节点中获取与支付应用对应的收单机构访问地址的密文。在本说明书的实施例中,所述与支付应用对应的收单机构访问地址中的所述收单机构,可以是所述支付机构。
[0071] 具体地,根据本申请的实施例,所述获取区块链节点存储的加密后的收单机构访问地址信息(步骤110),具体可以包括:获取在本次支付过程中使用的应用的支付机构标识信息;根据所述密钥与所述支付机构标识信息,生成索引数据;向所述区块链节点发送用于获取收单机构访问地址信息的请求,所述用于获取收单机构访问地址信息的请求中至少包括所述索引数据;获取所述区块链节点反馈的加密后的收单机构访问地址信息。
[0072] 该实施例中,当向区块链节点发送用于获取收单机构访问地址信息的请求时,可以在请求中携带基于与支付应用对应的支付机构标识信息生成的索引数据,使得区块链节点可以基于该索引数据来返回与所述支付应用(或者说,支付机构)对应的加密后的收单机构访问地址信息。
[0073] 作为一个具体示例,沿用上例中计算得到密钥为gxy,支付机构标识记为“支付机构ID”,那么可以通过例如密钥派生函数(Key Derivation Function,KDF)来生成索引数据Index,即,Index←KDF(gxy,支付机构ID),以在获取请求中携带该索引数据。然后在区块链节点中,查找与该索引数据对应的加密的索引数据Index并返回。
[0074] 在实际应用中,每个商户可以与多个支付机构具有合作关系,这种情况下,区块链中可以与商户对应地、且与支付机构对应地来存储加密后的收单机构访问地址信息。具体地,例如可以以商户索引号作为第一层目录、以索引数据作为第二层目录来存储加密后的收单机构访问地址信息。
[0075] 根据可选的实施例,步骤102和步骤104中,对从商户侧获取的码图像进行解析得到的码图像解析信息中,还可以包括商户索引号。所述商户索引号可以是用于识别商户的编号。在一个指定范围的网络支付系统中,一个商户具有唯一的一个商户索引号,不同的商户具有不同的商户索引号。例如,在由A银行机构、电子支付平台A和电子支付平台B三者合作的网络支付系统中,对于由A银行机构、电子支付平台A和电子支付平台B三者来说,某一确定商户的商户索引号可以是相同的。
[0076] 在可选的实施例中,所述码图像解析信息中还可以包括交易关键参数。所述交易关键参数可以包括交易订单编号、交易建立时间、交易金额等。
[0077] 在可选的实施例中,所述码图像解析信息中还可以包括商户签名。在实践中,当响应于信息请求方的请求来返回请求信息之前,信息发送方可以先对信息请求方的身份进行验证,以确保信息安全。在本申请的实施例中,在后续区块节点向用户终端发送加密后的收单机构访问地址信息前,可以先对商户签名进行验签,当验签通过的情况下,向用户终端发送所述加密后的收单机构访问地址信息。在本申请的实施例中,对商户进行验签可以验证区块链节点接收到的商户索引号的来源的真实性,以保障收单机构访问地址信息的安全。
[0078] 在本申请的实施例中,所述用于获取收单机构访问地址信息的请求中,具体可以包括:商户索引号、商户签名和所述索引数据。由此,当区块链节点接收到该请求后,可以基于所述商户索引号和所述索引数据,来查找到对应商户下面的对应Index下的密文,并返回给用户终端。
[0079] 在本申请的一个或多个实施例中,提供了一种扫码支付过程的隐私保护方案,在区块链节点上存储的是加密后的收单机构访问地址信息,由于是以密文形式存储,区块链节点无法基于其上存储的某商户或某支付机构对应的数据来分析得出该商户或该支付机构的隐私数据,从而确保了商户和支付机构的数据隐私,即可以确保存储在区域块链节点中的信息的安全性。并且,商户侧和支付机构侧分别存储用于生成密钥的部分密钥参数,密钥参数通过密钥协议来传输,双方均不知道对方的密钥参数,商户与支付机构彼此间实现了信息保密。
[0080] 在实际应用中,当区块链节点响应于用户终端发送的请求查找相应的密文信息时,有可能无法查找到与请求中携带的索引数据所对应的密文。在这种情况下,可以返回与请求中携带的商户索引号对应的商户下的所有密文,并将符合一定条件的密文数据发送至与当前支付应用所属支付机构的关联支付机构的服务器,来进行解密。例如,当前支付应用为“支付宝APP”,其所述的支付机构为“支付宝”,相应的服务器为支付宝服务器(在本申请中可以称为“第一服务器”);与当前支付应用所述的支付机构关联的支付机构可以为“支付宝国际”,相应的服务器为支付宝国际服务器(在本申请中可以称为“第二服务器”)。在本申请的实施例中,当前支付应用对应的支付机构的服务器可以称为当前支付应用的第一服务器,当前支付应用所属支付机构的关联支付机构的服务器可以称为当前支付应用的第二服务器。
[0081] 根据实施例,所述采用所述密钥对所述加密后的收单机构访问地址信息进行解密(步骤112)之后,还可以包括:若采用所述密钥无法对所述加密后的收单机构访问地址信息进行解密,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器,以便所述第二服务器基于所述加密后的收单机构访问地址信息完成本次支付。
[0082] 其中,用户终端无法采用本地生成的密钥对加密后的收单机构访问地址信息进行解密,可以是,无法从区块链节点上查找到并返回可以使用用户终端本地生成的密钥进行解密的加密后的收单机构访问地址信息。
[0083] 例如,对于一个国外的店铺,实际上可以使用例如“支付宝国际APP”来进行支付,相应地,支付时访问的收单机构访问地址可以基于与支付宝国际相对应的信息来获取到。在实际使用时,若使用的支付应用为“支付宝APP”(即,可用于中国境内支付),那么基于该国外店铺对应的第一密钥参数和该国内支付应用对应的第二密钥参数生成密钥,进而基于该密钥与支付应用ID生成索引数据后,将无法在区块链节点上查找到与该索引数据对应的密文。在这种情况下,可以将与商户对应的密文数据返回至用户终端,进而发送至当前支付应用的第二服务器,在该示例中,可以发送至支付宝国际的服务器,则可以由支付宝国际的服务器对该密文进行解密,使得可以完成后续支付。
[0084] 在实际应用中,并非要将当前商户下所有加密的收单机构地址访问均发送至所述第二服务器,而是可以仅发送满足一定条件的部分密文。
[0085] 在本申请的实施例中,对于存储于区块链节点上的每个Index以及对应的加密后的收单机构访问地址信息,均可以额外存储一个相应的第一字段,所述一个第一字段至少与一个加密后的收单机构访问地址信息相对应。所述第一字段可以是预先基于当前支付应用对应的支付机构及其关联机构的关联字段生成的。一个支付机构与该支付机构的关联机构可以具有相同的关联字段,该关联字段可以存储在支付机构及其关联机构的服务器上,和/或可以存储在该支付机构的相应的支付应用所在的用户终端中。
[0086] 根据实施例,所述将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器之前,还可以包括:获取所述区块链节点反馈的第一字段,一个所述第一字段至少与一个加密后的收单机构访问地址信息相对应;获取第二字段;判断所述第一字段与所述第二字段是否相同,得到判断结果;若所述判断结果表示所述第一字段与所述第二字段相同,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器。
[0087] 其中,获取第二字段的过程可以包括,基于当前支付应用对应的支付机构的关联字段,并基于从商户处获得的第一密钥参数(例如,处理后的第一密钥参数),生成第二字段。在支付应用中生成该第二字段的方式与区块链节点中存储的预先生成的第一字段的生成方式相同。举例,若来自商户的处理后的第一密钥参数为gy,当前支付应用对应的支付机构的关联密钥为T,可以通过例如哈希算法来生成第一字段/第二字段,例如,预先生成存储于区块链节点的第一字段Q1←Hash(T,gy),在支付应用所在用户终端生成第二字段Q2←yHash(T,g)。若第二字段与第一字段相同,说明第一字段对应的Index下的加密后的收单机构访问地址信息可以被当前支付应用的支付机构或其关联机构解密。因此,在当前支付应用对应的支付机构无法解密时,则将其发送至当前支付机构的关联机构。在实施例中,若一个第一字段与两个加密后的收单机构访问地址信息相对应,亦即当前支付机构有另外的一个关联机构,则在当前支付机构无法解密时,可以将符合条件的密文发送至所述另外的一个关联机构。可选地,若一个第一字段与多于两个加密后的收单机构访问地址信息相对应,亦即当前支付机构有另外的至少两个关联机构,在当前支付机构无法解密时,可以将符合条件的密文依次发送至所述另外的至少两个关联机构。
[0088] 在本申请的实施例中,使用代理支付的电子支付方法,通过当前支付应用的支付机构的关联机构的服务器(第二服务器)进行付款的情况,可以称为代理支付。该方案的实施使得,即便跨国使用支付应用(例如,在国外使用国内版的支付应用),也依然能够实现付款,且在用户端无感知。
[0089] 为了更清楚地描述上述使用代理支付的电子支付方法。下面从第二服务器的角度来描述该方法。从程序的角度而言,方法的执行主体是第二服务器。
[0090] 具体地,第二服务器(即,代理服务器)获取用户终端发送的加密后的收单机构访问地址信息;确定与所述服务器对应的密钥;采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;基于所述收单机构访问地址信息,进行支付。
[0091] 其中,第二服务器可以经由当前支付应用所在的用户终端来获取存储于区块链节点上的加密后的收单机构访问地址信息以及对应的第一字段。具体地,第二服务器可以获取的是与用户终端计算得到的第二字段相等的第一字段及其对应的加密后的收单机构访问地址信息。
[0092] 其中,所述确定与所述服务器对应的密钥,具体可以包括:获取所述用户终端发送的第一密钥参数;获取与所述服务器对应的第三密钥参数;根据所述第一密钥参数与所述第三密钥参数,计算得到密钥。其中,用户终端发送的第一密钥参数是从商户终端获取来的、与商户对应的密钥参数,沿用上文的示例,可以记为gy。其中,第三密钥参数是与第二服务器对应的(即,与关联机构对应的)密钥参数,例如,可以记为x'。则可以计算得到密钥为(gy)x'=gx'y。
[0093] 与前述扫码支付方法对应的,本申请提供了一种支付过程中的信息发送方法。图2为本说明书实施例提供的一种支付过程中的信息发送方法的流程示意图。从程序角度而言,该流程的执行主体可以为区块链节点。
[0094] 如图2所示,该流程可以包括以下步骤:
[0095] 步骤202:区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息。
[0096] 其中,所述终端是安装有支付应用的用户终端。
[0097] 步骤204:基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同。
[0098] 其中,所述第一密钥参数的初始存储设备是商户终端,所述第一密钥参数与商户终端的商户索引号对应。所述第二密钥参数初始存储设备是当前支付应用所在的用户终端或当前支付应用所属支付机构的服务器,所述第二密钥参数与当前支付应用对应。用户终端可以从商户终端获取的所述第一密钥参数,并且用户终端可以获取本地存储的或者从支付应用对应的支付机构的服务器处获取所述第二密钥参数,然后基于所述第一密钥参数与第二密钥参数计算得到的密钥。
[0099] 其中,对所述收单机构访问地址信息进行加密所使用的密钥,实际上也是基于第一密钥参数和第二密钥参数预先生成并进行使用的。
[0100] 步骤206:将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0101] 在实施例中,所述查找对应的加密后的收单机构访问地址信息(步骤204),具体可以包括:获取所述信息获取请求中包含的索引数据;查找所述索引数据对应的加密后的收单机构访问地址信息。其中,所述索引数据是基于所述密钥与支付机构的标识信息生成的。
[0102] 在实施例中,所述查找对应的加密后的收单机构访问地址信息(步骤206)之后,还可以包括:若未查找到所述索引数据对应的加密后的收单机构访问地址信息,则将所述信息获取请求中包含的商户索引号对应的全部加密后的收单机构访问地址信息发送至所述终端。
[0103] 在实施例中,所述查找对应的加密后的收单机构访问地址信息(步骤206)之前,还可以包括:获取所述信息获取请求中包含的商户签名;对所述商户签名进行验证;若验证通过,则执行所述查找对应的加密后的收单机构访问地址信息的步骤。
[0104] 由于该支付过程中的信息发送方法的实施例与上文中的扫码支付方法的实施例具有相同或相应的技术特征,可以达到与前述扫码支付方法的实施例相同的技术效果。具体地,该支付过程中的信息发送方法中,区块链节点上存储的是加密后的收单机构访问地址信息,由于是以密文形式存储,使得,区块链节点无法基于其上存储的某商户或某支付机构对应的数据来分析得出该商户或该支付机构的隐私数据,从而确保了商户和支付机构的数据隐私,即可以确保存储在区域块链节点中的信息的安全性。由此,从数据角度保护了扫码支付过程中涉及的隐私数据的私密性。
[0105] 与上述扫码支付方法和支付过程中的信息发送方法对应的,本申请提供了一种收款码的生成方法。图3为本说明书实施例提供的一种收款码的生成方法的流程示意图。从程序角度而言,流程的执行主体可以为商户终端。
[0106] 如图3所示,该流程可以包括以下步骤:
[0107] 步骤302:第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码。
[0108] 在本实施例中,所述第一终端指的是商户侧的终端,商户终端可以生成并出示收款码;下文中的第二终端指的是用户侧的终端,即,安装有支付应用的终端。
[0109] 步骤304:获取所述第一终端的去中心化身份标识。
[0110] 其中,去中心化身份标识(Decentralized Identifier,DID)是一种新类型的标识符,具有全局唯一性、高可用性、可解析性和加密可验证性。DIDs通常与加密材料(如公钥)和服务端点相关联,以建立安全的通信信道。DIDs对于任何受益于自管理、加密可验证的标识符(如个人标识符、组织标识符和物联网场景标识符)的应用程序都很有用。例如,当前W3C可验证凭据的商业部署大量使用DIDs来标识人员、组织和事物,并实现许多安全和隐私保护保证。
[0111] 步骤304中所述获取所述终端的去中心化身份标识,即获取所述商户终端的全局唯一的标识符。
[0112] 步骤306:向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识。
[0113] 步骤308:获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息。
[0114] 在区域块链节点中,存储有去中心化身份标识文档(DID文档),DID文档中可以包括DID标识、加密材料的集合(例如,公钥)、加密协议的集合、服务端点的集合、时间戳以及选的用于证明该DID文档合法性的签名。在实际应用中,可以基于DID标识作为键,在区块链节点上查找到相应的DID文档。然后可以从该DID文档中,获取到商户终端的商户信息。
[0115] 要说明的是,在此所述的存储有DID文档的区块链节点与上文描述的存储加密后的收单机构访问地址信息的区块链节点可以是不同的区块链节点。
[0116] 步骤310:基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0117] 在实施例中,所述商户信息具体可以包括商户索引号。
[0118] 相应地,所述基于所述商户信息与预存的第一密钥参数生成收款码,具体可以包括:获取当前交易的交易参数;获取所述商户索引号对应的第一密钥参数;获取所述商户索引号对应的私钥;根据所述私钥生成商户签名;生成收款码,所述收款码携带的信息包括所述商户索引号、所述第一密钥参数、所述交易参数和所述商户签名。
[0119] 与前述扫码支付方法和支付过程中的信息发送方法相应地,该收款码的生成方法中,基于DID来获取商户索引号等与商户相关的信息,然后基于这些信息生成收款码,使得该收款码中至少包含与该商户唯一对应的标识信息,以作为后续使得支付应用可以获取到并解密与该商户以及支付应用自身相对应的加密后的收单机构访问地址信息,从数据角度保护了扫码支付过程中涉及的隐私数据的私密性。
[0120] 为了使本申请的描述方案更加清楚,图4为本说明书实施例中提供的扫码支付方案的应用场景的示意图。以下参照图4进行整体方案的描述。
[0121] 参照图4,本申请实施例提供的扫码支付方案具体可以包括如下步骤:
[0122] (1)商户终端针对当前交易生成收款码,所述收款码中包含商户索引号信息、商户签名信息、第一密钥参数信息以及交易关键参数信息。所述第一密钥参数信息可以与所述商户索引号对应,即,不同的商户索引号对应不同的第一密钥参数。
[0123] (2)通过安装有支付应用的用户终端扫描所述收款码,解析得到所述收款码中包含的所述商户索引号、所述商户签名、所述第一密钥参数以及所述交易关键参数。
[0124] (3)用户终端从与支付应用对应的第一服务器获取第二密钥参数,或者用户终端获取本地存储的第二密钥参数。其中,所述第二密钥参数可以与支付应用对应,即,不同的支付应用对应于不同的第二密钥参数。
[0125] (4)用户终端基于所述第一密钥参数和第二密钥参数,生成密钥。
[0126] (5)用户终端获取支付机构ID,然后基于所述密钥和所述支付机构ID得到索引数据(即,Index)。
[0127] (6)用户终端将计算得到的所述商户索引号、所述商户签名和所述索引数据,发送至区块链节点。
[0128] (7)区块链节点验证所述商户签名通过后,获取与所述商户索引号对应的商户下的与所述索引数据对应的加密后的收单机构访问地址信息,并将获取的该密文信息发送回用户终端;对所述收单机构访问地址信息进行加密所使用的密钥,与用户终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的。
[0129] (8)用户终端利用所述密钥对接收到的密文信息进行解密,得到收单机构访问地址信息,使得基于所述收单机构访问地址信息完成支付。
[0130] 另外,在实际应用中,可能无法在区块链中找到与获取请求中的索引数据对应的密文,此时可以使用代理支付。在应用代理支付的场景中,相应的,在区块链节点上,与每个索引数据以及相应密文对应地,存储有一个第一字段。该第一字段可以用于表示相应密文中包含的收单机构地址所对应的支付机构及其关联机构。也就是说,一个支付机构及其关联机构可以对应于一个第一字段,一个第一字段可以对应于至少一个支付机构(因为该支付机构可能存在关联机构)。
[0131] 继续上述实施例,如果在区块链节点上,在某确定商户下找不到与接收到的索引数据对应的密文,则在图4的步骤(7)中返回该商户下的所有数据,返回的数据中包括与索引数据对应的密文,还包括与索引数据对应的第一字段。
[0132] 此后,(9)用户终端从本地或者从支付应用对应的第一服务器处获取关联字段,并基于关联字段和所述密钥生成第二字段,然后判断第一字段与第二字段是否相同,得到判断结果;
[0133] (10)若所述判断结果为第一字段与第二字段相同,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的支付应用的第二服务器,以便所述第二服务器对所述加密后的收单机构访问地址信息进行解密,进而完成本次支付。
[0134] 在一些情况下,在权利要求书和说明书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果,另外,在附图中描述的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施例中,多任务处理和并行处理也是可以的或者是可能的。
[0135] 基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图5为本说明书实施例提供的对应于图1的一种扫码支付装置结构示意图。如图5所示,该装置可以包括:
[0136] 码图像信息获取模块502,用于获取码图像信息;
[0137] 码图像信息解析模块504,用于对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;
[0138] 第二密钥参数获取模块506,用于获取第二密钥参数;
[0139] 密钥生成模块508,用于根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;
[0140] 密文获取模块510,用于获取区块链节点存储的加密后的收单机构访问地址信息;
[0141] 密文解密模块512,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;
[0142] 支付模块514,用于基于所述收单机构访问地址信息,进行支付。
[0143] 根据实施例,所述第二密钥参数获取模块506具体可以用于:获取所述终端本地存储的第二密钥参数;或者,具体可以用于:向第一服务器发送获取第二密钥参数的请求;获取所述第一服务器反馈的所述第二密钥参数。
[0144] 根据实施例,所述密文获取模块510,具体可以包括:
[0145] 支付机构标识信息获取单元,用于获取在本次支付过程中使用的应用的支付机构标识信息;
[0146] 索引数据生成单元,用于根据所述密钥与所述支付机构标识信息,生成索引数据;
[0147] 密文请求信息发送单元,用于向所述区块链节点发送用于获取收单机构访问地址信息的请求,所述用于获取收单机构访问地址信息的请求中至少包括所述索引数据;
[0148] 密文获取单元,用于获取所述区块链节点反馈的加密后的收单机构访问地址信息。
[0149] 根据实施例,所述用于获取收单机构访问地址信息的请求中具体可以包括:商户索引号、商户签名和所述索引数据。
[0150] 根据实施例,所述码图像解析信息,具体可以包括:商户索引号和商户签名;或者,所述码图像解析信息,具体可以包括:商户索引号、交易关键参数和商户签名。
[0151] 根据实施例,所述扫码支付装置还可以包括:密文发送模块,用于若采用所述密钥无法对所述加密后的收单机构访问地址信息进行解密,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器,以便所述第二服务器基于所述加密后的收单机构访问地址信息完成本次支付。
[0152] 根据实施例,所述密文获取模块510还可以用于,获取所述区块链节点反馈的第一字段,一个所述第一字段至少与一个加密后的收单机构访问地址信息相对应。所述扫码支付装置还可以包括:第二字段获取模块,用于获取第二字段;判断模块,用于判断所述第一字段与所述第二字段是否相同,得到判断结果。所述密文发送模块具体可以用于,若所述判断结果表示所述第一字段与所述第二字段相同,则将所述加密后的收单机构访问地址信息发送至本次支付过程中使用的应用的第二服务器。
[0153] 基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图6为本说明书实施例提供的对应于图2的一种支付过程中的信息发送装置的结构示意图。如图6所示,该装置可以包括:
[0154] 请求接收模块602,区块链节点获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;
[0155] 信息查找模块604,基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;
[0156] 信息发送模块606,将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0157] 根据实施例,所述信息查找模块604,具体可以包括:索引数据获取单元,用于获取所述信息获取请求中包含的索引数据;信息查找单元,具体用于查找所述索引数据对应的加密后的收单机构访问地址信息。其中,所述索引数据是基于所述密钥与支付机构的标识信息生成的。
[0158] 根据实施例,所述信息发送模块606还可以用于,若未查找到所述索引数据对应的加密后的收单机构访问地址信息,则将所述信息获取请求中包含的商户索引号对应的全部加密后的收单机构访问地址信息发送至所述终端。
[0159] 根据实施例,该装置还可以包括:商户签名获取模块,用于获取所述信息获取请求中包含的商户签名;验签模块,用于对所述商户签名进行验证。所述信息查找模块604具体可以用于,若验证通过,则执行所述查找对应的加密后的收单机构访问地址信息的步骤。
[0160] 基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图7为本说明书实施例提供的对应于图3的一种收款码的生成装置的结构示意图。如图7所示,该装置可以包括:
[0161] 指令获取模块702,第一终端获取收款码生成指令;所述收款码生成指令用于指示所述第一终端生成收款码;
[0162] 去中心化身份标识获取模块704,获取所述第一终端的去中心化身份标识;
[0163] 去中心化身份标识发送模块706,向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;
[0164] 商户信息获取模块708,获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;
[0165] 收款码生成模块710,基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0166] 根据实施例,所述商户信息具体可以包括商户索引号。所述收款码生成模块710,具体可以用于:获取当前交易的交易参数;获取所述商户索引号对应的第一密钥参数;获取所述商户索引号对应的私钥;根据所述私钥生成商户签名;生成收款码,所述收款码携带的信息包括所述商户索引号、所述第一密钥参数、所述交易参数和所述商户签名。
[0167] 基于同样的思路,与上述实施代理支付方法对应地,从代理服务器的角度,本说明书实施例还提供了对应的电子支付装置。具体地,该装置可以包括:
[0168] 密文信息获取模块,用于获取终端发送的加密后的收单机构访问地址信息;
[0169] 密钥确定模块,用于确定与服务器对应的密钥;
[0170] 解密模块,用于采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;
[0171] 支付模块,用于基于所述收单机构访问地址信息,进行支付。
[0172] 在实施例中,所述密钥确定模块,具体可以用于:获取所述终端发送的第一密钥参数;获取与所述服务器对应的第三密钥参数;根据所述第一密钥参数与所述第三密钥参数,计算得到密钥。
[0173] 基于同样的思路,本说明书实施例还提供了上述方法和装置对应的设备。
[0174] 图8为本说明书实施例提供的一种网络支付设备800的结构示意图。具体地,所述网络支付设备可以包括安装有支付应用的用户终端、商户终端以及存储有加密后的收单机构访问地址信息的区块链节点。可选地,所述网络支付设备还可以包括与当前支付应用对应的第一服务器。可选地,所述网络支付设备还可以包括与当前支付应用对应的第二服务器,即,代理服务器。
[0175] 如图8所示,当设备800为用户终端时,设备800可以包括:
[0176] 至少一个处理器810;以及,
[0177] 与所述至少一个处理器通信连接的存储器830;其中,
[0178] 所述存储器830存储有可被所述至少一个处理器810执行的指令820所述指令被所述至少一个处理器810执行,以使所述用户终端能够:
[0179] 获取码图像信息;
[0180] 对所述码图像信息进行解析,得到所述码图像信息中包含的码图像解析信息;所述码图像解析信息包含第一密钥参数;
[0181] 获取第二密钥参数;
[0182] 根据所述第一密钥参数与所述第二密钥参数,计算得到密钥;
[0183] 获取区块链节点存储的加密后的收单机构访问地址信息;
[0184] 采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;
[0185] 基于所述收单机构访问地址信息,进行支付。
[0186] 如图8所示,当设备800为区块链节点时,设备800可以包括:
[0187] 至少一个处理器810;以及,
[0188] 与所述至少一个处理器通信连接的存储器830;其中,
[0189] 所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述区块链节点能够:
[0190] 获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;
[0191] 基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;
[0192] 将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0193] 如图8所示,当设备800为区块链节点时,设备800可以包括:
[0194] 至少一个处理器810;以及,
[0195] 与所述至少一个处理器通信连接的存储器830;其中,
[0196] 所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述区块链节点能够:
[0197] 获取终端发送的信息获取请求;所述信息获取请求用于请求获取收单机构访问地址信息;
[0198] 基于所述信息获取请求,查找对应的加密后的收单机构访问地址信息;对所述收单机构访问地址信息进行加密所使用的密钥,与所述终端根据第一密钥参数与第二密钥参数计算得到的密钥,是相同的;所述第一密钥参数的初始存储设备与所述第二密钥参数的初始存储设备不同;
[0199] 将查找到的所述加密后的收单机构访问地址信息发送至所述终端。
[0200] 如图8所示,当设备800为商户终端时,设备800可以包括:
[0201] 至少一个处理器810;以及,
[0202] 与所述至少一个处理器通信连接的存储器830;其中,
[0203] 所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述终端能够:
[0204] 获取收款码生成指令;所述收款码生成指令用于指示所述终端生成收款码;
[0205] 获取所述终端的去中心化身份标识;
[0206] 向存储有去中心化身份标识文档的区块链节点发送所述去中心化身份标识;
[0207] 获取所述区块链节点基于所述去中心化身份标识从所述去中心化身份标识文档中查询到的商户信息;
[0208] 基于所述商户信息与预存的第一密钥参数,生成收款码;所述收款码用于被第二终端扫描后,获取加密后的收单机构访问地址信息。
[0209] 如图8所示,当设备800为代理服务器时,设备800可以包括:
[0210] 至少一个处理器810;以及,
[0211] 与所述至少一个处理器通信连接的存储器830;其中,
[0212] 所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述服务器能够:
[0213] 获取终端发送的加密后的收单机构访问地址信息;
[0214] 确定与所述服务器对应的密钥;
[0215] 采用所述密钥对所述加密后的收单机构访问地址信息进行解密,得到收单机构访问地址信息;
[0216] 基于所述收单机构访问地址信息,进行支付。
[0217] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0218] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
[0219] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0220] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0221] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0222] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0223] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0224] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0225] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0226] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0227] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0228] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0229] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0230] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0231] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。