支付宝,微信在没网络的情况下还能支付,是如何实现的?需要什么支持?

历史上今天的故事


感谢您的阅读!

我们必须说明几种情况,离线支付分为几种情况,大家必须了解一下:

  1. 如果我们使用付款码支付,对于【付钱】功能开启的用户,是可以直接支持离线支付。
  2. 如果我们使用扫码支付,实际上仅支持线上支付,不支持离线支付。
  3. 同样,如果大家想使用条码付款,第一次使用网络后,以后就不需要网络支付了。

注意:关闭了小额免密功能也是需要网络的,毕竟要输入密码!(除非是在公交扫码支付的时候,可以双方都没有网络,先记账后支付)

那么,为什么没有网络的时候,微信和支付宝还是可以进行支付呢?我们看一幅图:


这幅图是离线支付的大体过程,按照支付宝的说法,离线支付能够形成有以下原因:

  • 生成付款码。手机向服务端申请令牌种子,支付宝生成后,将种子给手机,在根据算法即使在离线下,也能生成付款码。
我们解释的更清楚一些:App打开的时候,已经向服务器发送了请求,才认定了支付宝账户安全情况下,发送唯一的令牌种子,会在本地保存下来,我们手机断网的时候,点击付款码会自动利用种子数据,以及时间戳和一套安全算法可以生成一串数字,即离线码。

  • 付款时,因为商家的网络是连接的,所以商家读取了付款码后,会上传到服务器,支付宝的安全性就在这里,因为它会比对商家传来的信息,如果发现不一致,就支付失败;只有系统数据一致情况下,才能进行支付。

它的原理来自于OTP,也称动态口令,是根据专门的算法在每隔60秒生成一个口令。它同样是通过客户端以及服务器之间共享秘密的一次认证技术!它要求,时间同步,在短短的60s内让动态令牌和动态口令验证服务器的时间比对;事件同步,通过特定的事件次序及相同的种子值作为输入,在HASH算法中获得相同密码,最后在挑战/应答中,验证通过。

不管如何,我们只要知道,离线支付是可以实现的,而且因为比对的关系,会让支付更安全。


LeoGo科技


是否可以正常支付,暂且不说支付宝,就用微信来,证明一下不就知道结果了吗?

正常的情况下,假设手机没有网络,在各大超市或者是一些24小时便利店,对方有网络的条件下用扫码枪,扫你的向商家付款的二维码,是可以正常支付,并且没有任何影响


如果对方没有扫码枪,需要你扫码支付,在没有网络的情况下,有图为证


并且最终显示的是网络加载失败

支付宝可以在无网络的情况下进行网络支付扫码,并且也可以通过向商家付款二维码支付

平时使用微信以及支付宝,也最好设定当天的交易额的多少,小额交易现在大部分都是免密码支付,比如支付的金额是100到200块钱之间是不需要密码


侠客挨踢数码


这种情况就是我们说的离线支付,在我们手机没有信号或者网络的时候,去付款的时候却能支付成功。

其实这个原理也很好理解,你存进支付宝微信里的钱并不是存在你的手机上,而是以一个数据存在终端服务器上,你的手机上产生的支付宝微信付款吗只是你一个凭证,当商家扫描你的手机付款码时代表着你出示了该凭证,商家会根据他办理三方收款平台连接的支付宝和微信在服务器上扣除,你手上的付款码就好比银行卡一样,钱不是存在银行卡里,卡只是一个凭证而已。



首先要在有网的情况下,生成付款码,是一次性的,每60秒会更新一次,保存下来支付二维码,进行支付。 这种情况下,是要商家的支付系统必须在线。

还有一种情况,是商家和我们的手机都不在线的,也是可以支付的,就像我们有些公交车收款系统不是实时在线的,可能跑完一趟车在联网或者一天结束后再联网,而收款系统在联网的时候才进行扣款的。就是双方都离线,就先记账,等到有网时候在进行验证扣款。


