双离线支付的实现方法和装置
技术领域
本说明书涉及网络通信技术领域,尤其涉及一种双离线支付的实现方法和装置。
背景技术
在网络支付中,通常的情形是付款方设备和收款设备中的至少一方能够与支付服务器进行通信,向支付服务器发出支付或收款的请求,支付服务器根据收到的请求进行款项的实时划转。
而双离线支付是指在支付发生时,付款方设备和收款设备都不能与支付服务器进行实时通信的应用场景,也就是说,付款方设备和收款设备相对于支付服务器都处于离线状态。由于双离线支付发生时没有支付服务器的参与,款项无法实时从付款方账户转移至收款方账户,因此双离线支付场景对支付的安全性提出了更高的要求,而达到更高的安全性往往会导致支付过程的繁琐,造成付款方和收款方的不便。
发明内容
有鉴于此,本说明书提供一种双离线支付的实现方法,应用于支付客户端,所述方法包括:
启动离线支付功能并获取支付金额;
生成携带有支付金额和验证信息的离线支付凭证;
向收款设备提供所述离线支付凭证,供收款设备在通过验证信息验证所述离线支付凭证合法后,认可所述支付客户端的支付。
本说明书提供的一种双离线支付的实现方法,应用于收款设备,所述方法包括:
从用户的支付客户端获取离线支付凭证;所述离线支付凭证携带有支付金额和验证信息;
采用所述验证信息验证所述离线支付凭证是否合法;
在验证所述离线支付凭证合法后,认可所述支付客户端的支付。
本说明书还提供了一种双离线支付的实现装置,应用于支付客户端,所述装置包括:
支付金额获取单元,用于启动离线支付功能并获取支付金额;
支付凭证生成单元,用于生成携带有支付金额和验证信息的离线支付凭证;
支付凭证提供单元,用于向收款设备提供所述离线支付凭证,供收款设备在通过验证信息验证所述离线支付凭证合法后,认可所述支付客户端的支付。
本说明书提供的一种双离线支付的实现装置,应用于收款设备,所述装置包括:
支付凭证获取单元,用于从用户的支付客户端获取离线支付凭证;所述离线支付凭证携带有支付金额和验证信息;
支付凭证验证单元,用于采用所述验证信息验证所述离线支付凭证是否合法;
支付接受单元,用于在验证所述离线支付凭证合法后,认可所述支付客户端的支付。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述应用于支付客户端的双离线支付的实现方法所述的步骤。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述应用于收款设备的双离线支付的实现方法所述的步骤。
本说明书提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述应用于支付客户端的双离线支付的实现方法所述的步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述应用于收款设备的双离线支付的实现方法所述的步骤。
由以上技术方案可见,本说明书的实施例中,用户的支付客户端启动离线支付功能后,生成带有支付金额和验证信息的离线支付凭证提供给收款设备,收款设备对离线支付凭证进行合法性验证,通过验证即可承认支付客户端的支付行为完成。本说明书的实施例中用户可以基于常规的付款流程来进行双离线场景中的支付,简化了用户的操作,具有更好的便利性;并且支付过程中的合法性验证使得双离线支付具有更高的安全性。
附图说明
图1是本说明书实施例应用场景示例一的网络结构示意图;
图2是本说明书实施例应用场景示例二的网络结构示意图;
图3是本说明书实施例中一种应用于支付客户端的双离线支付的实现方法的流程图;
图4是本说明书实施例中一种应用于收款设备的双离线支付的实现方法的流程图;
图5是本说明书应用示例一中支付客户端、收款方手持设备、收款服务器与支付服务器之间的交互流程图;
图6是本说明书应用示例二中支付客户端、收款方的局域网服务器、收款服务器与支付服务器之间的交互流程图;
图7是终端或服务器的一种硬件结构图;
图8是本说明书实施例中一种应用于支付客户端的双离线支付的实现装置的逻辑结构图;
图9是本说明书实施例中一种应用于收款设备的双离线支付的实现装置的逻辑结构图。
具体实施方式
本说明书的实施例提出一种新的双离线支付的实现方法,用户的支付客户端启动离线支付功能,获取支付金额,基于支付金额和验证信息生成离线支付凭证提供给收款设备,收款设备通过验证信息验证离线支付凭证合法后,即可认可支付客户端已完成该支付金额的支付,使得用户可以按照常规的支付流程完成双离线支付,用户操作更为简便,同时采用验证信息来达到双离线支付对安全性的更高要求,在满足安全要求的前提下为用户提供了更多便利。
本说明书实施例中,用户使用其终端上运行的支付客户端进行支付,收款方通过收款设备来接受支付。对应于支付客户端的服务端运行在支付服务器上。在双离线支付进行时,支付客户端与支付服务器之间、收款设备与支付服务器之间均没有网络连通。在一些应用场景中,在离线状态结束后,收款方的收款设备可以与支付服务器进行通信,由收款设备向支付服务器发起双离线支付的收款请求;在另一些应用场景中,收款方由收款服务器(而不是收款设备)来向支付服务器发起双离线支付的收款请求,在双离线支付进行时收款设备与收款服务器之间没有网络连通,在离线状态结束后收款方的收款设备可以与收款服务器进行通信,收款服务器与支付服务器之间始终可以进行网络通信。
用户的终端可以是手机、平板电脑、笔记本等设备;收款方的收款设备可以是扫描枪、读码器、手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等设备;收款服务器或支付服务器可以是一个物理或逻辑服务器,也可以是由两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现本说明书实施例中收款服务器或支付服务器的各项功能。收款方的收款设备与收款服务器可以是一个
根据实际应用场景的需求,本说明书实施例的应用场景可以有各种不同的网络结构,不做限定。以下举两个例子说明。
应用场景示例一中,收款设备为收款方的手持设备,收款方由收款服务器向支付服务器发起双离线支付的收款请求,其网络结构如图1所示。在双离线支付进行时,用户使用其终端进行支付,收款方通过手持设备来接受支付,用户的终端与收款方手持设备之间、收款设备与收款服务器之间均没有网络连通。在离线状态结束后,收款方的收款设备可以与收款服务器进行通信。收款服务器与支付服务器之间始终可以进行网络通信。
应用场景示例二中,收款设备为收款方的局域网服务器,收款方由收款服务器向支付服务器发起双离线支付的收款请求,其网络结构如图2所示。在双离线支付进行时,用户的终端能够与收款方的局域网服务器通过局域网进行通信,收款设备与收款服务器之间没有网络连通。在离线状态结束后,收款方的收款设备可以与收款服务器进行通信。收款服务器与支付服务器之间始终可以进行网络通信。
本说明书的实施例中,用户的终端上运行有支付客户端,对应于该支付客户端的服务端运行在支付服务器上。支付客户端的双离线支付的实现方法的流程如图3所示,应用于收款设备的双离线支付的实现方法的流程如图4所示。
在支付客户端,步骤310,启动离线支付功能并获取支付金额。
支付客户端上的离线支付功能用来进行双离线环境下的支付,启动离线支付功能即打开了支付客户端离线支付的入口。
当用户在双离线环境下希望通过支付客户端进行支付时,可以采用各种方式来启动离线支付功能,并使支付客户端获取到要支付的金额,本说明书的实施例对具体方式不做限定。例如,可以由用户在支付客户端通过手动操作来进行,支付客户端根据用户的操作启动离线支付功能,并接收用户输入的支付金额,这种方式适用于任何一种双离线支付的场景。
可以根据实际应用场景的特点,来选择适用于该场景的启动离线支付功能和获取支付金额的具体方式,本说明书的实施例不做限定。
例如,在前述应用场景示例一中,用户的终端与收款方手持设备之间没有网络连通。可以由收款方向用户提供离线订单码。离线订单码中携带有支付客户端离线支付功能的调用信息,用户的终端在扫描离线订单码后即可启动支付客户端的离线支付功能。可以由用户在离线支付功能启动后手动输入支付金额,由支付客户端在启动离线支付功能后从接收的用户输入中获取支付金额;也可以将支付金额携带在离线订单码中,用户的终端在扫描离线订单码后既启动离线支付功能同时又可以从离线订单码的信息中获取到支付金额。
再如,在前述应用场景示例二中,用户的终端能够与收款方的局域网服务器通过局域网进行通信,用户可以使用其终端访问局域网服务器提供的页面。可以在这些页面中采用对支付客户端的调用指令来实现对支付客户端离线支付功能的调用。当用户在这些页面中使用离线支付功能时,支付客户端接收调用指令,根据调用指定启动离线支付功能。类似的,可以由用户在离线支付功能启动后手动输入支付金额,由支付客户端在启动离线支付功能后从接收的用户输入中获取支付金额;也可以将支付金额携带在调用指令中,支付客户端在收到调用指令后既启动离线支付功能同时又从调用指令中获取到支付金额。
在支付客户端,步骤320,生成携带有支付金额和验证信息的离线支付凭证。
对用户和收款方来说,某个支付金额的离线支付凭证就意味着该支付金额的款项。当用户的支付客户端将离线支付凭证传递给收款方时,就意味着将该款项支付给了收款方。用来生成离线支付凭证的验证信息体现了双离线支付所具有的安全性。根据不同应用场景的特点和对安全性的要求,可以采用各种用于提高支付安全性的措施,将这些措施需要传递的信息作为验证信息,不做限定。
例如,可以将对支付客户端的数字签名和用户的数字签名进行验签来作为验证措施。通常可以将支付客户端的数字签名预置在收款方的收款设备内,将支付客户端的数字签名、用户用其私钥进行的数字签名、和用户的公钥作为验证信息,携带在离线支付凭证中。收款方设备在验证离线支付凭证时,利用本地保存的支付客户端的公钥对离线支付凭证中的支付客户端数字签名进行验签,利用离线支付凭证中的用户公钥对用户的数字签名进行验签,两者有一个未通过验签则验证失败。支付客户端的数字签名能够证明离线支付凭证是由合法的支付客户端生成的,用户的数字签名则可以使得本次支付具有不可抵赖性。
可以为离线支付凭证设置有效期,这种情形下验证信息中可以包括离线支付凭证的生成时间。收款方设备在验证离线支付凭证时,根据离线支付凭证的生成时间和当前时间,判断该离线支付凭证是否还在有效期内,如果已超过有效期则验证失败。
在一些应用场景中,收款方能够掌握用户的个人身份信息,如姓名、证件信息等,高铁、飞机上的支付场景即是如此。这些应用场景中,验证信息中可以包括用户的姓名、用户的证件信息等个人身份信息。其中,用户的证件信息可以是部分证件号码、证件号码的哈希值等既能够保护用户隐私、又能够进行核对的数据。收款方设备在验证离线支付凭证时,将自己掌握的用户的个人身份信息与离线支付凭证中的个人身份信息进行核对,如果不一致,则验证失败。例如,高铁、飞机上的场景中,收款方设备可以比对乘客信息中的用户姓名和用户证件信息,与离线支付凭证中的用户姓名和用户证件信息是否一致,来对支付用户进行核对。对用户个人身份信息的核对能够极大的提高支付的安全性。
根据支付客户端的具体实现和用户设置,支付客户端可以在启动离线支付功能和得到支付金额后直接生成离线支付凭证;也可以在启动离线支付功能和得到支付金额后,先对用户进行身份认证,在用户通过本地身份认证后,再生成携带有支付金额和验证信息的离线支付凭证,如果用户没有通过本地身份认证则离线支付失败。支付客户端可以采用各种本地身份认证方式,如人脸认证、指纹认证、密码认证等。
由于双离线支付场景中不能实时进行款项的划转,可能发生用户支付的款项超过其拥有的支付限额的情形。为了避免这种情况发生,可以在支付客户端本地为用户维护离线支付总额度,在启动离线支付功能和得到支付金额后,支付客户端比对支付金额和离线支付总额度,如果支付金额不大于本地保存的离线支付总额度,则生成离线支付凭证,并且在本地保存的离线支付总额度中扣减掉本次支付的支付金额,即:将本地保存的离线支付总额度更新为更新前的离线支付总额度减去本次支付的支付金额;如果支付金额大于本地保存的离线支付总额度,则离线支付失败。
离线支付总额度可以由支付服务器在用户的支付客户端在线的情况下下发给支付客户端,支付客户端接收后,将本地保存的离线支付总额度更新为支付服务器下发的离线支付总额度。支付服务器可以定期计算并下发每个用户的离线支付总额度;也可以在用户的支付客户端或用户的终端发生特定行为的时候计算并下发每个用户的离线支付总额度,如用户登录时、检测到用户终端进入车站或机场区域时;不做限定。
在支付客户端,步骤330,向收款设备提供生成的离线支付凭证,供收款设备在通过验证信息验证该离线支付凭证合法后,认可本支付客户端的支付。
在收款方的收款设备上,步骤410,从用户的支付客户端获取离线支付凭证;离线支付凭证携带有支付金额和验证信息。
用户的支付客户端与收款方的收款设备之间可以采用各种方式,来传递离线支付凭证。具体方式可以根据实际应用场景的具体实现、实际应用场景中用户的终端与收款设备之间传递信息的可行方式来决定。
例如,在前述应用场景示例一中,收款方的收款设备为手持设备,用户的终端与手持设备之间没有网络连通。可以由用户的支付客户端根据离线支付凭证生成离线支付码,并展示生成的离线支付码,供收款设备扫描。收款方的手持设备扫描用户的支付客户端展示的离线支付码,获取离线支付凭证。离线支付码可以是一维条形码、二维码或其他形式的码,不做限定。
再如,在前述应用场景示例二中,收款方的收款设备是局域网服务器,用户的终端能够与局域网服务器通过局域网进行通信。可以将收款方局域网服务器的地址预置在用户的支付客户端内,由支付客户端将生成的离线支付凭证通过局域网发送到局域网服务器的地址,收款方的局域网服务器即可收到离线支付凭证。
在收款方的收款设备上,步骤420,采用验证信息验证离线支付凭证是否合法。
如前所述,可以根据不同应用场景的特点和对安全性的要求,来决定采取哪些提高支付安全性的措施,并将将这些措施需要传递的信息作为验证信息。收款设备按照对应于验证信息具体内容的验证措施,来对验证信息进行检验。所有的验证信息均通过检验后,收款设备认为离线支付凭证合法;验证信息中的任意一个没有通过检验,则离线支付凭证不合法。
验证信息的具体内容、以及对各种验证信息的检验措施请参见对步骤320的描述,不再重复。
在收款方的收款设备上,步骤430,在验证离线支付凭证合法后,认可该支付客户端的支付。
在收款设备验证离线支付凭证合法后,即认为用户的支付客户端已经完成了支付。
在由收款设备向支付服务器发起双离线支付的收款请求的应用场景中,在离线状态结束后,收款设备恢复与支付服务器之间的网络通信,收款设备将离线支付凭证发送给支付服务器。支付服务器验证离线支付凭证合法后,将用户账户中支付金额的款项转移至收款方账户中。
在收款方由收款服务器向支付服务器发起双离线支付的收款请求的应用场景中,在离线状态结束后,收款设备恢复与收款服务器之间的网络通信,收款设备将离线支付凭证上传给收款服务器,由收款服务器发送给支付服务器。支付服务器验证离线支付凭证合法后,将用户账户中支付金额的款项转移至收款方账户中。
可见,本说明书的实施例中,用户的支付客户端启动离线支付功能,获取支付金额,生成带有支付金额和验证信息的离线支付凭证提供给收款设备,收款设备通过验证信息验证离线支付凭证合法后,即可认可支付客户端已完成该支付金额的支付。用户可以基于常规的付款流程来进行双离线场景中的支付,简化了用户的操作,并且支付过程中的合法性验证使得双离线支付具有更高的安全性
本说明书的实施例中,用户的支付客户端启动离线支付功能后,生成带有支付金额和验证信息的离线支付凭证提供给收款设备,收款设备对离线支付凭证进行合法性验证,通过验证即可承认支付客户端的支付行为完成。本说明书的实施例中用户可以基于常规的付款流程来进行双离线场景中的支付,简化了用户的操作,并且支付过程中的合法性验证使得双离线支付具有更高的安全性,在满足安全要求的前提下为用户提供了更多便利。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的应用示例一中,航空公司在飞机上向用户(乘客)提供纪念品、餐食等需要付费购买的商品,某个第三方支付平台的用户可以通过安装在其终端上的支付客户端付费购买。支付客户端保存有该支付客户端的私钥、该用户在该第三方支付平台的私钥和公钥。
该第三方支付平台的支付服务器根据各个用户的信用等级,以预定周期(如一周、两周等)计算用户的离线支付总额度,并下发给各个用户的支付客户端。支付客户端将下发的离线支付总额度保存在本地。
航空公司在飞机上的显示屏向用户展示可供购买的商品、和每个商品对应的离线订单码。离线订单码中携带有支付客户端离线支付功能的调用信息、商品信息、金额、航空公司、航班等信息,并且具有第三方支付平台规定的格式。用户在飞机上购买商品的支付流程如图5所示。
当用户在飞机上希望购买某个商品时,打开其终端上该第三方支付平台的支付客户端,扫描离线订单码。
支付客户端根据离线订单码中离线支付功能的调用信息启动离线支付功能,提取离线订单码中商品信息、金额等信息,在离线支付页面展示给用户,请用户对本次支付进行确认。
在收到用户的确认支付的操作后,支付客户端读取本地保存的离线支付总额度,与离线订单码中的金额做比较。如果离线订单码中的金额超过读取的离线支付总额度,则向用户显示离线支付失败,支付流程结束。如果离线订单码中的金额不超过读取的离线支付总额度,支付客户端向用户显示本地身份认证页面,对用户进行本地身份认证。根据用户开通的本地身份认证方式,可以对用户进行人脸核身、指纹核身、或密码核身等认证。
在用户通过本地身份认证后,支付客户端以离线订单码中的金额作为支付金额生成离线支付凭证,离线支付凭证中还携带有支付客户端的数字签名、用户的数字签名、用户的公钥、用户的姓名、用户的部分身份证号码、和离线支付凭证的生成时间。支付客户端更新离线支付总额度,更新后的离线支付总额度等于更新前的离线支付总额度减去本次支付的金额。
支付客户端将离线支付凭证渲染为离线支付二维码(一种离线支付码),显示在用户终端的屏幕上,供空乘人员用手持设备扫描。
空乘人员用手持设备扫描用户终端上显示的离线支付二维码,获取离线支付凭证。
手持设备本地保存有该第三方支付平台的支付客户端公钥。手持设备对离线支付凭证进行如下三种方式的验证:采用本地保存的支付客户端公钥对离线支付凭证中支付客户端的数字签名进行验签;采用离线支付凭证中的用户公钥对离线支付凭证中的用户数字签名进行验签;比较离线支付凭证的生成时间与当前时间,确定离线支付凭证是否处在预定的有效期内。如果上述三种方式的验证有任何一个没有通过,则删除本地保存的该离线支付凭证,向空乘人员显示支付失败,支付流程结束。
在上述三种方式的验证通过后,手持设备将离线支付凭证中金额、用户姓名和用户的部分身份证号码显示给空乘人员,由空乘人员与乘客信息中的用户姓名、用户身份证号码进行核对,并对支付金额进行核对。如果用户身份信息核对失败或支付金额核对失败,则空乘人员不受理该离线支付凭证,手持设备删除在本地保存的该离线支付凭证。用户身份信息和支付金额核对成功后,空乘人员接受该离线支付凭证,并将用户购买的商品交付给用户。
在飞机落地后,空乘人员将手持设备上的离线支付凭证上传至航空公司的收款服务器,由收款方服务器将离线支付凭证发送给该第三方支付平台的支付服务器请求收款。支付服务器采用支付客户端公钥和用户公钥验证该离线支付凭证合法后,将支付金额的款项从用户账户中划转至航空公司的账户中。
在本说明书的应用示例二中,航空公司在飞机上设置局域网,由局域网服务器向用户(乘客)提供付费电影的购买和播放服务。某个第三方支付平台的用户可以通过安装在其终端上的支付客户端进行支付。支付客户端保存有该支付客户端的私钥、该用户在该第三方支付平台的私钥和公钥。局域网服务器上保存有该支付客户端的公钥。
该第三方支付平台的支付服务器在检测到某个用户的终端进入机场范围后,根据该用户的信用等级计算用户的离线支付总额度,并下发给该用户的支付客户端。支付客户端将下发的离线支付总额度保存在本地。
用户在飞机上购买电影观看的支付流程如图6所示。
用户通过其终端访问航空公司的局域网服务器,浏览电影选择页面。当用户选中电影并进行购买操作时,电影选择页面调用支付客户端的离线支付功能,并在调用指令中携带电影信息、金额、航空公司、航班等信息。
支付客户端根据调用指令启动离线支付功能,提取调用指令中的电影信息、金额等信息,在离线支付页面展示给用户,请用户对本次支付进行确认。
在收到用户的确认支付的操作后,支付客户端读取本地保存的离线支付总额度,与调用指令中的金额做比较。如果调用指令中的金额超过读取的离线支付总额度,则向用户显示离线支付失败,支付流程结束。如果调用指令中的金额不超过读取的离线支付总额度,支付客户端向用户显示本地身份认证页面,对用户进行本地身份认证。根据用户开通的本地身份认证方式,可以对用户进行人脸核身、指纹核身、或密码核身等认证。
在用户通过本地身份认证后,支付客户端以调用指令中的金额作为支付金额生成离线支付凭证,离线支付凭证中还携带有支付客户端的数字签名、用户的数字签名、用户的公钥、用户的姓名、用户的部分身份证号码、和离线支付凭证的生成时间。支付客户端更新离线支付总额度,更新后的离线支付总额度等于更新前的离线支付总额度减去本次支付的金额。
支付客户端通过局域网将离线支付凭证发送给航空公司的局域网服务器。
局域网服务器收到离线支付凭证后,对离线支付凭证进行如下五种方式的验证:采用本地保存的支付客户端公钥对离线支付凭证中支付客户端的数字签名进行验签;采用离线支付凭证中的用户公钥对离线支付凭证中的用户数字签名进行验签;比较离线支付凭证的生成时间与当前时间,确定离线支付凭证是否处在预定的有效期内;将离线支付凭证中的用户姓名和用户的部分身份证号码、与乘客信息中的用户姓名和用户身份证号码进行核对;对支付金额进行核对。如果上述五种方式的验证有任何一个没有通过,则局域网服务器向支付客户端返回支付失败的通知消息,删除本地保存的该离线支付凭证,支付流程结束。
在上述五种方式的验证通过后,局域网服务器认为该离线支付凭证合法,认可用户已完成支付,将用户购买的电影播放给用户。
在飞机落地后,局域网服务器在与航空公司的收款服务器联网后,将离线支付凭证上传至收款服务器,由收款方服务器将离线支付凭证发送给该第三方支付平台的支付服务器请求收款。支付服务器采用支付客户端公钥和用户公钥验证该离线支付凭证合法后,将支付金额的款项从用户账户中划转至航空公司的账户中。
与上述流程实现对应,本说明书的实施例还提供了一种应用于支付客户端的双离线支付的实现装置,和一种应用于收款设备的双离线支付的实现装置。这两种装置均可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的CPU、内存以及存储器之外,双离线支付的实现装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图8所示为本说明书实施例提供的一种双离线支付的实现装置,应用于支付客户端,所述装置包括支付金额获取单元、支付凭证生成单元和支付凭证提供单元,其中:支付金额获取单元用于启动离线支付功能并获取支付金额;支付凭证生成单元用于生成携带有支付金额和验证信息的离线支付凭证;支付凭证提供单元用于向收款设备提供所述离线支付凭证,供收款设备在通过验证信息验证所述离线支付凭证合法后,认可所述支付客户端的支付。
一个例子中,所述支付客户端本地保存有离线支付总额度;所述支付凭证生成单元具体用于:当所获取的支付金额不大于本地保存的离线支付总额度时,生成携带有支付金额和验证信息的离线支付凭证,并在本地保存的离线支付总额度中扣减掉所述支付金额。
上述例子中,所述装置还可以包括支付总额度接收单元,用于在收到支付服务器下发的离线支付总额度后,将本地保存的离线支付总额度更新为支付服务器下发的离线支付总额度。
可选的,所述验证信息包括:所述支付客户端的数字签名、所述用户的数字签名和所述用户的公钥,供收款设备采用所述支付客户端的公钥和所述用户的公钥进行数字签名的验证。
可选的,所述验证信息包括:用户的姓名和用户证件信息,供收款方根据乘客信息中的用户姓名和用户证件信息,对支付用户进行核对。
可选的,所述支付凭证生成单元具体用于:在使用所述支付客户端的用户通过本地身份认证后,生成携带有支付金额和验证信息的离线支付凭证。
可选的,所述支付金额获取单元具体用于以下之一:通过扫描收款方提供的离线订单码启动离线支付功能,并从离线订单码的信息中获取支付金额;扫描收款方提供的离线订单码启动离线支付功能,接收用户输入的支付金额;或,根据用户的操作启动离线支付功能,接收用户输入的支付金额;所述支付凭证提供单元具体用于:根据离线支付凭证生成离线支付码,并展示所述离线支付码供收款设备扫描。
可选的,所述支付金额获取单元具体用于以下之一:接收对支付客户端的调用指令,根据调用指定启动离线支付功能,并从调用指令中获取支付金额;接收对支付客户端的调用指令,根据调用指定启动离线支付功能,接收用户输入的支付金额;或,根据用户的操作启动离线支付功能,接收用户输入的支付金额;所述支付凭证提供单元具体用于:将离线支付凭证通过局域网发送给收款方的局域网服务器,所述收款方的局域网服务器的地址预置在支付客户端内。
图9所示为本说明书实施例提供的一种双离线支付的实现装置,应用于收款设备,所述装置包括支付凭证获取单元、支付凭证验证单元和支付接受单元,其中:支付凭证获取单元用于从用户的支付客户端获取离线支付凭证;所述离线支付凭证携带有支付金额和验证信息;支付凭证验证单元用于采用所述验证信息验证所述离线支付凭证是否合法;支付接受单元用于在验证所述离线支付凭证合法后,认可所述支付客户端的支付。
可选的,所述验证信息包括:所述支付客户端的数字签名、所述用户的数字签名和所述用户的公钥;所述支付凭证验证单元具体用于:采用所述支付客户端的公钥对所述支付客户端的数字签名进行验签,采用所述用户公钥对所述用户的数字签名进行验签。
可选的,所述验证信息包括:用户的姓名和用户证件信息;所述支付凭证验证单元还用于:根据乘客信息中的用户姓名和用户证件信息,对支付用户进行核对。
可选的,所述收款设备为手持设备;所述支付凭证获取单元具体用于:扫描用户的支付客户端展示的离线支付码,获取离线支付凭证。
可选的,所述收款设备为收款方的局域网服务器;所述支付凭证获取单元具体用于:通过局域网接收用户的支付客户端发送的离线支付凭证。
可选的,所述装置还包括:支付凭证上传单元,用于向收款服务器上传离线支付凭证,供收款服务器通过支付服务器收取所述支付金额的款项。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中应用于支付客户端的双离线支付的实现方法的各个步骤。对应用于支付客户端的双离线支付的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中应用于收款设备的双离线支付的实现方法的各个步骤。对应用于收款设备的双离线支付的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中应用于支付客户端的双离线支付的实现方法的各个步骤。对应用于支付客户端的双离线支付的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中应用于收款设备的双离线支付的实现方法的各个步骤。对应用于收款设备的双离线支付的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制请求保护的其他实施例,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在请求保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。