发布时间:2021-04-28 12:00:11 文章来源:互联网
微博 微信 QQ空间

支付宝,微信是怎么实现离线支付的呢?

    上次,我去医院挂号的时候,在手机欠费没有网络的情况下,抱着试试看的心态打开了支付宝的付款码,挂号窗口的工作人员用扫码枪扫了一下,居然也扣款成功了。然后我就感觉很神奇,到底是怎么支付成功的。经过我咨询客服以及上网查询相关资料后,终于了解了这其中的奥妙,其实也并不是很神奇的操作。

    其实很多人还不知道支付宝或者微信在没有网络的情况下也可以支付成功,也就是说微信和支付宝具有离线支付功能。
 
    但是离线支付功能只支持已签约免密支付/自动扣款的项目,比如支付宝或者微信的付款码。当然还有一个很重要的条件,就是不能超过免密支付限额。
 
    我们在超市、商场或者便利店购物的时候,一般情况下是通过向商家出示付款码,商家手持扫码枪扫码,在金额比较少的情况下,不需要输入支付密码验证就可以完成支付的。
 
    我们知道,输入支付密码必须要与支付宝后台数据库进行信息交互,支付宝后台只有接收到正确的支付密码才能完成支付。那么手机在没有网络的情况下,是无法向支付宝数据库发送支付密码信息的,所以说,超过免密支付的限额需要输入支付密码的时候同样是无法完成离线支付的。
 
    下面我就给大家简单说一下是怎么实现离线支付的呢?
 
    一、首先,付款码是可以离线生成的。
 
    我们打开支付宝,点击【收付款】,开启收付款功能后,支付宝会向服务端申请令牌种子。
 
    支付宝或者微信APP后台会根据特定的算法生成付款码。这个过程在没有网络的情况下同样可以执行操作生成付款码。
 
    二、付款码本身的特点。
 
    从某种意义上讲,付款码和收款码一样,其中都包含有用户标识等相关信息。用其他智能设备扫码就可以进行支付操作。但是由于付款码是一次性并且实时更新的特点,使得付款码并不能打印出来拿着再去付款。如果付款码像收款码长期有效的话,那么我们的付款码一旦泄露的话,将会给用户带来巨大的财产损失。
 
    三、最后,当然扫码枪必须处于在线状态,需要和支付宝服务器进行数据交互。
 
    支付宝作为第三方支付软件,任何一笔支付操作,必须有支付宝的参与才能完成。在手机没有网络的情况下,这笔支付操作只能通过扫码枪和支付宝服务器进行信息交流,否则无法完成支付。
 
    那么付款码离线支付流程是什么样的呢?
 
    1、在没有网络的情况下,打开支付宝或者微信APP,点击【收付款】功能。
 
    2、支付宝APP后台就会离线生成付款码,然后向商家出示离线付款码。
 
    3、商家用扫码枪扫描读取付款码相关信息,并通过网络把重要信息上传至支付宝服务器。
 
    4、支付宝接收到商家的扫码枪系统传来的付款码信息后,然后进行鉴别对比确认。
 
    5、如果确认无误后则自动创建支付订单,并把订单信息返回给商户。在不超过限额的情况下,不需要用户输入支付密码的情况下,支付宝服务器就完成了支付操作。
 
    写在最后
 
    虽然对于用户来说,可以实现离线支付,但是收款方必须是在线状态,只有这样才能和支付宝服务器进行验证。离线支付中最重要的环节就是扫码枪系统了,通过在线的收款方搭桥,将离线的付款信息传到支付宝服务器端进行校验,从而实现了线下与线上的信息交互。
 
    还有一点就是,付款码离线支付的情况下,是不能超出免密支付的单笔限额的。因为超出限额后,就需要用户在APP端输入支付密码验证了。由于是在无网络状态下,手机端是无法向支付宝服务器端发送支付密码相关信息的。
 
    大胆猜想一下,如果我们手机利用短信的方式向支付宝服务器端发送支付密码的话,付款码的离线支付功能是不是就可以突破免密支付的限额了呢?

另一视角

换一换