CN113781025A - 一种可用于双离线支付下防止重复划转的方法、服务端及系统 - Google Patents
一种可用于双离线支付下防止重复划转的方法、服务端及系统 Download PDFInfo
- Publication number
- CN113781025A CN113781025A CN202110119836.3A CN202110119836A CN113781025A CN 113781025 A CN113781025 A CN 113781025A CN 202110119836 A CN202110119836 A CN 202110119836A CN 113781025 A CN113781025 A CN 113781025A
- Authority
- CN
- China
- Prior art keywords
- payment
- identification information
- verification
- information
- receiving end
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Abstract
本发明公开了一种可用于双离线支付下防止重复划转的方法、服务端及系统。所述方法包括:支付端生成支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;支付端将所述支付凭证通过本地通信传递给接收端;接收端将所述支付凭证发送给服务端;服务端对所述支付凭证进行验证,若实施的验证方式都确定验证通过,则从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户。本方法可以应用在双离线支付环境下,并且可以有效地防止服务端根据同一支付凭证多次进行数字资产的重复划转。
Description
【技术领域】
本发明涉及数字资产技术领域,尤其涉及一种可用于双离线支付下防止重复划转的方法、服务端及系统。
【背景技术】
数字资产是指以电子数据形式存在的资产,例如虚拟资产、数字货币、电子货币等。在数字资产的网络支付业务中,通常的情形是支付端(如付款方设备)和接收端(如收款方设备)中的至少一方能够与数字资产服务端(如登记中心、支付中心)进行实时通信,并向数字资产服务端发出支付数字资产或接收数字资产的请求,数字资产服务端根据收到的请求进行数字资产的实时划转。
双离线支付是指在支付端和接收端都不能与数字资产服务端进行实时通信时而进行的支付,例如行驶中的飞机、没有网络信号覆盖的偏僻山区或公海轮船或地下商场、数万人同时就餐造成网络支付堵塞的大型食堂、通信网络或数字资产服务端出现故障等情形,使得支付端和接收端都不能与数字资产服务端进行实时通信,但随着数字资产业务在金融、支付等领域的快速推进,例如支付宝、微信支付、央行数字货币及各类银行支付业务等,都有实施双离线支付的需求和必要。
但是,本案发明人发现,对于数字资产双离线支付,由于数据的可复制性,因而可能存在“重复划转”的问题,即数字资产服务端因恶意或不当操作而对数字资产重复划转的问题,例如,接收端将双离线状态下接收的同一支付凭证先后多次重复发送给数字资产服务端请求划转,从而导致数字资产服务端将数字资产多次重复划转给该接收端;又例如,接收端将双离线状态下接收的同一支付凭证复制给其他接收端(例如当使用二维码进行离线支付时对二维码进行拍照,并通过网络或其他途径将该二维码图片复制给其他接收端),由此多个接收端分别以该支付凭证发送给数字资产服务端请求划转,从而导致数字资产服务端将数字资产多次重复划转给该多个接收端。
因此,如何有效地防止数字资产双离线支付下的重复划转问题,成为必须解决的技术问题。
需要说明的是,上述背景信息仅用于加强对本发明背景技术的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术信息。
【发明内容】
本发明的主要目的在于提供一种可用于双离线支付下防止重复划转的方法、服务端及系统,进而至少在一定程度上解决由于相关技术的限制和缺陷而导致的一个或者多个技术问题,包括以下技术方案:
第一方面,提供了一种可用于双离线支付下防止重复划转的方法,应用于支付端,所述方法包括:
生成支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产,所述支付端识别信息为所述支付端的识别信息;
将所述支付凭证通过本地通信传递给接收端,以使得所述接收端将所述支付凭证发送给服务端,从而使得所述服务端根据所述支付凭证进行数字资产的划转。
优选的,所述交易识别信息包括:所述支付端生成的交易识别信息,并且在所述支付端具有唯一性;或者,所述接收端传递的交易识别信息,并且在所述接收端具有唯一性。
优选的,所述支付凭证还包括:交易时间,或/和到期时间,或/和签名值,其中,所述签名值为对待签名信息进行数字签名生成的签名值,所述待签名信息包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产。
第二方面,提供了一种可用于双离线支付下防止重复划转的方法,应用于接收端,所述方法包括:
接收支付端通过本地通信传递的支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
将所述支付凭证发送给服务端,以使得所述服务端根据所述支付凭证进行数字资产的划转。
优选的,所述交易识别信息包括:所述支付端生成的交易识别信息,并且在所述支付端具有唯一性;或者,所述接收端生成所述交易识别信息,并且在所述接收端具有唯一性,所述接收端将所述交易识别信息传递给所述支付端,所述支付端在所述支付凭证中包括所述交易识别信息。
优选的,所述支付凭证还包括:交易时间,或/和到期时间,或/和签名值,其中,所述签名值为所述支付端对待签名信息进行数字签名生成的签名值,所述待签名信息包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产。
优选的,所述将所述支付凭证发送给服务端包括:所述接收端与所述服务端建立网络连接,所述接收端通过网络将所述支付凭证发送给所述服务端;或者,所述接收端将所述支付凭证同步给中转设备,使得所述中转设备通过网络将所述支付凭证发送给所述服务端。
第三方面,提供了一种可用于双离线支付下防止重复划转的方法,应用于服务端,所述方法包括:
获取支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
对所述支付凭证进行验证,若实施的验证方式都确定验证通过,则从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户;
所述对所述支付凭证进行验证包括:
验证方式一,所述交易识别信息是支付端生成的交易识别信息,根据当前存储的支付端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储支付端验证信息,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息确定;或/和,
验证方式二,所述交易识别信息是接收端生成的交易识别信息,根据当前存储的接收端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储接收端验证信息,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息确定。
优选的,所述验证方式一还包括:第一种实施方式,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息组合生成,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述支付端验证信息,若不存在,则确定验证通过;或者,第二种实施方式,所述支付端验证信息为所述支付端识别信息与所述交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系,若不存在,则确定验证通过;或者,第三种实施方式,所述交易识别信息为递增性质的交易识别信息,所述支付端验证信息为所述支付端识别信息与所述交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:根据所述支付端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述交易识别信息大于所述对应的交易识别信息,则确定验证通过。
优选的,在所述第一种实施方式中,所述根据所述支付端识别信息和所述交易识别信息组合生成所述支付端验证信息包括:将包括所述支付端识别信息和所述交易识别信息的信息进行组合作为所述支付端验证信息;或者,将包括所述支付端识别信息和所述交易识别信息的信息进行组合并且进行哈希计算生成的哈希值作为所述支付端验证信息。
优选的,在所述第二种实施方式中,所述判断所述当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系包括:根据所述支付端识别信息从所述当前存储的支付端验证信息中获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若获取到对应的交易识别信息,但该对应的交易识别信息中不存在所述交易识别信息,则确定验证通过;或者,根据所述交易识别信息从所述当前存储的支付端验证信息中获取对应的支付端识别信息,若没有获取到对应的支付端识别信息,或者若获取到对应的支付端识别信息,但该对应的支付端识别信息中不存在所述支付端识别信息,则确定验证通过。
优选的,所述第三种实施方式还包括:所述支付端识别信息所对应的交易识别信息只允许建立一个对应的交易识别信息,所述存储支付端验证信息包括将所述支付端识别信息所对应的交易识别信息替换为所述交易识别信息;或者,所述支付端识别信息所对应的交易识别信息允许建立一个或多个对应的交易识别信息,当所述支付端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,则所述交易识别信息大于所述对应的交易识别信息为所述交易识别信息大于所述多个对应的交易识别信息中最大的交易识别信息,并且所述存储支付端验证信息包括新增所述支付端识别信息与所述交易识别信息的对应关系。
优选的,所述验证方式二还包括:第四种实施方式,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息组合生成,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述接收端验证信息,若不存在,则确定验证通过;或者,第五种实施方式,所述接收端验证信息为所述接收端识别信息与所述交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述接收端识别信息与所述交易识别信息的对应关系,若不存在,则确定验证通过;或者,第六种实施方式,所述交易识别信息为递增性质的交易识别信息,所述接收端验证信息为所述接收端识别信息与所述交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:根据所述接收端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述交易识别信息大于所述对应的交易识别信息,则确定验证通过。
优选的,在所述第四种实施方式中,所述根据所述接收端识别信息和所述交易识别信息组合生成所述接收端验证信息包括:将包括所述接收端识别信息和所述交易识别信息的信息进行组合作为所述接收端验证信息;或者,将包括所述接收端识别信息和所述交易识别信息的信息进行组合并且进行哈希计算生成的哈希值作为所述接收端验证信息。
优选的,在所述第五种实施方式中,所述判断所述当前存储的接收端验证信息中是否存在所述接收端识别信息与所述交易识别信息的对应关系包括:根据所述接收端识别信息从所述当前存储的接收端验证信息中获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若获取到对应的交易识别信息,但该对应的交易识别信息中不存在所述交易识别信息,则确定验证通过;或者,根据所述交易识别信息从所述当前存储的接收端验证信息中获取对应的接收端识别信息,若没有获取到对应的接收端识别信息,或者若获取到对应的接收端识别信息,但该对应的接收端识别信息中不存在所述接收端识别信息,则确定验证通过。
优选的,所述第六种实施方式还包括:所述接收端识别信息所对应的交易识别信息只允许建立一个对应的交易识别信息,所述存储接收端验证信息包括将所述接收端识别信息所对应的交易识别信息替换为所述交易识别信息;或者,所述接收端识别信息所对应的交易识别信息允许建立一个或多个对应的交易识别信息,当所述接收端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,则所述交易识别信息大于所述对应的交易识别信息为所述交易识别信息大于所述多个对应的交易识别信息中最大的交易识别信息,并且所述存储接收端验证信息包括新增所述接收端识别信息与所述交易识别信息的对应关系。
优选的,所述对所述支付凭证进行验证还包括:验证方式三,获取所述支付凭证发送方的身份识别信息,验证所述身份识别信息是否具有对所述接收端识别信息的数字资产划转权限;或/和,验证方式四,所述支付凭证还包括交易时间或/和到期时间,所述服务端根据所述交易时间或/和所述到期时间以及预设时长确定时间段,判断所述服务端的当前系统时间是否在所述时间段内,若是,则确定验证通过;或/和,验证方式五,所述支付凭证还包括签名值,所述签名值为支付端对待签名信息进行数字签名生成的签名值,所述待签名信息包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产,则根据所述签名值对所述支付凭证进行数字签名验证。
优选的,在所述验证方式三中,所述获取所述支付凭证发送方的身份识别信息包括:通过对所述发送方进行身份验证以获取所述发送方的身份识别信息;或者,所述支付凭证还包括对应的数字签名信息,根据所述数字签名信息验证所述支付凭证,若验证通过,则根据所述数字签名信息确定所述发送方的身份识别信息。
优选的,在所述验证方式三中,所述根据所述身份识别信息验证所述接收端识别信息是否属于所述发送方包括:判断所述身份识别信息与所述接收端识别信息是否属于同一账户,若是,则确定验证通过;或者,根据所述身份识别信息所在的账户与所述接收端识别信息的权限关系,判断所述身份识别信息所在的账户是否具有对所述接收端识别信息的数字资产划转权限,若是,则确定验证通过。
优选的,在所述验证方式四中,所述服务端根据所述交易时间或/和所述到期时间以及预设时长确定时间段包括:实施方式一,若所述支付凭证还包括交易时间,则确定所述时间段为所述交易时间之后所述预设时长内的时间段;或者,实施方式二,若所述支付凭证还包括交易时间,所述预设时长分为第一预设时长和第二预设时长,确定所述时间段为所述交易时间减去所述第一预设时长、以及所述交易时间加上所述第二预设时长之间的时间段;或者,实施方式三,若所述支付凭证还包括交易时间,所述预设时长分为第三预设时长和第四预设时长,确定所述时间段为所述交易时间加上所述第三预设时长、以及所述交易时间加上所述第三预设时长和加上所述第四预设时长之间的时间段;或者,实施方式四,若所述支付凭证还包括到期时间,则所述时间段为所述到期时间之前所述预设时长内的时间段;或者,实施方式五,若所述支付凭证还包括交易时间和到期时间,并且若所述交易时间与所述到期时间之间的时长小于所述预设时长,则所述时间段为所述交易时间与所述到期时间之间的时间段。
优选的,若实施所述验证方式四,则所述方法还包括:若实施所述验证方式一,则在所述存储支付端验证信息之后,当所述服务端的当前系统时间达到所述时间段之后的时间,从所述当前存储的支付端验证信息中废弃所述支付端验证信息;或者,若实施所述验证方式二,则在所述存储接收端验证信息之后,当所述服务端的当前系统时间达到所述时间段之后的时间,从所述当前存储的接收端验证信息中废弃所述接收端验证信息。
优选的,在所述验证方式五中,所述对所述签名值进行数字签名验证包括:使用与所述支付端生成所述待签名信息相同的方式生成待校验信息;若所述签名值为所述支付端使用对称加密算法对所述待签名信息进行数字签名生成的签名值,则获取所述支付端识别信息获取对应的对称密钥,根据所述对应的对称密钥和所述待校验信息验证所述签名值;或者,若所述签名值为所述支付端使用非对称加密算法对所述待签名信息进行数字签名生成的签名值,则获取所述支付端的公钥,根据所述公钥和所述待校验信息验证所述签名值。
第四方面,提供了另一种可用于双离线支付下防止重复划转的方法,应用于服务端,所述方法包括:
接收发送方发送的离线支付包,所述离线支付包中包括多个支付凭证,其中,每个支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
对所述离线支付包中的每个支付凭证分别进行验证,对于经验证确定为合法的支付凭证,将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户。
优选的,所述对所述离线支付包中的每个支付凭证分别进行验证之前还包括:判断所述离线支付包中是否有相互重复的支付凭证,若有,则确定所述离线支付包不合法,不继续执行后续步骤;或者去除所述离线支付包中重复的支付凭证,再继续执行后续步骤。
优选的,所述判断所述离线支付包中是否有相互重复的支付凭证包括:若每个支付凭证中的交易识别信息是支付端生成的交易识别信息,则根据每个支付凭证中的支付端识别信息和交易识别信息判断是否有相互重复的支付凭证;或者,若每个支付凭证中的交易识别信息是接收端生成的交易识别信息,则根据每个支付凭证中的接收端识别信息和交易识别信息判断是否有相互重复的支付凭证;或者,若每个支付凭证中的数字资产为字符串形式的数字资产,则根据每个支付凭证中相应的数字资产判断是否有相互重复的支付凭证。
优选的,所述对所述离线支付包中的每个支付凭证分别进行验证,其中,对于进行验证的支付凭证,验证方式包括:验证方式一,若所述验证的支付凭证中的交易识别信息是支付端生成的交易识别信息,则根据当前存储的支付端验证信息验证是否接收过所述验证的支付凭证,若否,则确定验证通过,并且存储支付端验证信息,所述支付端验证信息为根据所述验证的支付凭证中的支付端识别信息和所述验证的支付凭证中的交易识别信息确定;或/和,验证方式二,若所述验证的支付凭证中的交易识别信息是接收端生成的交易识别信息,则根据当前存储的接收端验证信息验证是否接收过所述验证的支付凭证,若否,则确定验证通过,并且存储接收端验证信息,所述接收端验证信息为根据所述验证的支付凭证中的接收端识别信息和所述验证的支付凭证中的交易识别信息确定。
当实施上述一种或多种验证方式时,若所有验证方式都确定验证通过,则确定所述验证的支付凭证合法。
优选的,所述对于经验证确定为合法的支付凭证,将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户包括:对于进行验证的支付凭证,若确定该支付凭证合法,则将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户;或者,当每个支付凭证经验证都确定为合法之后,再对每个支付凭证分别执行所述将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户。
优选的,所述将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户包括:若数字资产为余额形式的数字资产,则从该支付凭证中支付端识别信息所在的账户中扣减该支付凭证中相应的数字资产,并且在该支付凭证中接收端识别信息所在的账户中增加该支付凭证中相应的数字资产;或者,若数字资产为字符串形式的数字资产,则将该支付凭证中相应的数字资产的属主由该支付凭证中支付端识别信息所在的账户更改为该支付凭证中接收端识别信息所在的账户。
第五方面,一种支付端设备,所述支付端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如上第一方面所述的方法。
一种接收端设备,所述接收端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如上第二方面所述的方法。
一种芯片,包括处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上第一方面所述的方法,或者使得安装有所述芯片的设备执行如上第二方面所述的方法。
一种服务端设备,所述服务端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如上第三方面所述的方法,或者所述程序运行时执行包括如上第四方面所述的方法。
一种存储介质,所述存储介质中存储有程序,所述程序用于实现如上第一方面所述的方法,或者所述程序用于实现如上第二方面所述的方法,或者所述程序用于实现如上第三方面所述的方法,或者所述程序用于实现如上第四方面所述的方法。
第六方面,一种系统,所述系统包括支付端设备、接收端设备以及服务端设备,其中,所述支付端设备包括如上述第五方面所述的支付端设备,所述接收端设备包括如上述第五方面所述的接收端设备,所述服务端设备包括如上述第五方面所述的服务端设备。
综上所述,本发明提供的技术方案可以应用在双离线支付环境下,并且带来的技术效果至少包括:由支付端或接收端生成交易识别信息,服务端通过对包括该交易识别信息在内的相关信息进行验证,可以有效地防止发送方(如接收端或中转设备)将同一支付凭证先后多次重复发送给数字资产服务端请求数字资产的划转。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明所涉及的一种实施环境的结构示意图;
图2是一种可用于双离线支付下防止重复划转的方法应用于支付端的实施例的流程图;
图3是一种可用于双离线支付下防止重复划转的方法应用于接收端的实施例的流程图;
图4是一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例一的流程图;
图5是一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例二的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一、实施环境说明
请参考图1,其示出了本发明所涉及的一种实施环境的结构示意图。该实施环境包括支付端、接收端和服务端,其中:
支付端:数字资产的支付端,用于向接收端进行离线支付。支付端既可以是软件程序,例如支付客户端程序;也可以是由软件和硬件组合实现的设备,例如,既可以是智能手机、智能电视、平板电脑、笔记本电脑等用户终端设备,也可以是智能手表、智能手环等可穿戴式终端设备,还可以是其他带有通信功能的设备。
接收端:数字资产的接收端,用于接收支付端的离线支付,并且根据支付端提供的离线支付凭证向服务端请求完成数字资产的划转。接收端既可以是软件程序,也可以是由软件和硬件组合实现的设备,例如,既可以是智能手机、销售终端(POS机)、扫描枪、读码器、PC(个人电脑)、服务器等设备,也可以是智能电视、平板电脑、笔记本电脑、智能手表、智能手环等终端设备,还可以是其他带有通信功能的设备。
服务端:数字资产的服务端,用于提供数字资产划转服务,根据接收端传递的离线支付凭证完成数字资产在服务端的划转。实际实施过程中,服务端可以是用于提供数字资产服务的登记中心、支付中心等。服务端可以是一个物理或逻辑服务器,也可以是云服务器,还可以是由两个或两个以上分担不同职责的服务器、相互协同来实现本说明书各实施例中服务端的各项功能。
支付端与接收端之间的信息传递通过本地通信以实现,本地通信是相对与数字资产服务端的通信方式而言的,即支付端与接收端之间不需经过数字资产服务端以实现相互的信息传递,例如可以包括局域网或近距离通信等方式,其中,近距离通信包括但不限于通过蓝牙、红外线、NFC、WIFI、声波、BLE(低功耗蓝牙)或图形码的通信方式。例如,在支付端和接收端不能与互联网实时通信的环境下,在该环境内建立局域网络,支付端和接收端接入该局域网络,支付端与接收端通过该局域网络相互通信;又例如,支付端与接收端通过蓝牙配对建立蓝牙通道以实现近距离通信;再例如,支付端与接收端通过NFC天线感应以实现近距离通信;还例如,支付端或接收端中的一端对要传递的信息进行编码生成图形码,另一端扫描并解析该图形码以获取要传递的信息,从而通过图形码实现支付端与接收端之间的近距离通信,图形码可以是二维码或条形码,也可以是其它可以通过扫描及解码方式获取其信息的图形。
接收端与服务端之间的信息传递,既可以由接收端与服务端建立网络连接以实现直接的信息传递,该网络既可以是互联网,也可以是专用的网络;也可以由接收端通过中转设备与服务端实现间接的信息传递。
需要说明的是,本发明各实施例可以在支付端和接收端处于双离线状态时实施,但并非限定支付端和接收端必须处于双离线状态,支付端和接收端在与服务端保持实时通信状态时也可以实施本发明各实施例。
为了便于说明,本发明各实施例仅以一个支付端和一个接收端为例进行说明,但在实际实施环境中,可以包括多个甚至大量的支付端和接收端,对于一个终端设备,既可以只作为支付端或接收端,也可以既作为支付端又作为接收端。
需要说明的是,本领域技术人员可以理解,图1中示出的实施环境结构以及本发明各实施例,可以使得支付端和接收端处于双离线状态时也能够实现离线支付,但并非限定支付端和接收端必须处于双离线状态。
需要说明的是,本领域技术人员可以理解,图1中示出的实施环境结构并不构成对实施环境的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。图1中示出的实施环境结构仅用于加强对本发明技术的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术信息。
二、一种可用于双离线支付下防止重复划转的方法应用于支付端的实施例
请参考图2,其示出了本发明提供的一种可用于双离线支付下防止重复划转的方法应用于支付端的实施例的流程图。本实施例以该方法应用于图1所示实施环境中的支付端来举例说明,该方法可以包括:
步骤201.生成支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产,所述支付端识别信息为所述支付端的识别信息。
支付端生成支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产,所述支付端识别信息为所述支付端的识别信息。
本发明实施例中支付端生成的所述支付凭证,主要作用在于作为支付端向接收端进行离线支付的凭证,也可以理解为是离线支付凭证。
所述支付凭证中包括的支付端识别信息,主要用于在服务端确定支付端所在的账户,即主要用于确定数字资产划转时的支付账户,支付端识别信息可以是终端设备标识、芯片卡标识、手机号码、账号、数字证书、公钥、基于公钥生成的地址或其他可用于在服务端唯一地确定支付端所在账户的信息。支付端在生成支付凭证时,在所述支付凭证中包括该支付端的识别信息(即所述支付端识别信息),从而使得服务端可以根据所述支付端识别信息确定支付账户。
所述支付凭证中包括的接收端识别信息,主要用于在服务端确定接收端所在的账户,即主要用于确定数字资产划转时的接收账户,接收端识别信息可以是终端设备标识、芯片卡标识、手机号码、账号、数字证书、公钥、基于公钥生成的地址或其他可用于在服务端唯一地确定接收端所在账户的信息。接收端识别信息既可以是用户输入的,例如在支付端触发显示操作界面,支付端的用户在支付端的操作界面上输入接收端识别信息;也可以是接收端传递的,例如在接收端传递给支付端的支付请求中包括该接收端的识别信息,又例如在接收端生成的图形码中包括该接收端的识别信息,支付端通过扫描及解析该图形码获取到该接收端识别信息。
所述支付凭证中包括的交易识别信息,主要用于使得服务端唯一地识别本次支付,也可称之为支付识别信息。交易识别信息既可以由支付端生成;也可以由接收端生成,再由接收端传递给支付端,支付端在生成的支付凭证中包括该交易识别信息。以支付端或接收端生成交易识别信息为例,既可以随机生成,也可以按照一定的规则生成,例如,所述交易识别信息可以是递增性质的交易识别信息,比如,支付端可以按顺序递增生成交易识别信息,因此,可以确保生成的交易识别信息会大于以前生成的交易识别信息,则所述交易识别信息在支付端本地具有唯一性;又比如,支付端根据支付端的当前系统时间生成交易识别信息,时间精确到秒级,并且确保本次生成的交易识别信息与上一次生成的交易识别信息至少相隔1秒以上才能生成,如此,则可以确保生成的交易识别信息会大于以前生成的交易识别信息,则所述交易识别信息在支付端本地具有唯一性。又例如,所述交易识别信息可以是随机性质的交易识别信息,比如,支付端保存有以前的交易识别信息,并且生成随机信息,将该随机信息与以前保存的交易识别信息进行比较,若比较结果为存在相同的信息,则重新生成随机信息并再次进行该比较,直至比较没有相同的信息,则确定该随机信息为本次生成的交易识别信息,并且将该随机信息进行保存,即保存的交易识别信息中还包括该随机信息,以使得下次生成交易识别信息时不会生成与该随机信息相同的信息,如此,则可以确保生成的交易识别信息在支付端本地具有唯一性。
可以理解,本发明实施例中所述的递增性质的交易识别信息,是指在后生成的交易识别信息比在前生成的交易识别信息大,实际实施过程中,既可以是按照一定的次序或规律增加,也可以不是按照一定的次序或规律增加。
可以理解,上述根据支付端的当前系统时间生成交易识别信息,既可以是将支付端的当前系统时间作为所述交易识别信息,也可以根据支付端的当前系统时间转换成数值作为所述交易识别信息。
所述支付凭证中包括的相应的数字资产,是支付端支付给接收端的数字资产,在支付端确定要支付给接收端的支付数额之后,支付端根据该支付数额在生成的支付凭证中包括相应的数字资产。例如,本发明实施例中的数字资产可以是余额形式的数字资产,假设支付端确定要支付给接收端的支付数额为20,相当于支付端要支付给接收端相应的数字资产为20,则支付端在生成的支付凭证中包括20;又例如,本发明实施例中的数字资产还可以是字符串形式的数字资产,以数字货币为例,每个不同的加密字符串分别表示对应的数字货币,假设支付端确定要支付给接收端的支付数额为20,则支付端从支付端当前可用的数字资产中选取面值为20的加密字符串为所述相应的数字资产,或者选取面值总和为20的多个加密字符串为所述相应的数字资产,并且在支付端生成的支付凭证中包括该选取的一个或多个加密字符串。
在实际实施过程中,可以有多种方式触发支付端生成支付凭证,例如,在行驶的飞机等不能与互联网实时通信的环境内建立局域网络,接收端为在该局域网络内用于接收离线支付的服务器,应用服务器为在该局域网络内用于提供应用服务(如购物、观影)的服务器,支付端为乘客的移动终端,支付端在访问应用服务器时触发购买相应的服务,应用服务器从接收端获取该接收端的接收端识别信息以及获取该接收端生成的交易识别信息,在应用服务器返回给支付端的调用指令中包括该接收端识别信息、该交易识别信息和购买相应服务所需的支付数额,则支付端根据该调用指令生成支付凭证,该支付凭证中包括该支付端的识别信息(即支付端识别信息)、该接收端识别信息、该交易识别信息和该支付数额(即相应的数字资产);又例如,支付端在访问应用服务器时触发购买相应的服务时,应用服务器向支付端返回重定向指令,该重定向指令中包括购买相应服务所需的支付数额,并且将支付端重定向接收端,接收端生成交易识别信息,并且向支付端返回该交易识别信息和该接收端的识别信息(即接收端识别信息),支付端据此生成支付凭证,该支付凭证中包括该支付端的识别信息(即支付端识别信息)、该接收端识别信息、该交易识别信息和该支付数额(即相应的数字资产);再例如,接收端生成包括接收端识别信息的图形码,支付端通过扫描及解析该图形码获取到该接收端识别信息,并且在支付端触发显示操作界面,支付端的用户在支付端的操作界面上输入支付数额,支付端根据该支付数额选取面值为该支付数额的加密字符串,支付端生成交易识别信息,并且生成支付凭证,该支付凭证中包括该支付端的识别信息(即支付端识别信息)、该接收端识别信息、该交易识别信息和该选取的加密字符串(即相应的数字资产);还例如,接收端通过NFC向支付端传递支付请求,该支付请求中包括接收端识别信息、支付数额,支付端根据该支付请求触发生成交易识别信息,并且生成支付凭证,该支付凭证中包括该支付端的识别信息(即支付端识别信息)、该接收端识别信息、该交易识别信息和该支付数额(即相应的数字资产)。此外,还可以以其他方式触发支付端生成支付凭证,对此本发明实施例并不进行限定。
可选的,所述支付凭证还可以包括交易时间,所述交易时间是指用于识别本次支付时的时间。具体的,支付端可以根据支付端的当前系统时间生成所述交易时间,例如将支付端的当前系统时间作为所述交易时间;也可以是接收端传递的,例如接收端根据接收端的当前系统时间生成所述交易时间,并在接收端发送给支付端的支付请求中还包括所述交易时间,从而使得支付端接收并获取到所述交易时间;如果支付端是访问应用服务器触发生成支付凭证,则交易时间还可以是应用服务器生成并传递的,例如应用服务器根据应用服务器的当前系统时间生成所述交易时间,并且在应用服务器返回给支付端的调用指令中包括所述交易时间,从而使得支付端在生成的支付凭证中包括所述交易时间。
可选的,所述支付凭证还可以包括到期时间,所述到期时间是指用于确定本次支付到期的时间。具体的,所述到期时间可以根据当前系统时间和预设时长而生成,既可以是支付端根据支付端的当前系统时间和预设时长而生成,例如将支付端的当前系统时间加上预设时长生成所述到期时间;也可以是接收端传递的,例如接收端根据接收端的当前系统时间和预设时长生成所述到期时间,并在接收端发送给支付端的支付请求中还包括所述到期时间,从而使得支付端接收并获取到所述到期时间;如果支付端是访问应用服务器触发生成支付凭证,则到期时间还可以是应用服务器生成并传递的,例如应用服务器根据应用服务器的当前系统时间加上预设时长生成所述到期时间,并且在应用服务器返回给支付端的调用指令中包括所述到期时间,从而使得支付端在生成的支付凭证中包括所述到期时间。
可以理解,若所述交易时间或/和所述到期时间是在支付端生成的,则也可以通过实施确保其在支付端本地具有唯一性的方式(例如精确到秒级,并且至少相隔1秒以上才能生成),从而将其作为所述交易识别信息。
可以理解,如果上述接收端识别信息或/和交易识别信息或/和交易时间或/和到期时间是由接收端传递给支付端的,则既可以是由接收端将该接收端识别信息或/和该交易识别信息或/和该交易时间或/和该到期时间通过本地通信发送给支付端,也可以是接收端响应于支付端发送的请求而向支付端返回该接收端识别信息或/和该交易识别信息或/和该交易时间或/和该到期时间,还可以是接收端响应于应用服务器的请求将该接收端识别信息或/和该交易识别信息或/和该交易时间或/和该到期时间返回给应用服务器,再由应用服务器返回给支付端。
可选的,为了防止支付凭证被篡改,支付端还可以对所述支付凭证中的关键信息进行数字签名以生成签名值,并且在所述支付凭证中包括所述签名值,具体的,支付端对待签名信息进行数字签名以生成签名值,所述待签名信息包括所述支付凭证中的接收端识别信息、交易识别信息和相应的数字资产。
可以理解,所述待签名信息是指至少包括所述支付凭证中的所述接收端识别信息、所述交易识别信息和所述相应的数字资产的信息,因此,还可以包括或不包括所述支付凭证中的支付端识别信息、交易时间、到期时间或/和其他的信息,优选的实施方式为包括所述支付凭证中的支付端识别信息、交易时间或/和到期时间。
数字签名是指附加在数据单元上的数据,或是对数据单元所作的密码变换,这种数据或变换允许数据单元的验证方(如接收端或服务端)用以确认数据单元的来源和完整性,并保护数据防止被伪造或抵赖。
在数字签名的一种实现方式中,使用对称加密算法进行数字签名以生成所述签名值,例如,在支付端预设有对称密钥,支付端使用哈希算法根据该对称密钥和所述待签名信息计算得到哈希值(即签名值)。
在数字签名的又一种实现方式中,使用非对称加密算法进行数字签名以生成所述签名值,例如,支付端使用哈希算法对所述待签名信息进行哈希计算得到哈希值(即信息摘要),支付端使用支付端的私钥对该哈希值加密得到加密结果(即签名值)。
步骤202.将所述支付凭证通过本地通信传递给接收端,以使得所述接收端将所述支付凭证发送给服务端,从而使得所述服务端根据所述支付凭证进行数字资产的划转。
支付端通过本地通信向接收端传递所述支付凭证,如实施环境说明中所述,支付端可以通过局域网向接收端传递所述支付凭证,也可以通过蓝牙、红外线、NFC、WIFI、声波、BLE(低功耗蓝牙)或图形码等近距离通信方式向接收端传递所述支付凭证。
需要说明的是,由于本地通信可以包括多种通信方式,即使步骤201中支付端获取的接收端识别信息或/和交易识别信息或/和交易时间或/和到期时间是由接收端传递的,本步骤所使用的本地通信方式也不一定需与步骤201中的本地通信方式相同。例如,在步骤201中支付端通过扫描及解析图形码的方式获取接收端识别信息,而在本步骤中,支付端既可以通过图形码的方式向接收端传递所述支付凭证,也可以通过局域网、NFC等其他的通信方式向接收端传递所述支付凭证。
上述应用于支付端的实施例,支付端生成支付凭证,并且将所述支付凭证通过本地通信传递给接收端,由此使得接收端将所述支付凭证发送给服务端,服务端对所述支付凭证进行验证,并且在确定所述支付凭证合法之后,将所述相应的数字资产从所述支付端识别信息所在的账户划转给所述接收端识别信息所在的账户。其中,应用于接收端和服务端的实施方式,在一种可用于双离线支付下防止重复划转的方法应用于接收端和应用于服务端的实施例中进行举例说明。
三、一种可用于双离线支付下防止重复划转的方法应用于接收端的实施例
请参考图3,其示出了本发明提供的一种可用于双离线支付下防止重复划转的方法应用于接收端的实施例的流程图。本实施例以该方法应用于图1所示实施环境中的接收端来举例说明,该方法可以包括:
步骤301.接收支付端通过本地通信传递的支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
如上述应用于支付端的实施例步骤202中所述,支付端将支付凭证通过本地通信传递给接收端,相应地,则接收端接收所述支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
所述支付凭证中包括的交易识别信息,既可以是由支付端生成的;也可以是由接收端生成的。以接收端生成交易识别信息为例,接收端可以按顺序递增生成所述交易识别信息;或者根据当前系统时间生成所述交易识别信息,并且生成间隔大于或等于该当前系统时间的精确度;或者根据随机信息生成所述交易识别信息,并且该随机信息与以前生成的交易识别信息不相同。具体的生成方式还可以参照上述应用于支付端的实施例中支付端生成交易识别信息的相关说明,在此不再赘述。
可以理解,上述根据接收端的当前系统时间生成交易识别信息,既可以是将接收端的当前系统时间作为所述交易识别信息,也可以根据接收端的当前系统时间转换成数值作为所述交易识别信息。
可选的,所述支付凭证还包括交易时间,或/和到期时间,或/和签名值,具体可以参见上述应用于支付端的实施例中的相关说明,在此不再赘述。
步骤302.将所述支付凭证发送给服务端,以使得所述服务端根据所述支付凭证进行数字资产的划转。
接收端将所述支付凭证发送给服务端,既可以由接收端与服务端建立网络连接,由接收端直接将所述支付凭证发送给服务端,例如,以行驶的飞机为例,在飞机落地之后,接收端接入移动互联网并与服务端建立网络连接,由接收端将所述支付凭证发送给服务端;也可以由接收端间接地将所述支付凭证发送给服务端,即接收端通过中转设备(如收款服务器等收款设备)将所述支付凭证发送给服务端,例如,在飞机上部署有收款设备,接收端将所述支付凭证同步给收款设备,当飞机落地之后,收款设备与服务端建立网络连接,收款设备将所述支付凭证发送给服务端;又例如,在飞机落地之后,接收端接入移动互联网并与航空公司的收款服务器建立网络连接,接收端将所述支付凭证同步给该收款服务器,该收款服务器将所述支付凭证通过网络发送给服务端。
在实际应用过程中,如果是由接收端将所述支付凭证发送给服务端,则在接收端将所述支付凭证发送给服务端时,接收端有可能已经接收到一个或多个支付凭证,其中,该多个支付凭证既可能是由一个支付端传递的,也可能是由多个不同的支付端传递的,例如,以行驶的飞机为例,接收端接收到多个乘客使用各自的支付端传递的支付凭证,因此,接收端会接收到由多个不同的支付端传递的多个支付凭证。如果接收端只接收到一个支付凭证,则接收端将该一个支付凭证发送给服务端;如果接收端接收到多个支付凭证,则接收端既可以逐个地将支付凭证发送给服务端,也可以将该多个支付凭证作为一个离线支付包发送给服务端,即将包括所述支付凭证在内的多个支付凭证同时发送给服务端。同理,如果是接收端通过中转设备将所述支付凭证发送给服务端,则在中转设备将所述支付凭证发送给服务端时,中转设备有可能已经接收到一个或多个支付凭证,其中,该多个支付凭证既可能是由一个接收端传递的,也可能是由多个不同的接收端传递的;如果中转设备只接收到一个支付凭证,则中转设备将该一个支付凭证发送给服务端;如果中转设备接收到多个支付凭证,则中转设备既可以逐个地将支付凭证发送给服务端,也可以将包括所述支付凭证在内的多个支付凭证作为一个离线支付包发送给服务端。
上述应用于接收端的实施例,接收端通过本地通信接收支付端传递的支付凭证,并将所述支付凭证发送给服务端,由此使得服务端对所述支付凭证进行验证,并且在确定所述支付凭证合法之后,将所述相应的数字资产从所述支付端识别信息所在的账户划转给所述接收端识别信息所在的账户。其中,应用于服务端的实施方式,在一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例中进行举例说明。
四、一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例一
请参考图4,其示出了本发明提供的一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例一的流程图。本实施例以该方法应用于图1所示的实施环境中的服务端来举例说明,该方法可以包括:
步骤401.获取支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
服务端获取支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
本发明实施例以服务端对一个支付凭证的处理过程为例进行说明,而如上述应用于接收端的实施例中所述,发送给服务端的支付凭证可以是一个或多个支付凭证,对此,当发送方(如接收端或中转设备)向服务端发送的是一个支付凭证时,服务端接收及获取该支付凭证以实施本发明实施例;或者,发送方有多个支付凭证,并且逐个地向服务端发送支付凭证时,相应地,服务端逐个地接收及获取支付凭证并实施本发明实施例,即本发明实施例以对其中一个支付凭证的处理过程为例进行说明;或者,当发送方向服务端发送的是多个支付凭证时,服务端对该多个支付凭证中的每个支付凭证分别实施本发明实施例,即本发明实施例以对其中一个支付凭证的处理过程为例进行说明。
步骤402.对所述支付凭证进行验证,并且根据所述验证结果确定所述支付凭证是否合法,若确定所述支付凭证合法,则执行步骤403。
服务端对所述支付凭证进行验证,并且根据所述验证结果确定所述支付凭证是否合法。其中,服务端对所述支付凭证进行验证包括:
验证方式一,所述交易识别信息是支付端生成的交易识别信息,根据当前存储的支付端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储支付端验证信息,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息确定。
如应用于支付端的实施例中所述,所述交易识别信息可以由支付端生成,与此相对应的,本验证方式一以所述交易识别信息是支付端生成的交易识别信息为例以验证是否接收过所述支付凭证。
服务端根据当前存储的支付端验证信息验证是否接收过所述支付凭证,具体的,是根据当前存储的支付端验证信息对所述支付端识别信息和所述交易识别信息进行验证,以此判断是否接收过所述支付凭证,如果判断没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储支付端验证信息,从而使得当前存储的支付端验证信息中还包括所述支付端验证信息,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息确定;否则,如果判断接收过所述支付凭证,即表明所述支付凭证是一个重复的支付凭证,确定验证不通过。
可以理解,当前存储的支付端验证信息是指当前已经存储的支付端验证信息,在上述存储所述支付端验证信息之后,则当前存储的支付端验证信息中还包括所述支付端验证信息,当再次接收到包括所述支付端识别信息和所述交易识别信息的支付凭证时,则根据当前存储的支付端验证信息对所述支付端识别信息和所述交易识别信息进行验证时,可以判断已经接收过该支付凭证,从而确定验证不通过。
具体的,本验证方式一可以包括多种实施方式,至少可以包括:
第一种实施方式,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息组合生成,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述支付端验证信息,若不存在,则确定验证通过。
所述支付端验证信息是指根据所述支付端识别信息和所述交易识别信息组合生成的信息,如此,根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断当前存储的支付端验证信息中是否存在所述支付端验证信息,若不存在,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储所述支付端验证信息,否则,则确定验证不通过。
服务端根据所述支付端识别信息和所述交易识别信息组合生成所述支付端验证信息的实施方式,既要确保所述支付端识别信息和所述交易识别信息与确定后的所述支付端验证信息之间具有唯一的对应关系,而且也要确保对于相同的支付端识别信息和交易识别信息每次确定的都是相同的支付端验证信息。如此,才可以使得在存储所述支付端验证信息之后,当再次接收到包括所述支付端识别信息和所述交易识别信息的支付凭证时,可以判断当前存储的支付端验证信息中存在所述支付端验证信息。
根据所述支付端识别信息和所述交易识别信息组合生成所述支付端验证信息,可以包括多种方式:
例如,服务端将包括所述支付端识别信息和所述交易识别信息的信息进行组合作为所述支付端验证信息。比如,服务端将所述支付端识别信息和所述交易识别信息组合作为所述支付端验证信息;又比如,服务端将所述支付端识别信息、所述交易识别信息和其他字符串组合生成所述支付端验证信息,进一步的,因为所述支付凭证中包括所述支付端识别信息和所述交易识别信息,则还可以将所述支付凭证作为所述支付端验证信息。
又例如,由于使用哈希算法生成的哈希值具有唯一性的特点,服务端将包括所述支付端识别信息和所述交易识别信息的信息进行组合并且进行哈希计算生成的哈希值作为所述支付端验证信息。比如,服务端将所述支付端识别信息和所述交易识别信息进行组合,并且对该组合生成的信息进行哈希计算,将生成的哈希值作为所述支付端验证信息;又比如,服务端将所述支付端识别信息、所述交易识别信息和其他字符串进行组合,并且对该组合生成的信息进行哈希计算,将生成的哈希值作为所述支付端验证信息,进一步的,因为所述支付凭证中包括所述支付端识别信息和所述交易识别信息,则还可以将所述支付凭证进行哈希计算,将该哈希计算生成的哈希值作为所述支付端验证信息,再进一步的,如果接收到上述应用于支付端的实施例步骤201中所述的支付端生成的签名值,且所述待签名信息还包括所述支付端识别信息,则还可以以所述签名值或所述签名值中的信息摘要作为所述支付端验证信息。
可以理解,为了确保对于相同的支付端识别信息和交易识别信息每次生成的都是相同的支付端验证信息,则服务端应使用相同的方式根据支付端识别信息和交易识别信息的信息组合生成所述支付端验证信息,例如,如果服务端是将支付端识别信息、交易识别信息和其他字符串组合生成支付端验证信息,则当服务端再次根据支付端识别信息和交易识别信息组合生成支付端验证信息时,则服务端需将该再次接收的支付端识别信息、交易识别信息以及与该其他字符串相同的字符串使用相同的方式组合生成支付端验证信息,以此使得根据相同的支付端识别信息和交易识别信息可以生成相同的支付端验证信息;又例如,如果在生成所述支付端验证信息时使用了哈希算法,则当再次生成支付端验证信息时,需使用相同的哈希算法进行哈希计算,以此使得基于相同的信息可以生成相同的哈希值,从而确保生成相同的支付端验证信息。
第二种实施方式,所述支付端验证信息为所述支付端识别信息与所述交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系,若不存在,则确定验证通过。
当前存储的支付端验证信息是指已经存储的支付端识别信息与交易识别信息的对应关系,所述支付端验证信息是指所述支付端识别信息与所述交易识别信息的对应关系,因此,可以理解,上述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:判断当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系,如果不存在,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储所述支付端验证信息(即存储所述支付端识别信息与所述交易识别信息的对应关系),否则,则确定验证不通过。
可以理解,存储所述支付端验证信息,是指新增建立和存储所述支付端识别信息与所述交易识别信息的对应关系,不替换或覆盖已经存储的其他的支付端识别信息与交易识别信息的对应关系。在存储所述支付端验证信息之后,相当于当前存储的支付端验证信息中还包括所述支付端识别信息与所述交易识别信息的对应关系,因此,当再次接收到包括所述支付端识别信息和所述交易识别信息的支付凭证时,可以判断当前存储的支付端验证信息中存在所述支付端识别信息与所述交易识别信息的对应关系。
判断所述当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系,可以包括多种方式:
例如,服务端根据所述支付端识别信息从当前存储的支付端验证信息中获取对应的交易识别信息,如果没有获取到对应的交易识别信息,或者如果获取到对应的交易识别信息,但如果该对应的交易识别信息中不存在所述交易识别信息,则表明当前存储的支付端验证信息中不存在所述支付端识别信息与所述交易识别信息的对应关系,说明所述支付凭证是一个新的支付凭证,确定验证通过,并且新增建立和存储所述支付端识别信息与所述交易识别信息的对应关系,如果该对应的交易识别信息中存在所述交易识别信息,则确定验证不通过。
又例如,服务端根据所述交易识别信息从当前存储的支付端验证信息中获取对应的支付端识别信息,如果没有获取到对应的支付端识别信息,或者如果获取到对应的支付端识别信息,但如果该对应的支付端识别信息中不存在所述支付端识别信息,则表明当前存储的支付端验证信息中不存在所述支付端识别信息与所述交易识别信息的对应关系,说明所述支付凭证是一个新的支付凭证,确定验证通过,并且新增建立和存储所述支付端识别信息与所述交易识别信息的对应关系,如果该对应的支付端识别信息中存在所述支付端识别信息,则确定验证不通过。
可以理解,在判断对应的交易识别信息中是否存在所述交易识别信息时,若该对应的交易识别信息只有一个交易识别信息,则只需将该一个交易识别信息与所述交易识别信息进行比较,若两者不一致,则说明该对应的交易识别信息中不存在所述交易识别信息,否则,如果两者相一致,则说明该对应的交易识别信息中存在所述交易识别信息;若对应的交易识别信息包括多个交易识别信息,则可以将该多个交易识别信息与所述交易识别信息分别进行比较,如果没有任何一个交易识别信息与所述交易识别信息相一致,则说明该对应的交易识别信息中不存所述交易识别信息,否则,如果有任意一个交易识别信息与所述交易识别信息相一致,则说明该对应的交易识别信息中存在所述交易识别信息。上述判断对应的支付端识别信息中是否存在所述支付端识别信息的判断方式与此相似,不再赘述。
在实际实施上述第二种实施方式时,还可以将所述支付端识别信息或/和所述交易识别信息分别以具有一一对应关系的信息进行替代,例如由于使用哈希算法生成的哈希值具有唯一性的特点,因此可以将所述支付端识别信息或/和所述交易识别信息分别生成相应的哈希值进行替代,在此不再赘述。
可以理解,实际实施过程中,上述存储所述支付端验证信息也可以通过存储所述支付凭证的方式来实施,因为所述支付凭证中包括所述支付端识别信息和所述交易识别信息,则存储了所述支付凭证,也就存储了所述支付端识别信息和所述交易识别信息的对应关系。
第三种实施方式,所述交易识别信息为递增性质的交易识别信息,所述支付端验证信息为所述支付端识别信息与所述交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述支付凭证包括:根据所述支付端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述交易识别信息大于所述对应的交易识别信息,则确定验证通过。
递增性质的交易识别信息是指新生成的交易识别信息会大于上一次生成的交易识别信息,在上述应用于支付端的实施例步骤201中进行了相应的说明和示例,在此不再赘述。可以理解,如果上述应用于支付端的实施例步骤201中生成交易识别信息是将支付端的当前系统时间作为所述交易识别信息,则新生成的交易识别信息大于上一次生成的交易识别信息也可以理解为是进行时间比较,在后时间大于在前时间。
当前存储的支付端验证信息是指已经存储的支付端识别信息与交易识别信息的对应关系,所述支付端验证信息是指所述支付端识别信息与所述交易识别信息的对应关系。
服务端根据所述支付端识别信息从当前存储的支付端验证信息中获取对应的交易识别信息,如果没有获取到对应的交易识别信息,或者如果获取到对应的交易识别信息,但如果所述交易识别信息大于所述对应的交易识别信息,则表明所述支付凭证是一个新的支付凭证,确定验证通过,并且建立所述支付端识别信息与所述交易识别信息的对应关系;否则,如果获取到对应的交易识别信息,但如果所述交易识别信息不大于所述对应的交易识别信息,则表明所述支付凭证是一个重复的支付凭证,确定验证不通过。
可以理解,本第三种实施方式是根据支付端识别信息与交易识别信息的对应关系来验证支付凭证是否属于一个新的支付凭证,如果根据所述支付端识别信息没有获取到对应的交易识别信息,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过;又由于交易识别信息为递增性质的交易识别信息,同一支付端新生成的交易识别信息应大于该支付端之前生成的交易识别信息,因此,若大于,则确定验证通过,若不大于,则确定验证不通过。
可以理解,本第三种实施方式在实际实施过程中,存储所述支付端验证信息,是指建立和存储所述支付端识别信息与所述交易识别信息的对应关系,可以每个支付端识别信息只允许建立一个对应的交易识别信息,也可以每个支付端识别信息允许建立一个或多个对应的交易识别信息。因此,当实施每个支付端识别信息只允许建立一个对应的交易识别信息,即所述支付端识别信息所对应的交易识别信息只允许建立一个对应的交易识别信息时,所述建立和存储所述支付端识别信息与所述交易识别信息的对应关系为将所述支付端识别信息所对应的交易识别信息替换为所述交易识别信息;当实施每个支付端识别信息允许建立一个或多个对应的交易识别信息,即所述支付端识别信息所对应的交易识别信息允许建立一个或多个对应的交易识别信息时,所述建立和存储所述支付端识别信息与所述交易识别信息的对应关系为新增建立和存储所述支付端识别信息与所述交易识别信息,不替换或覆盖已经存储的其他的支付端识别信息与交易识别信息的对应关系,其中,当所述支付端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,可以理解,所述交易识别信息大于所述对应的交易识别信息,是指所述交易识别信息大于该多个对应的交易识别信息中最大的交易识别信息。
进一步的,如上所述,当实施每个支付端识别信息允许建立一个或多个对应的交易识别信息,其中,当所述支付端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,则还可以进一步实施,当所述交易识别信息不大于该多个对应的交易识别信息中最大的交易识别信息(以下称为所述最大的交易识别信息),并且该多个对应的交易识别信息中不包括所述交易识别信息,则确定验证通过,并且新增建立和存储所述支付端识别信息与所述交易识别信息的对应关系。如此实施的主要作用在于,当所述交易识别信息不大于所述最大的交易识别信息,并且该多个对应的交易识别信息中不包括所述交易识别信息,则表明所述支付凭证是一个新的支付凭证,确定验证通过,否则,如果该多个对应的交易识别信息中包括所述交易识别信息,则表明所述支付凭证是一个重复的支付凭证,确定验证不通过。可以理解,如果所述交易识别信息等于所述最大的交易识别信息,既表明所述交易识别信息不大于所述最大的交易识别信息,也表明该多个对应的交易识别信息中包括所述交易识别信息,因此,确定验证不通过。
进一步的,当所述交易识别信息不大于所述最大的交易识别信息,即在上述将所述交易识别信息与所述最大的交易识别信息进行比较时,还包括比较所述交易识别信息与所述最大的交易识别信息的差值,当所述交易识别信息与所述最大的交易识别信息的差值小于预设值,并且该多个对应的交易识别信息中不包括所述交易识别信息时,才确定验证通过;同时,对于该多个对应的交易识别信息中不大于所述最大的交易识别信息的交易识别信息,当其中某个对应的交易识别信息与所述最大的交易识别信息的差值不小于所述预设值,则废弃该某个对应的交易识别信息。可以理解,废弃该某个对应的交易识别信息,是指删除所述支付端识别信息与该某个交易识别信息的对应关系,或者是将所述支付端识别信息与该某个交易识别信息的对应关系设置为不可再使用的状态等。如此实施的主要作用在于,对于已经建立和存储的与所述最大的交易识别信息的差值不小于所述预设值的交易识别信息,即使废弃了该交易识别信息,当再次接收到包括该交易识别信息的支付凭证时,因为该交易识别信息与所述最大的交易识别信息的差值不小于所述预设值,因此会确定验证不通过,如此,如果服务端接收了大量的支付凭证,则通过此实施方式服务端可以及时地废弃相应的交易识别信息,避免当前建立和存储的支付端识别信息与交易识别信息不断地增多,并且不影响确定所述支付凭证是否合法的结果。
可以理解,如果上述应用于支付端的实施例步骤201中生成交易识别信息是将支付端的当前系统时间作为所述交易识别信息,则上述所述交易识别信息与所述最大的交易识别信息比较得出的差值可以为时间间隔,所述预设值可以是预设的时长。
验证方式二,所述交易识别信息是接收端生成的交易识别信息,根据当前存储的接收端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储接收端验证信息,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息确定。
服务端根据当前存储的接收端验证信息验证是否接收过所述支付凭证,具体的,是根据当前存储的接收端验证信息对所述接收端识别信息和所述交易识别信息进行验证,以此判断是否接收过所述支付凭证,如果判断没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储接收端验证信息,从而使得当前存储的接收端验证信息中还包括所述接收端验证信息,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息确定;否则,如果判断接收过所述支付凭证,即表明所述支付凭证是一个重复的支付凭证,确定验证不通过。
可以理解,当前存储的接收端验证信息是指当前已经存储的接收端验证信息,在上述存储所述接收端验证信息之后,则当前存储的接收端验证信息中还包括所述接收端验证信息,当再次接收到包括所述接收端识别信息和所述交易识别信息的支付凭证时,则根据当前存储的接收端验证信息对所述接收端识别信息和所述交易识别信息进行验证时,可以判断已经接收过该支付凭证,从而确定验证不通过。
具体的,本验证方式二可以包括多种实施方式,至少可以包括:
第四种实施方式,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息组合生成,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述接收端验证信息,若不存在,则确定验证通过。
所述接收端验证信息是指根据所述接收端识别信息和所述交易识别信息组合生成的信息,如此,根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断当前存储的接收端验证信息中是否存在所述接收端验证信息,若不存在,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储所述接收端验证信息,否则,则确定验证不通过。
服务端根据所述接收端识别信息和所述交易识别信息组合生成所述接收端验证信息的实施方式,既要确保所述接收端识别信息和所述交易识别信息与确定后的所述接收端验证信息之间具有唯一的对应关系,而且也要确保对于相同的接收端识别信息和交易识别信息每次确定的都是相同的接收端验证信息。如此,才可以使得在存储所述接收端验证信息之后,当再次接收到包括所述接收端识别信息和所述交易识别信息的支付凭证时,可以判断当前存储的接收端验证信息中存在所述接收端验证信息。
根据所述接收端识别信息和所述交易识别信息组合生成所述接收端验证信息,可以包括多种方式,例如,将包括所述接收端识别信息和所述交易识别信息的信息进行组合作为所述接收端验证信息;又例如,将包括所述接收端识别信息和所述交易识别信息的信息进行组合并且进行哈希计算生成的哈希值作为所述接收端验证信息。具体的,还可以参考上述验证方式一第一种实施方式中的“根据所述支付端识别信息和所述交易识别信息组合生成所述接收端验证信息”,将其中的所述支付端识别信息以所述接收端识别信息进行替换实施。
可以理解,为了确保对于相同的接收端识别信息和交易识别信息每次生成的都是相同的接收端验证信息,则服务端应使用相同的方式根据接收端识别信息和交易识别信息的信息组合生成所述接收端验证信息,例如,如果服务端是将接收端识别信息、交易识别信息和其他字符串组合生成接收端验证信息,则当服务端再次根据接收端识别信息和交易识别信息组合生成接收端验证信息时,则服务端需将该再次接收的接收端识别信息、交易识别信息以及与该其他字符串相同的字符串使用相同的方式组合生成接收端验证信息,以此使得根据相同的接收端识别信息和交易识别信息可以生成相同的接收端验证信息;又例如,如果在生成所述接收端验证信息时使用了哈希算法,则当再次生成接收端验证信息时,需使用相同的哈希算法进行哈希计算,以此使得基于相同的信息可以生成相同的哈希值,从而确保生成相同的接收端验证信息。
第五种实施方式,所述接收端验证信息为所述接收端识别信息与所述交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述接收端识别信息与所述交易识别信息的对应关系,若不存在,则确定验证通过。
当前存储的接收端验证信息是指已经存储的接收端识别信息与交易识别信息的对应关系,所述接收端验证信息是指所述接收端识别信息与所述交易识别信息的对应关系,因此,可以理解,上述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:判断当前存储的接收端验证信息中是否存在所述接收端识别信息与所述交易识别信息的对应关系,如果不存在,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过,并且存储所述接收端验证信息(即存储所述接收端识别信息与所述交易识别信息的对应关系),否则,则确定验证不通过。
可以理解,存储所述接收端验证信息,是指新增建立和存储所述接收端识别信息与所述交易识别信息的对应关系,不替换或覆盖已经存储的其他的接收端识别信息与交易识别信息的对应关系。在存储所述接收端验证信息之后,相当于当前存储的接收端验证信息中还包括所述接收端识别信息与所述交易识别信息的对应关系,因此,当再次接收到包括所述接收端识别信息和所述交易识别信息的支付凭证时,可以判断当前存储的接收端验证信息中存在所述接收端识别信息与所述交易识别信息的对应关系。
判断所述当前存储的接收端验证信息中是否存在所述接收端识别信息与所述交易识别信息的对应关系,可以包括:根据所述接收端识别信息从所述当前存储的接收端验证信息中获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若获取到对应的交易识别信息,但该对应的交易识别信息中不存在所述交易识别信息,则确定验证通过;或者,根据所述交易识别信息从所述当前存储的接收端验证信息中获取对应的接收端识别信息,若没有获取到对应的接收端识别信息,或者若获取到对应的接收端识别信息,但该对应的接收端识别信息中不存在所述接收端识别信息,则确定验证通过。具体的,还可以参考上述验证方式一第二种实施方式中的“判断所述当前存储的支付端验证信息中是否存在所述支付端识别信息与所述交易识别信息的对应关系”,将其中的所述支付端识别信息以所述接收端识别信息进行替换实施。
在实际实施上述第五种实施方式时,还可以将所述接收端识别信息或/和所述交易识别信息分别以具有一一对应关系的信息进行替代,例如由于使用哈希算法生成的哈希值具有唯一性的特点,因此可以将所述接收端识别信息或/和所述交易识别信息分别生成相应的哈希值进行替代,在此不再赘述。
可以理解,实际实施过程中,上述存储所述接收端验证信息也可以通过存储所述支付凭证的方式来实施,因为所述支付凭证中包括所述接收端识别信息和所述交易识别信息,则存储了所述支付凭证,也就存储了所述接收端识别信息和所述交易识别信息的对应关系。
第六种实施方式,所述交易识别信息为递增性质的交易识别信息,所述接收端验证信息为所述接收端识别信息与所述交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述支付凭证包括:根据所述接收端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述交易识别信息大于所述对应的交易识别信息,则确定验证通过。
当前存储的接收端验证信息是指已经存储的接收端识别信息与交易识别信息的对应关系,所述接收端验证信息是指所述接收端识别信息与所述交易识别信息的对应关系。
服务端根据所述接收端识别信息从当前存储的接收端验证信息中获取对应的交易识别信息,如果没有获取到对应的交易识别信息,或者如果获取到对应的交易识别信息,但如果所述交易识别信息大于所述对应的交易识别信息,则表明所述支付凭证是一个新的支付凭证,确定验证通过,并且建立所述接收端识别信息与所述交易识别信息的对应关系;否则,如果获取到对应的交易识别信息,但如果所述交易识别信息不大于所述对应的交易识别信息,则表明所述支付凭证是一个重复的支付凭证,确定验证不通过。
可以理解,本第六种实施方式是根据接收端识别信息与交易识别信息的对应关系来验证支付凭证是否属于一个新的支付凭证,如果根据所述接收端识别信息没有获取到对应的交易识别信息,则可以说明以前没有接收过所述支付凭证,即表明所述支付凭证是一个新的支付凭证,确定验证通过;又由于交易识别信息为递增性质的交易识别信息,同一接收端新生成的交易识别信息应大于该接收端之前生成的交易识别信息,因此,若大于,则确定验证通过,若不大于,则确定验证不通过。
可以理解,本第六种实施方式在实际实施过程中,存储所述接收端验证信息,是指建立和存储所述接收端识别信息与所述交易识别信息的对应关系,可以每个接收端识别信息只允许建立一个对应的交易识别信息,也可以每个接收端识别信息允许建立一个或多个对应的交易识别信息。因此,当实施每个接收端识别信息只允许建立一个对应的交易识别信息,即所述接收端识别信息所对应的交易识别信息只允许建立一个对应的交易识别信息时,所述建立和存储所述接收端识别信息与所述交易识别信息的对应关系为将所述接收端识别信息所对应的交易识别信息替换为所述交易识别信息;当实施每个接收端识别信息允许建立一个或多个对应的交易识别信息,即所述接收端识别信息所对应的交易识别信息允许建立一个或多个对应的交易识别信息时,所述建立和存储所述接收端识别信息与所述交易识别信息的对应关系为新增建立和存储所述接收端识别信息与所述交易识别信息,不替换或覆盖已经存储的其他的接收端识别信息与交易识别信息的对应关系,其中,当所述接收端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,可以理解,所述交易识别信息大于所述对应的交易识别信息,是指所述交易识别信息大于该多个对应的交易识别信息中最大的交易识别信息。
进一步的,如上所述,当实施每个接收端识别信息允许建立一个或多个对应的交易识别信息,其中,当所述接收端识别信息所对应的交易识别信息包括多个对应的交易识别信息时,则还可以进一步实施,当所述交易识别信息不大于该多个对应的交易识别信息中最大的交易识别信息(以下称为所述最大的交易识别信息),并且该多个对应的交易识别信息中不包括所述交易识别信息,则确定验证通过,并且新增建立和存储所述接收端识别信息与所述交易识别信息的对应关系。如此实施的主要作用在于,当所述交易识别信息不大于所述最大的交易识别信息,并且该多个对应的交易识别信息中不包括所述交易识别信息,则表明所述支付凭证是一个新的支付凭证,确定验证通过,否则,如果该多个对应的交易识别信息中包括所述交易识别信息,则表明所述支付凭证是一个重复的支付凭证,确定验证不通过。可以理解,如果所述交易识别信息等于所述最大的交易识别信息,既表明所述交易识别信息不大于所述最大的交易识别信息,也表明该多个对应的交易识别信息中包括所述交易识别信息,因此,确定验证不通过。
进一步的,当所述交易识别信息不大于所述最大的交易识别信息,即在上述将所述交易识别信息与所述最大的交易识别信息进行比较时,还包括比较所述交易识别信息与所述最大的交易识别信息的差值,当所述交易识别信息与所述最大的交易识别信息的差值小于预设值,并且该多个对应的交易识别信息中不包括所述交易识别信息时,才确定验证通过;同时,对于该多个对应的交易识别信息中不大于所述最大的交易识别信息的交易识别信息,当其中某个对应的交易识别信息与所述最大的交易识别信息的差值不小于所述预设值,则废弃该某个对应的交易识别信息。可以理解,废弃该某个对应的交易识别信息,是指删除所述接收端识别信息与该某个交易识别信息的对应关系,或者是将所述接收端识别信息与该某个交易识别信息的对应关系设置为不可再使用的状态等。如此实施的主要作用在于,对于已经建立和存储的与所述最大的交易识别信息的差值不小于所述预设值的交易识别信息,即使废弃了该交易识别信息,当再次接收到包括该交易识别信息的支付凭证时,因为该交易识别信息与所述最大的交易识别信息的差值不小于所述预设值,因此会确定验证不通过,如此,如果服务端接收了大量的支付凭证,则通过此实施方式服务端可以及时地废弃相应的交易识别信息,避免当前建立和存储的接收端识别信息与交易识别信息不断地增多,并且不影响确定所述支付凭证是否合法的结果。
可以理解,如果上述应用于接收端的实施例步骤301中生成交易识别信息是将接收端的当前系统时间作为所述交易识别信息,则上述所述交易识别信息与所述最大的交易识别信息比较得出的差值可以为时间间隔,所述预设值可以是预设的时长。
由上述验证方式一和验证方式二可以看出,两种验证方式的主要区别在于,根据所述交易识别信息是支付端或接收端生成的不同而采取相应的处理措施。在实际实施过程中,这两种验证方式可以选取其中一种验证方式实施,也可以同时实施,当同时实施时,服务端需对所述交易识别信息是由支付端生成还是由接收端生成进行判断,例如,在支付端生成所述支付凭证时,在所述支付凭证中还包括生成标识,该生成标识用于指示所述交易识别信息是由支付端生成还是由接收端生成的,由此,则服务端根据所述支付凭证中包括的生成标识选取上述验证方式一或验证方式二而执行。
可选的,服务端还可以验证所述支付凭证的发送方是否能请求数字资产划转,具体可以包括:
验证方式三,获取所述支付凭证发送方的身份识别信息,根据所述身份识别信息和所述接收端识别信息验证所述发送方是否能请求数字资产划转。
服务端获取所述支付凭证发送方的身份识别信息,根据所述身份识别信息和所述接收端识别信息验证所述发送方是否能请求数字资产划转,若是,则确定验证通过,否则,则确定验证不通过。如此验证的主要作用在于,验证所述支付凭证的发送方是否能请求将所述相应的数字资产划转给所述接收端识别信息所在的账户。
如上述应用于接收端的实施例中所述,所述支付凭证的发送方既可以是接收端,也可以是收款服务器等中转设备,服务端获取所述支付凭证发送方的身份识别信息可以包括多种实施方式,至少可以包括:
实施方式一,服务端通过对所述发送方进行身份验证以获取所述发送方的身份识别信息。
例如,所述支付凭证的发送方向服务端发送身份验证请求,该身份验证请求携带有应用账号和密码等身份验证信息,服务端根据该身份验证信息对所述发送方进行身份验证,并在身份验证通过之后获取该应用账号,该应用账号即为所述发送方的身份识别信息。
又例如,所述支付凭证的发送方向服务端发送支付凭证时还同时携带有令牌或会话状态等,该令牌或会话状态是所述发送方经过身份验证之后服务端返回给所述发送方的,服务端获取该令牌或会话状态关联的身份识别信息(如应用账号),该获取的身份识别信息即为所述发送方的身份识别信息。
实施方式二,所述支付凭证还包括对应的数字签名信息,根据所述数字签名信息验证所述支付凭证,若验证通过,则根据所述数字签名信息确定所述发送方的身份识别信息。
所述支付凭证还包括对应的数字签名信息,即在服务端接收到所述支付凭证时还接收到该数字签名信息,该数字签名信息是发送方(如接收端或中转设备)对所述支付凭证的数字签名信息。可以理解,如果所述支付凭证是发送方以一个离线支付包的方式发送的,则该数字签名信息也可以是接收端对所述离线支付包的数字签名信息,即在服务端接收到所述离线支付包时还接收到该数字签名信息。
以发送方使用对称加密算法对所述支付凭证进行数字签名生成签名值为例,所述数字签名信息包括该发送方的身份识别信息和该签名值,在服务端预先建立有身份识别信息与对称密钥的对应关系,服务端获取所述数字签名信息中的身份识别信息,并且根据该发送方的身份识别信息获取对应的对称密钥,然后根据该对称密钥和该签名值验证所述支付凭证,如果数字签名验证通过,则确定所述数字签名信息中的身份识别信息为所述发送方的身份识别信息。
以发送方使用非对称加密算法对所述支付凭证进行数字签名生成签名值为例,所述数字签名信息中包括该签名值和可用于确定发送方公钥的信息,服务端根据该可用于确定发送方公钥的信息确定发送方的公钥,服务端根据该公钥和该签名值对所述支付凭证进行数字签名验证,如果验证通过,则根据该可用于确定发送方公钥的信息确定发送方的身份识别信息。比如,该可用于确定发送方公钥的信息为该发送方的身份识别信息,在服务端预先建立有身份识别信息与公钥的对应关系,服务端根据该发送方的身份识别信息获取对应的公钥;又比如,当发送方是基于IBC(Identity-Based Cryptograph)体系产生的私钥对所述支付凭证进行数字签名时,该可用于确定发送方公钥的信息为该发送方的身份识别信息,该发送方的身份识别信息亦为该发送方的公钥;还比如,当发送方基于PKI(Public KeyInfrastructure)体系产生的私钥对所述支付凭证进行数字签名时,所述数字签名信息中还包括发送方的数字证书,如此服务端从该数字证书中获取发送方的公钥,并且在数字签名验证通过之后,根据该数字证书中的序列号(serialNumber)、主题(subject)、主题唯一标识(subjectUniqueID)或公钥等具有唯一性的标签值确定该发送方的身份识别信息。
服务端根据所述身份识别信息和所述接收端识别信息验证所述发送方是否能请求数字资产划转,也可以包括多种实施方式,至少可以包括:
实施方式一,判断所述身份识别信息与所述接收端识别信息是否属于同一账户,若是,则确定验证通过。
服务端判断所述身份识别信息与所述接收端识别信息是否属于同一账户,即服务端判断所述身份识别信息所在的账户与所述接收端识别信息所在的账户是否属于同一账户,若是,则确定验证通过,若不是,则确定验证不通过。例如,所述身份识别信息与所述接收端识别信息相同,则可以确定验证通过;又例如,虽然所述身份识别信息与所述接收端识别信息不相同,但所述身份识别信息和所述接收端识别信息是属于同一账户下不同的身份识别信息,则可以确定验证通过。
实施方式二,根据所述身份识别信息所在的账户与所述接收端识别信息的权限关系,判断所述身份识别信息所在的账户是否具有对所述接收端识别信息的数字资产划转权限,若是,则确定验证通过。
如上述应用于接收端的实施例中所述,接收端可以通过收款服务器等中转设备向服务端发送支付凭证,那么,在实际实施过程中,则中转设备可以为一个或多个接收端向服务端转发支付凭证,如此,则可以预先在服务端上建立中转设备的身份识别信息与接收端识别信息之间的权限关系,该权限关系表示中转设备对相应的接收端识别信息是否具有数字资产的划转权限,因此,如果所述身份识别信息与所述接收端识别信息具有该权限关系,则确定所述身份识别信息所在的账户具有对所述接收端识别信息的数字资产划转权限,确定验证通过,否则,则确定验证不通过。
可选的,如上述应用于接收端的实施例中所述,所述支付凭证还可以包括交易时间或/和到期时间,因此,若所述支付凭证还包括交易时间或/和到期时间,则服务端还可以根据所述交易时间或/和所述到期时间验证所述支付凭证,具体可以包括:
验证方式四,所述支付凭证还包括交易时间或/和到期时间,服务端根据所述交易时间或/和所述到期时间以及预设时长确定时间段,判断服务端的当前系统时间是否在所述时间段内,若是,则确定验证通过。
若所述支付凭证还包括交易时间或/和到期时间,则服务端获取所述交易时间或/和所述到期时间,并且根据所述交易时间或/和所述到期时间以及预设时长确定时间段;服务端获取服务端的当前系统时间,然后判断该当前系统时间是否在所述时间段内,若是,则确定验证通过,否则,则确定验证不通过。例如,若所述时间段是在时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段,则如果服务端的当前系统时间是在时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间,则确定验证通过,否则,则确定验证不通过。可以理解,时间“2020-08-10 08:00:00”与时间“2020-08-1108:00:00”之间的时间段仅为示例,实际实施过程中确定的时间段的时间间隔可以大于或小于该时间段。
进一步的,若实施上述验证方式四,并且若实施上述验证方式一,则在验证方式一确定验证通过,并且在存储所述支付端验证信息之后,服务端还可以当服务端的当前系统时间达到所述时间段之后的时间,从当前存储的支付端验证信息中废弃所述支付端验证信息。可以理解,废弃所述支付端验证信息,是指在当前存储的支付端验证信息中将所述支付端验证信息不可再用于进行验证比较,例如删除所述支付端验证信息,或者是将所述支付端验证信息设置为不可再使用的状态等,可以理解,若所述支付端验证信息为所述支付端识别信息与所述交易识别信息的对应关系,则删除所述支付端验证信息是指删除该对应关系,将所述支付端验证信息设置为不可再使用的状态是指将该对应关系设置为不可再使用的状态。如此实施的主要作用在于,如果服务端再重复接收到所述支付凭证,如果此时的当前系统时间是在所述时间段内,则此时还没有废弃所述支付端验证信息,因此通过上述验证方式一会判断当前存储的支付端验证信息中包括所述支付端验证信息,会确定验证不通过;如果此时的当前系统时间是在所述时间段之后,并且此时已经废弃了所述支付端验证信息,因为通过上述验证方式四会确定验证不通过,即使上述验证方式一会确定验证通过,但由于本实施例中任一验证方式确定验证不通过,则确定所述支付凭证不合法,因此,依然会确定所述支付凭证不合法;如此,如果服务端接收了大量的支付凭证,则通过此实施方式服务端可以及时地废弃相应的支付端验证信息,避免当前存储的支付端验证信息不断地增多,并且不影响确定所述支付凭证是否合法的结果。
进一步的,若实施上述验证方式四,并且若实施上述验证方式二,则在验证方式二确定验证通过,并且在存储所述接收端验证信息之后,服务端还可以当服务端的当前系统时间达到所述时间段之后的时间,从当前存储的接收端验证信息中废弃所述接收端验证信息。可以理解,废弃所述接收端验证信息,是指在当前存储的接收端验证信息中将所述接收端验证信息不可再用于进行验证比较,例如删除所述接收端验证信息,或者是将所述接收端验证信息设置为不可再使用的状态等,可以理解,若所述接收端验证信息为所述接收端识别信息与所述交易识别信息的对应关系,则删除所述接收端验证信息是指删除该对应关系,将所述接收端验证信息设置为不可再使用的状态是指将该对应关系设置为不可再使用的状态。如此实施的主要作用在于,如果服务端再重复接收到所述支付凭证,如果此时的当前系统时间是在所述时间段内,则此时还没有废弃所述接收端验证信息,因此通过上述验证方式二会判断当前存储的接收端验证信息中包括所述接收端验证信息,会确定验证不通过;如果此时的当前系统时间是在所述时间段之后,并且此时已经废弃了所述接收端验证信息,因为通过上述验证方式四会确定验证不通过,即使上述验证方式二会确定验证通过,但由于本实施例中任一验证方式确定验证不通过,则确定所述支付凭证不合法,因此,依然会确定所述支付凭证不合法;如此,如果服务端接收了大量的支付凭证,则通过此实施方式服务端可以及时地废弃相应的接收端验证信息,避免当前存储的接收端验证信息不断地增多,并且不影响确定所述支付凭证是否合法的结果。
可以理解,一个时间段包括起始时间和终止时间,所述时间段之后的时间也可以理解为是所述时间段的终止时间之后的时间。以上述示例为例,时间“2020-08-10 08:00:00”为所述时间段的起始时间,时间“2020-08-11 08:00:00”为所述时间段的终止时间,所述时间段之后的时间为时间“2020-08-11 08:00:00”之后的时间。
服务端根据所述交易时间或/和所述到期时间以及预设时长确定时间段,可以包括多种实施方式,例如:
实施方式一,若所述支付凭证还包括交易时间,则确定所述时间段为所述交易时间之后所述预设时长内的时间段。
所述时间段为所述交易时间之后所述预设时长内的时间段,也可以理解为所述时间段为在所述交易时间之后、以及在所述交易时间加上所述预设时长的时间之前的时间段。例如,以所述交易时间为“2020-08-10 08:00:00”、所述预设时长为24小时为例,则所述交易时间加上所述预设时长的时间为“2020-08-11 08:00:00”,所述时间段为时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段。
实施方式二,若所述支付凭证还包括交易时间,所述预设时长分为第一预设时长和第二预设时长,确定所述时间段为所述交易时间减去所述第一预设时长、以及所述交易时间加上所述第二预设时长之间的时间段。
确定所述时间段为所述交易时间减去所述第一预设时长、以及所述交易时间加上所述第二预设时长之间的时间段。具体的,以所述交易时间减去所述第一预设时长的时间作为起始时间,以所述交易时间加上所述第二预设时长的时间作为终止时间,则所述时间段为该起始时间与该终止时间之间的时间段,例如,以所述交易时间为“2020-08-10 20:00:00”、所述第一预设时长为12小时、所述第二预设时长为12小时为例,则所述交易时间减去所述第一预设时长的时间为“2020-08-10 08:00:00”,所述交易时间加上所述第二预设时长的时间为“2020-08-11 08:00:00”,所述时间段为时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段。
实施方式三,若所述支付凭证还包括交易时间,所述预设时长分为第三预设时长和第四预设时长,确定所述时间段为所述交易时间加上所述第三预设时长、以及所述交易时间加上所述第三预设时长和加上所述第四预设时长之间的时间段。
确定所述时间段为所述交易时间加上所述第三预设时长、以及所述交易时间加上所述第三预设时长和加上所述第四预设时长之间的时间段。具体的,以所述交易时间加上所述第三预设时长作为起始时间,以所述交易时间加上所述第三预设时长和加上所述第四预设时长作为终止时间,则所述时间段为该起始时间与该终止时间之间的时间段,例如,以所述交易时间为“2020-08-10 07:00:00”、所述第三预设时长为1小时、所述第四预设时长为23小时为例,则所述交易时间加上所述第三预设时长的时间为“2020-08-10 08:00:00”,所述交易时间加上所述第三预设时长和加上所述第四预设时长的时间为“2020-08-11 08:00:00”,所述时间段为时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段。
实施方式四,若所述支付凭证还包括到期时间,则所述时间段为所述到期时间之前所述预设时长内的时间段。
所述到期时间之前所述预设时长内的时间段,也可以理解为所述时间段为所述到期时间之前、以及在所述到期时间减去所述预设时长的时间之后的时间段。例如,以所述到期时间为“2020-08-11 08:00:00”、所述预设时长为24小时为例,则所述到期时间减去所述预设时长的时间为“2020-08-10 08:00:00”,所述时间段是在时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段。
实施方式五,若所述支付凭证还包括交易时间和到期时间,并且若所述交易时间与所述到期时间之间的时长小于所述预设时长,则所述时间段为所述交易时间与所述到期时间之间的时间段。
服务端判断所述交易时间与所述到期时间之间的时长是否小于所述预设时长,若是,则确定所述时间段为在所述交易时间与所述到期时间之间的时间段,否则,则说明所述交易时间和所述到期时间不合法,不执行后续的步骤。如此实施的主要作用在于,为了避免所述交易时间与所述到期时间之间的时长过长,从而将所述交易时间与所述到期时间之间的时长限制在小于所述预设时长。
所述时间段为在所述交易时间与所述到期时间之间的时间段,也可以理解为所述时间段是在所述交易时间之后、以及所述到期时间之前的时间段。例如,以所述交易时间为“2020-08-10 08:00:00”、所述到期时间为“2020-08-11 08:00:00”为例,则所述时间段是在时间“2020-08-10 08:00:00”与时间“2020-08-11 08:00:00”之间的时间段。
可以理解,本发明各实施例中所述的当前系统时间,是指在执行相应步骤时所在设备所处的系统时间,也可以理解为实际获取的当前系统时间是在执行获取当前系统时间时所在设备所处的系统时间,由于各步骤在实际执行时的先后顺序和所处的时间点有可能存在不同,以及各设备的系统时钟可能存在的误差或错误,则在不同设备及不同步骤在实际执行时获取的当前系统时间也可能会存在不同。
进一步的,服务端还可以通过签名值对所述支付凭证进行验证,具体包括:
验证方式四,若所述支付凭证还包括签名值,所述签名值为支付端对待签名信息进行数字签名生成的签名值,所述待签名信息包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产,则根据所述签名值对所述支付凭证进行数字签名验证。
如上述应用于支付端的实施例中所述,所述支付凭证中还可以包括签名值,所述签名值为支付端对待签名信息进行数字签名生成的签名值,所述待签名信息是至少包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产的信息。支付端使用对称加密算法或非对称加密算法进行数字签名以生成所述签名值,相应地,服务端使用相应的对称加密算法或非对称加密算法根据所述签名值对所述支付凭证进行数字签名验证。
服务端生成待校验信息,并且生成方式与支付端生成待签名信息的生成方式相同,从而使得该生成的待校验信息与支付端生成的待签名信息相同。可以理解,该生成的待校验信息至少包括所述接收端识别信息、所述交易识别信息和所述相应的数字资产,如果支付端生成的待签名信息中还包括所述支付凭证中的支付端识别信息、交易时间、到期时间或/和其他的信息,则该生成的待校验信息中也包括所述支付凭证中的支付端识别信息、交易时间、到期时间或/和其他的信息,从而使得该生成的待校验信息与支付端生成的待签名信息相同。
在服务端生成所述待校验信息之后,对所述签名值的验证可以包括:
实施方式一,若所述签名值是支付端使用对称加密算法进行数字签名生成的签名值,则服务端获取所述支付端识别信息对应的对称密钥,并且根据所述对应的对称密钥和所述待校验信息验证所述签名值。
在服务端预先建立有支付端识别信息与支付端的对称密钥的对应关系,服务端根据所述支付凭证中的所述支付端识别信息获取对应的对称密钥,然后根据所述对应的对称密钥和所述待校验信息验证所述签名值。
例如,以支付端使用哈希算法根据支付端预设的对称密钥和所述待签名信息计算得到哈希值(即签名值)为例,服务端使用与支付端相同的哈希计算方式,根据该对应的对称密钥和所述待校验信息计算得到哈希值(即校验值),然后比较该校验值与所述签名值是否相同,若相同,则确定数字签名验证通过,否则,则确定验证不通过。
实施方式二,若所述签名值是支付端使用非对称加密算法进行数字签名生成的签名值,则服务端获取所述支付端的公钥,并且根据该公钥和所述待校验信息验证所述签名值。
在支付端使用非对称加密算法进行数字签名生成签名值时,支付端使用哈希算法对所述待签名信息进行哈希计算得到哈希值(即信息摘要),支付端使用支付端的私钥对该哈希值加密得到加密结果(即签名值);与此相对应的,服务端获取所述支付端的公钥,服务端使用该公钥解密所述签名值得到解密结果(即信息摘要),并且服务端使用相同的哈希算法对所述待校验信息进行哈希计算得到哈希值(即校验值),比较该解密结果(即信息摘要)与该校验值是否相同,若相同,则确定数字签名验证通过,否则,则确定验证不通过。
服务端可以有多种方式获取支付端的公钥,例如,在服务端预先建立有支付端识别信息与支付端公钥的对应关系,服务端根据所述支付凭证中的支付端识别信息获取对应的支付端公钥;又例如,当支付端基于IBC(Identity-Based Cryptograph)产生的私钥对所述待签名信息进行数字签名时,并且支付端以支付端识别信息作为支付端的公钥时,则服务端获取所述支付凭证中的支付端识别信息作为支付端的公钥;还例如,当支付端基于PKI(Public Key Infrastructure)体系产生的私钥对所述待签名信息进行数字签名时,支付端可以在向服务端传递的所述支付凭证中包括支付端的数字证书,如此服务端从该数字证书中获取支付端的公钥,可以理解,实际应用过程中,还应当使用预置的根证书验证该支付端的数字证书是否合法。
可以理解,服务端还可以使用支付端的数字证书中的序列号(serialNumber)、主题(subject)、主题唯一标识(subjectUniqueID)或公钥等具有唯一性的标签值用于识别支付端,即将该唯一性的标签值作为支付端识别信息,如此,即所述支付凭证中包括的支付端识别信息为所述支付凭证中包括的数字证书中具有唯一性的标签值。
可以理解,当同时实施上述多种验证方式时,只有每种验证方式都确定验证通过,才确定所述支付凭证合法,否则,若任一验证方式为验证不通过,则确定所述支付凭证不合法。也可以理解,当只实施上述验证方式一或验证方式二时,若验证方式一或验证方式二确定验证通过,则确定所述支付凭证合法,否则,若验证方式一或验证方式二验证不通过,则确定所述支付凭证不合法。
进一步的,服务端还可以将所述支付凭证的验证结果返回给所述支付凭证的发送方,例如,如果确定所述支付凭证合法,则向所述支付凭证的发送方返回表征所述支付凭证合法的信息,如果确定所述支付凭证不合法,则向所述支付凭证的发送方返回表征所述支付凭证不合法的信息。如此实施的主要作用在于,可以使得发送方及时地获取支付凭证的验证结果,以此确定数字资产划转是否成功等。
步骤403.从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户。
服务端从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户。根据数字资产的类型,可以采取相对应的划转方式,例如:
以数字资产为余额形式的数字资产为例,则从所述支付端识别信息所在的账户扣减所述相应的数字资产,在所述接收端识别信息所在的账户增加所述相应的数字资产。例如,以所述支付端识别信息所在账户的余额是100、所述接收端识别信息所在账户的余额是100、所述相应的数字资产是20为例,则从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户之后,所述支付端识别信息所在的账户的余额是80,所述接收端识别信息所在的账户的余额是120;又例如,以服务端是第三方支付平台为例(如类似支付宝或微信支付的支付平台),则还可以从所述支付端识别信息所在账户对应的银行账户中划转所述相应的数字资产,并且划转给所述接收端识别信息所在的账户。
以数字资产为字符串形式的数字资产为例,在服务端记录有每个数字资产的属主,即在服务端对表征数字资产的字符串记录有相应的属主,则将所述相应的数字资产的属主由所述支付端识别信息所在的账户更改为所述接收端识别信息所在的账户。
进一步的,服务端还可以将支付通知信息发送给所述支付端识别信息所在的账户。例如,服务端生成支付通知信息,并且获取所述支付端识别信息所在账户的手机号码、即时通讯账号、电子邮箱等联系方式,然后将支付通知信息通过短信、即时通讯、电子邮件等方式进行发送。
可以理解,本发明实施例中支付端识别信息所在的账户,是指服务端根据该支付端识别信息所确定的账户,例如,支付端识别信息为用户账号,并且根据该用户账号可以标识和确定相应的账户;又例如,支付端识别信息为手机号码,并且根据该手机号码可以标识和确定相应的账户;还例如,服务端将支付设备与用户账户进行绑定,并且支付端识别信息为一个设备标识,根据该设备标识通过绑定关系可以确定相应的用户账户。
可以理解,本发明实施例中接收端识别信息所在的账户,是指服务端根据该接收端识别信息所确定的账户,例如,接收端识别信息为商户账号,并且根据该商户账号可以标识和确定相应的账户;又例如,接收端识别信息为手机号码,并且根据该手机号码可以标识和确定相应的账户;还例如,服务端将接收设备与商户账户进行绑定,并且接收端识别信息为一个设备标识,根据该设备标识通过绑定关系可以确定相应的商户账户。
可以理解,本发明实施例中的存储,既可以是易失性存储,也可以是非易失性存储,对此本发明实施例并不进行限定。
由上实施过程可知,本发明可以通过上述应用于支付端的实施例、应用于接收端的实施例和应用于服务端的实施例一共同形成一个应用于图1所示的实施环境中的实施例。支付端生成支付凭证,并将该支付凭证传递给接收端,接收端将该支付凭证转发给服务端,服务端则对该支付凭证进行验证,并且在验证该支付凭证合法之后从该支付端所在的账户将相应的数字资产划转给该接收端所在的账户。本发明实施例的主要优点在于,由支付端或接收端生成交易识别信息,服务端通过对包括该交易识别信息在内的相关信息进行验证,可以有效地防止发送方(如接收端或中转设备)将同一支付凭证先后多次重复发送给数字资产服务端请求数字资产的划转。
五、一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例二
请参考图5,其示出了本发明提供的一种可用于双离线支付下防止重复划转的方法应用于服务端的实施例二的流程图。本实施例以该方法应用于图1所示的实施环境中的服务端来举例说明,该方法可以包括:
步骤501.接收发送方发送的离线支付包,所述离线支付包中包括多个支付凭证,其中,每个支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
如上述应用于接收端的实施例中所述,发送方(如接收端或中转设备等)可以将多个支付凭证作为一个离线支付包发送给服务端,相应的,则服务端接收发送方发送的离线支付包,所述离线支付包中包括多个支付凭证,其中,每个支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产。
步骤502.可选的,判断所述离线支付包中是否有相互重复的支付凭证,并根据该判断结果确定是否执行步骤503。
为了避免所述离线支付包中多个支付凭证间有相互重复的支付凭证,即为了避免因为有相互重复的支付凭证而导致数字资产的重复划转,则服务端可以判断所述离线支付包中是否有相互重复的支付凭证,并根据该判断结果确定是否执行步骤503。
例如,如果判断所述离线支付包中没有相互重复的支付凭证,则确定所述离线支付包合法,继续执行步骤503;如果判断所述离线支付包中有相互重复的支付凭证,则确定所述离线支付包不合法,不继续执行步骤503,或者去除所述离线支付包中重复的支付凭证,再继续执行步骤503。
去除所述离线支付包中重复的支付凭证,通常是指对于相互重复的支付凭证,保留其中一个支付凭证,而将其余重复的支付凭证删除,例如支付凭证A和支付凭证B是相互重复的支付凭证,则保留支付凭证A,删除支付凭证B。
判断所述离线支付包中是否有相互重复的支付凭证,可以包括多种实施方式:
例如,若每个支付凭证中的交易识别信息是支付端生成的交易识别信息,则根据每个支付凭证中的支付端识别信息和交易识别信息判断是否有相互重复的支付凭证,即如果存在支付端识别信息和交易识别信息都相同的支付凭证,则判断有相互重复的支付凭证。
又例如,若每个支付凭证中的交易识别信息是接收端生成的交易识别信息,则根据每个支付凭证中的接收端识别信息和交易识别信息判断是否有相互重复的支付凭证,即如果存在接收端识别信息和交易识别信息都相同的支付凭证,则判断有相互重复的支付凭证。
还例如,若每个支付凭证中的数字资产为字符串形式的数字资产,则根据每个支付凭证中相应的数字资产判断是否有相互重复的支付凭证,即如果存在相应的数字资产都相同的支付凭证,则判断有相互重复的支付凭证。
步骤503.对所述离线支付包中的每个支付凭证分别进行验证,对于经验证确定为合法的支付凭证,将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户划转给该支付凭证中接收端识别信息所在的账户。
服务端对所述离线支付包中的每个支付凭证分别进行验证,对于经验证确定为合法的支付凭证,将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户划转给该支付凭证中接收端识别信息所在的账户。
具体的,上述服务端对每个支付凭证分别进行验证,其中,对于进行验证的支付凭证,验证方式包括:
验证方式一,若所述验证的支付凭证中的交易识别信息是支付端生成的交易识别信息,则根据当前存储的支付端验证信息验证是否接收过所述验证的支付凭证,若否,则确定验证通过,并且存储支付端验证信息,所述支付端验证信息为根据所述验证的支付凭证中的支付端识别信息和所述验证的支付凭证中的交易识别信息确定;或/和,
验证方式二,若所述验证的支付凭证中的交易识别信息是接收端生成的交易识别信息,则根据当前存储的接收端验证信息验证是否接收过所述验证的支付凭证,若否,则确定验证通过,并且存储接收端验证信息,所述接收端验证信息为根据所述验证的支付凭证中的接收端识别信息和所述验证的支付凭证中的交易识别信息确定。
优选的,所述验证方式一还包括:
第一种实施方式,所述支付端验证信息为根据所述验证的支付凭证中的支付端识别信息和所述验证的支付凭证中的交易识别信息组合生成,所述根据当前存储的支付端验证信息验证是否接收过所述验证的支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述支付端验证信息,若不存在,则确定验证通过;或者,
第二种实施方式,所述支付端验证信息为所述验证的支付凭证中的支付端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述验证的支付凭证包括:判断所述当前存储的支付端验证信息中是否存在所述验证的支付凭证中的支付端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,若不存在,则确定验证通过;或者,
第三种实施方式,所述验证的支付凭证中的交易识别信息为递增性质的交易识别信息,所述支付端验证信息为所述验证的支付凭证中的支付端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,所述根据当前存储的支付端验证信息验证是否接收过所述验证的支付凭证包括:根据所述验证的支付凭证中的支付端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述验证的支付凭证中的交易识别信息大于所述对应的交易识别信息,则确定验证通过。
优选的,所述验证方式二还包括:
第四种实施方式,所述接收端验证信息为根据所述验证的支付凭证中的接收端识别信息和所述验证的支付凭证中的交易识别信息组合生成,所述根据当前存储的接收端验证信息验证是否接收过所述验证的支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述接收端验证信息,若不存在,则确定验证通过;或者,
第五种实施方式,所述接收端验证信息为所述验证的支付凭证中的接收端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述验证的支付凭证包括:判断所述当前存储的接收端验证信息中是否存在所述验证的支付凭证中的接收端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,若不存在,则确定验证通过;或者,
第六种实施方式,所述验证的支付凭证中的交易识别信息为递增性质的交易识别信息,所述接收端验证信息为所述验证的支付凭证中的接收端识别信息与所述验证的支付凭证中的交易识别信息的对应关系,所述根据当前存储的接收端验证信息验证是否接收过所述验证的支付凭证包括:根据所述验证的支付凭证中的接收端识别信息获取对应的交易识别信息,若没有获取到对应的交易识别信息,或者若所述验证的支付凭证中的交易识别信息大于所述对应的交易识别信息,则确定验证通过。
优选的,所述对于进行验证的支付凭证,验证方式还包括:
验证方式三,获取所述发送方的身份识别信息,验证所述身份识别信息是否具有对所述验证的支付凭证中接收端识别信息的数字资产划转权限;或/和,
验证方式四,所述验证的支付凭证中还包括交易时间或/和到期时间,所述服务端根据所述交易时间或/和所述到期时间以及预设时长确定时间段,判断所述服务端的当前系统时间是否在所述时间段内,若是,则确定验证通过;或/和,
验证方式五,所述验证的支付凭证还包括签名值,所述签名值为支付端对待签名信息进行数字签名生成的签名值,所述待签名信息包括所述验证的支付凭证中的接收端识别信息、所述验证的支付凭证中的交易识别信息和所述验证的支付凭证中的相应的数字资产,则根据所述签名值对所述验证的支付凭证进行数字签名验证。
优选的,若实施所述验证方式四,则所述方法还包括:
若实施所述验证方式一,则在所述存储支付端验证信息之后,当所述服务端的当前系统时间达到所述时间段之后的时间,从所述当前存储的支付端验证信息中废弃所述支付端验证信息;或者,
若实施所述验证方式二,则在所述存储接收端验证信息之后,当所述服务端的当前系统时间达到所述时间段之后的时间,从所述当前存储的接收端验证信息中废弃所述接收端验证信息。
对于进行验证的支付凭证,当同时实施上述多种验证方式时,只有每种验证方式都确定验证通过,才确定该验证的支付凭证合法,否则,若任一验证方式为验证不通过,则确定该验证的支付凭证不合法。
可以理解,上述验证方式一至验证方式五是以对一个支付凭证的验证为例进行说明的,具体的实施方式,还可以参考上述应用于服务端的实施例一步骤402中验证方式一至验证方式五的相关说明,在此不再赘述。
上述对于经验证确定为合法的支付凭证,在将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户,可以包括多种实施方式:
实施方式一,对于进行验证的支付凭证,若确定该支付凭证合法,则将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户。
实施方式二,当每个支付凭证经验证都确定为合法之后,再对每个支付凭证分别执行所述将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户。本实施方式二与上述实施方式一的主要区别在于,本实施方式二是在确定每个支付凭证都合法之后,才根据每个支付凭证进行数字资产的划转,如果有任意一个支付凭证不合法,则不会根据每个支付凭证进行数字资产的划转;而上述实施方式一是对于经验证为合法的支付凭证,则根据该支付凭证进行数字资产的划转,对于经验证为不合法的支付凭证,则不会根据该支付凭证进行数字资产的划转,而不是在确定每个支付凭证都合法之后才进行数字资产的划转。
根据每个支付凭证分别进行数字资产的划转,即上面所述将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户,可以包括:
若数字资产为余额形式的数字资产,则从该支付凭证中支付端识别信息所在的账户将该支付凭证中相应的数字资产划转给该支付凭证中接收端识别信息所在的账户;或者,若数字资产为字符串形式的数字资产,则将该支付凭证中相应的数字资产的属主由该支付凭证中支付端识别信息所在的账户更改为该支付凭证中接收端识别信息所在的账户。进一步的,在上述将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户,还可以包括将支付通知信息发送给该支付凭证中支付端识别信息所在的账户。具体的,还可以参考上述应用于服务端的实施例一步骤403中的相关说明,在此不再赘述。
由上实施过程可知,本发明可以通过上述应用于支付端的实施例、应用于接收端的实施例和应用于服务端的实施例二共同形成一个应用于图1所示的实施环境中的实施例。本发明实施例不仅具有上述应用于服务端的实施例的优点,而且可以同时接收多个支付凭证并能有效防止数字资产重复划转的问题。
需要说明的是,在本文中,术语“包括”、“包含”、“传递”、“发送”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者系统不仅包括那些要素,而且还可以包括没有明确列出的其他要素,或者是还可以包括为这种过程、方法、产品或者系统所固有的要素。
术语“第一”、“第二”、“第三”等(如果存在)仅用于将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。应该理解,这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
上述本发明的各实施例序号仅仅为了描述,不代表实施例的优劣。
可以以许多方式来实现本发明的方法、支付端、接收端和服务端。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法、支付端、接收端和服务端。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种可用于双离线支付下防止重复划转的方法,其特征在于,应用于支付端,所述方法包括:
生成支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产,所述支付端识别信息为所述支付端的识别信息;
将所述支付凭证通过本地通信传递给接收端,以使得所述接收端将所述支付凭证发送给服务端,从而使得所述服务端根据所述支付凭证进行数字资产的划转。
2.一种可用于双离线支付下防止重复划转的方法,其特征在于,应用于接收端,所述方法包括:
接收支付端通过本地通信传递的支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
将所述支付凭证发送给服务端,以使得所述服务端根据所述支付凭证进行数字资产的划转。
3.一种可用于双离线支付下防止重复划转的方法,其特征在于,应用于服务端,所述方法包括:
获取支付凭证,所述支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
对所述支付凭证进行验证,若实施的验证方式都确定验证通过,则从所述支付端识别信息所在的账户将所述相应的数字资产划转给所述接收端识别信息所在的账户;
所述对所述支付凭证进行验证包括:
验证方式一,所述交易识别信息是支付端生成的交易识别信息,根据当前存储的支付端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储支付端验证信息,所述支付端验证信息为根据所述支付端识别信息和所述交易识别信息确定;或/和,
验证方式二,所述交易识别信息是接收端生成的交易识别信息,根据当前存储的接收端验证信息验证是否接收过所述支付凭证,若否,则确定验证通过,并且存储接收端验证信息,所述接收端验证信息为根据所述接收端识别信息和所述交易识别信息确定。
4.一种可用于双离线支付下防止重复划转的方法,其特征在于,应用于服务端,所述方法包括:
接收发送方发送的离线支付包,所述离线支付包中包括多个支付凭证,其中,每个支付凭证包括支付端识别信息、接收端识别信息、交易识别信息和相应的数字资产;
对所述离线支付包中的每个支付凭证分别进行验证,对于经验证确定为合法的支付凭证,将该支付凭证中相应的数字资产从该支付凭证中支付端识别信息所在的账户支付给该支付凭证中接收端识别信息所在的账户。
5.一种支付端设备,其特征在于,所述支付端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如权利要求1所述的方法。
6.一种接收端设备,其特征在于,所述接收端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如权利要求2所述的方法。
7.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如权利要求1所述的方法,或者使得安装有所述芯片的设备执行如权利要求2所述的方法。
8.一种服务端设备,其特征在于,所述服务端设备包括处理器、存储器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括如权利要求3所述的方法,或者所述程序运行时执行包括如权利要求4所述的方法。
9.一种系统,其特征在于,所述系统包括支付端设备、接收端设备以及服务端设备,其中,所述支付端设备包括如权利要求5所述的支付端设备;所述接收端设备包括如权利要求6所述的接收端设备;所述服务端设备包括如权利要求8所述的服务端设备。
10.一种存储介质,其特征在于,所述存储介质中存储有程序,所述程序用于实现包括权利要求1所述的方法,或者所述程序用于实现包括权利要求2所述的方法,或者所述程序用于实现包括权利要求3所述的方法,或者所述程序用于实现包括权利要求4所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119836.3A CN113781025A (zh) | 2021-01-28 | 2021-01-28 | 一种可用于双离线支付下防止重复划转的方法、服务端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119836.3A CN113781025A (zh) | 2021-01-28 | 2021-01-28 | 一种可用于双离线支付下防止重复划转的方法、服务端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113781025A true CN113781025A (zh) | 2021-12-10 |
Family
ID=78835567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110119836.3A Pending CN113781025A (zh) | 2021-01-28 | 2021-01-28 | 一种可用于双离线支付下防止重复划转的方法、服务端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113781025A (zh) |
-
2021
- 2021-01-28 CN CN202110119836.3A patent/CN113781025A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107609866B (zh) | 基于虚拟货币的电子支付、电子收款方法及装置 | |
CN107798531B (zh) | 电子支付方法及系统 | |
US20230146705A1 (en) | Federated closed-loop system | |
CN102801710B (zh) | 一种网络交易方法和系统 | |
US11182783B2 (en) | Electronic payment method and electronic device using ID-based public key cryptography | |
US20220303258A1 (en) | Computer-implemented system and method | |
KR20140035775A (ko) | 결제 방법, 이를 실행하는 결제 서버, 이를 저장한 기록 매체 및 이를 실행하는 시스템 | |
WO2012123394A1 (en) | Off-line transfer of electronic tokens between peer-devices | |
RU2005118828A (ru) | Способ осуществления многофакторной строгой аутентификации держателя банковской карты с использованием мобильного телефона в среде мобильной связи при осуществлении межбанковских финансовых транзакций в международной платежной системе по протоколу спецификации 3-d secure (варианты) и реализующая его система | |
CN104486356A (zh) | 基于互联网在线交易的数据传输方法 | |
JP2015537399A (ja) | モバイル決済のためのアプリケーションシステム及びモバイル決済手段を提供する及び用いるための方法 | |
US10657523B2 (en) | Reconciling electronic transactions | |
US20230325791A1 (en) | Proxied cross-ledger authentication | |
CN111062717B (zh) | 一种数据转移处理方法、装置和计算机可读存储介质 | |
CN115119531A (zh) | 使用区块链事务的多因素认证 | |
Kisore et al. | A secure SMS protocol for implementing digital cash system | |
KR102263220B1 (ko) | 블록체인을 이용한 전자상거래 지불 방법 | |
CN113781025A (zh) | 一种可用于双离线支付下防止重复划转的方法、服务端及系统 | |
EP3188104A1 (en) | Peer-to-peer transaction authorization | |
CN108550036A (zh) | 一种建立安全基础设施的方法、终端及装置 | |
KR102395870B1 (ko) | 블록체인 기반의 암호화 키 분산관리 네트워크를 이용한 결제 서비스를 제공하는 결제 단말 장치, 결제 중계 서버 및 그 동작 방법 | |
CN113762938A (zh) | 用于双离线场景下的聚合支付方法、装置及接收端 | |
US20240078522A1 (en) | Interaction channel balancing | |
CN113762962A (zh) | 一种支付端丢失数字资产的解决方法、服务端及系统 | |
CN113807830A (zh) | 用于双离线场景下的聚合支付方法、装置、接收端及支付端 |
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 |