海龙小雅


支付宝微信在没有网络的情况下是否能支付,这得分两种情况:若商家扫描你的付款码,你手机没有联网也同样能付款成功(前提是你账户必须开通小额免密支付功能);若你扫描商家的收款码,你必须联网才能支付成功。


其实付款码和收款码是一样的原理,都是别人扫你,付款码扫后把钱付出去,收款码扫后收钱回来,这个被扫的人不需联网也能能完成支付,只是接收不到消息提醒而已。

下面我就针对上面情况,说说为什么会那样?原理是什么?


首先我们先看下下面我画的这个图,付款码支付的流程原理

一、先了解微信/支付宝付款码是怎么生成的

不管是微信或支付宝,付款码原理都一样,付款码在我们每次打开时,付款码都是不一样的,大家可以细心看下就会发现,点开二维码后,其实是一个条形码,条形码下面还有一串数字,每次打开后,这个数字都是变的。


因为只要我们把APP安装到手机上之后,因为系统开发时,就是这么开发的,详细的专业词语我就不多说了,不需联网,每次打开都能生成一个付款码,并且这个数字也是随机生成的。


二、再了解整个支付流程原理

商家收款时,先要在自已电脑上输入收款金额,然后当扫码设备读取付款码后,商家系统会把这两个信息同时上传到支付宝/微信,请求平台付款过来,当支付宝/微信收到这个付款请求后,系根据提前设置好的规则,判断是否是合规的本平台的信息。


若核对正常,就立即会根据商家提供的金额和消费者的二维码,从消费者账户划扣金额,并把余额划入商家账户,同时下传成功收款信息到商家,下传成功扣款信息到消费者,但因为消费者手机无联网,所以,此时是收不到信息的,但什么时候联网后,就可以收到扣款信息了。

消费者的付款码不需双面交互,只是单方面的,也就是说商家可直接通过平台直接把消费者账户的钱划走,不需消费者确认什么的,这个前提是消费者有开通小额免密支付,若用户没有开通小额免密支付的话,那付款时就得输入密码,这时就得联网了。


三、付款码和收款码是一样的原理,不需联网,只要是别人扫你的码,都能正常支付成功

像平时商家一般都是收款码,我们只用扫一扫,他们账户就收到钱了,但此时,商家手机可以不用联网,同样能收到这个钱,因为收款码的设计原理决定了,收款时不需联网就可以收钱。


收款码生成后是永久不变的,但付款码为了安全性,所以每次打开后都会变化,但原理与收款码一样,都是可以不联网就能完成支付的。

总结:经上面分析,就明白了,为什么自已不需联网,出示付款码也能成功给商家付款的原因了,只要有开通小额免密支付,付款时因为不用输入密码,这时系统就会直接从账户划款到商家账户,这单方面的交互当然是不需联网的。


欢迎【关注】火火爱秀,每日分享科技小知识,期待你的点赞+评论哦~

火火爱秀


大家都发现了,很多时候即使我们没网络,也依然可以出示付款码给商家搜扫。这是支付宝的微信自己的技术实现的,离不开一定的二维码技术。咱不是技术人员,没法以专业知识给大家解析这项技术。只好从离线码的使用原理方面解答一下大伙儿的困惑:

离线码是什么原理?

我们平时离线付款的流程是这样的:商家在收款系统里设置好金额——我们打开支付宝——出示付款码——商家扫码——过了几秒钟商家收到信息“付款成功”。我们的支付宝和微信在绑定银行卡时都是经过实名认证的。所以支付软件上的识别系统会 根据我们每个人的信息设定好的算法、种子数据和时间等等因素来生成一个二维码,当我们用这个离线码进行支付的时候,商家的扫码枪会通过内部的计算来识别验证,识别正确后会进行支付扣费操作。

离线码安全吗?

