支付宝、微信在没网络的情况下还能支付,是这是为什么?

2024-11-26 11:32:17
推荐回答(5个)
回答1:

用户与商家都有网络  这是最理想的状态,也是我们经常接触的状态。每一次码都是由服务端生成,相对比较安全。就算二维码进行安全升级或者调整,也不用管我们用户的事儿,因为那是服务端的调整。这就是常说的,在线支付。  

用户没网,商家有网络  有时候,会因为停机或者信号不好的原因,我们的手机没有信号了,去付款的时候,却又能付款成功,这就是常说的,离线支付。

第一步、在有网的时候,我们打开支付宝APP,会向服务端申请令牌种子;

第二步、随后服务端会根据算法生成一个令牌种子,然后向我们发送这个令牌种子,然后保存在手机内部; 

第三步,当在无网的情况下,支付宝APP会利用令牌种子+时间+算法生成一串数字,也就生成了我们所用的离线码; 

第四步,当商家扫描这个码的时候,服务端通过算法校验这个离线码,如果是来自于本手机,随即就会确认完成支付。  这个离线码有几个关键点:付款码可以离线生成,包含了用户标识、令牌等信息,并且是一次性,每60秒会更新一次。

用户端可以离线,但商家的扫码枪需要在线。扫码枪读取离线码,需要将信息上传至支付宝服务器。或许理解上有点困难,但其实很好理解,商家没有得到付款完成的信息,是不可能让我们离开的,所以他们必须在线。  

用户、商家都没有网络  还有一种情况,用户、商家双方都离线了,这种双方都离线的情况场景比较单一,比较常见的场景就是公交付款,扫二维码附公交费。在支付宝里,页面会生成特定的付款码,与支付宝首页的付款码不是同一个。付款方式,先记账,等联网了做安全验证再扣款。

回答2:

没网络时也能进行支付(离线支付),是一个听上去挺神奇,实现原理又很巧妙的支付方式。

如果你的手机因为停机或信号不好等原因,无法联网,但又没有带现金,借助离线可以支付

离线支付的全过程如下图所示。用户出示付款码,商家使用扫码枪等扫描付款码完成收款。

离线支付的关键点一:付款码可以离线生成

付款码生成过程:

1、用户打开支付宝App时,会向服务端申请令牌种子;

2、支付宝服务器会根据算法生成一个令牌种子,返回给支付宝App;

3、支付宝App得到令牌种子后,根据算法生成付款码(可以离线生成)。

离线支付的关键点二:付款码是一次性且实时更新

1、支付宝App生成的付款码会包含有用户标识、令牌值等信息;

2、付款码是一次性的,且每分钟会更新一次。

这样就不会出现别人把你的付款码打印出来再去付款。

离线支付的关键点三:付款码能离线,扫码枪需在线

付款码离线支付过程:

1、线下支付时,用户打开支付宝App,出示付款码(可以离线);

2、商家用扫码枪读取付款码,并上传至支付宝服务器;

3、支付宝服务器收到商家传来的付款码后,与令牌系统里保存的信息进行对比;

4、比对通过则创建支付订单,并返回给商户订单信息,如果余额足够便可完成支付。

也就是说,付款方可以离线,但收款方得在线。通过在线的收款方搭桥,将离线的付款信息传到支付宝服务器端进行校验。

离线支付的特殊情况:付款方、收款方双离线

前面说到离线支付通常得付款方、收款方有一方得在线。但有一种特殊的场景,双方都能离线。

请点击输入图片描述

在支付宝的城市服务里,有公交付款的功能,目前已在部分城市部分线路落地。将来出门再也不必带公交卡、带零钱了,带着手机就行。开通这个功能的用户,页面会生成特定的付款码(与支付宝首页的付款码不是同一个),通过花呗进行付款,也是一次性、每分钟更新的。

回答3:

因为他们拥有紧急措施,就算没有网络也能扫二维码。

回答4:

因为他们会在没网络下安排一个支付信息,有网了之后会马上支付。

回答5:

这是他们为了能够更好的使用支付码所进行的优化。