不少人害怕离线码会被盗用,其实这个不用太忧虑。因为我们在进行支付的时候,会出现二维码和支付条码这两种。当我们点开条码的时候,就会出现一串数字,这些数字是每60秒就会自动更新一次。付款码里只有用户的账号信息,用户的账号信息应该固定的,然而二维码里隐藏的数字却是随时间变化的。

在这可以很直接的告诉你,目前这样的付款码技术是无法破解的。但还是要提醒大伙,我们支付的时候还是要多加小心,毕竟现在的科技很发达,“盗窃”的方式也是多种多样的。


全链路零售界


您说的这种情况叫离线支付,所谓离线支付,通俗的说就是先通过信用校验方式进行账务处理,完成交易,等待具备网络的时候进行核实,结算。

我们可以想象一下,如果我到商店买东西而忘记带钱,老板认识我的情况下我可以赊账拿到要买的东西,然后下次拿钱去还账。这其实就类似是一种离线支付。

支付宝和微信支付实现起来应该更容易一些,当我处于无网络的状态下,我的手机终端仍然能够代表我的身份,以我的身份生成一个授信的条码或者二维码,这是我的身份信用证明,好比我对老板出示我的身份证。

商家读取这个支付码后,会自动识别我的身份,如果商家是在线的,就可以和支付宝、微信支付的服务器端取得联系,确认我的身份信息和资金信息。这就类似商店老板认识我,知道我有足够的资金支付。


  • 商家如果在线的情况下,第三方支付公司只要校验了客户的身份信用信息,就可以通过服务器进行扣款,完成交易。就好比商店老板安排店小二跑到我家里和我媳妇说我买东西了,没带钱,让他到家里来拿钱是一样的道理。

  • 如果商家也不在线的情况下,交易双方都是出于记账的状态,等到有网络的时候,上传记账信息,服务器进行了交易结算。就好比我回家取了钱,然后回到商店,和老板把账务结清。

离线支付基本的原理就是这样的,其中比较关键的就是要生成一个能够代表你身份的信息,而且,这个信息能够防伪,能够被对方识别并确认,最关键的问题是要避免信息欺诈。


互金直通车


支付宝、微信的出现,改变了传统的交易方式,现在已经是人们日常消费离不开的APP了,并且无论有没有网络,都是可以实现消费支付的,官方还给这种消费起了个名字:离线支付,所谓的离线支付,是指消费者单方面的离线,而商家是不能离线,否则无法完成数据(金钱)的交换.

这种离线支付技术是支付宝和微信官方研发的,该技术的核心关键点是“付款码可以离线生成”,当用户点击“付款”的时候,APP会生成一个“令牌种子”,然后根据特定的算法生成一个付款码,当商家对该付款码进行扫描时,就会把数据传送到支付宝或者微信的服务器,然后服务器就会读取付款码里的信息,最后和商家的账户进行数据交换,完成本次支付!


因此,在无网络情况下,消费者的支付宝和微信都是可以使用付款码进行支付的,但是商家不能没有网络,所以您可以理解为:这种离线支付方式是在支付宝或者微信的服务器上进行信息交互的!


桃园Computer


是这样的,虽然用户没有联网,但收费商家的终端机是联网的。

也就是我用户的二维码可识别的唯一ID,已经通过商家的终端与终端进行了信息交换。这就是底层的工作原理。

但你会发现两个问题,一是离线的情况下,收完款后,是没有信息反馈的,这说明此时用户的手机还没有和服务器进行交互。

二是,有时商家扫完码后,不能直接扣扣,这就需要安全验证,用户还是需要联网,不联网,完成不了支付。

这基本上就是支付的底层工作原理。



整理猫儿App


把你的数据暂时存上了,等到联网的时候就会传送数据,最终完成结算。准确的说没联网的时候没有结算成功,只是离线状态把你的数据收去了。飞机上的刷卡购物也是一样道理。


此用户已闭嘴


无网络?双方都无网络根本无法交易。只能说你不在线而已。好比孩子在超市拿了东西就走,其实是家长在买单一样。


分享到:


相關文章: