• 超哥分析 支付宝 校园一卡通业务流程


    背景描述:支付宝开通了校园一卡通接口,每次我们充钱的时候,第一次使用都会需要等待一到两秒的时间才能在食堂刷卡成功,以后就不需要了
     
    问题描述:为什么第一次会有一到两秒的延迟时间
     
    我的猜想:在这一到两秒的时间内,发生了资金从支付宝账户到校园卡账户的转移。当然也可能是先从支付宝到银行那边再到校园卡账户。因此发生一系列的数据库事务的增删改的动作,像我们淘宝上用支付宝付款一样大概也需要类似的延迟时间
     
    我猜想具体实现:校园卡账户和支付宝账户通过数据库关联起来,并且在校园卡的代码中一定有一个标志值,记作为flag,flag为true时代表该校园卡关联的支付宝临时账户中balance>num,为false时balance<num,num为我们设定的一个阈值,大于该阈值才会发生转账动作,小于则不会。
    注:1 balance为我们使用支付宝为校园一卡通充值金额 
          2设置num避免出现无限多次的小额转账攻击系统
     
    故有了支付宝可冲校园卡功能之后 流程为
     
    当我们刷卡的时候,首先验证身份
     
    验证身份通过后,检测标志值true or false
    超哥写一段java伪代码
     
     if(身份验证成功){
     if(flag)
        执行转账程序; //有了充值后第一次使用发生的延迟现象
     if(校园卡余金额>需要刷卡金额)
        校园卡账户系统扣费;
        log.info("一次成功的扣费记录");
     else
        System.out.println("滴滴滴 您的余额不足 请及时充值以免自动下机);
        log.info("因为一次余额不足,扣费不成功");
    }
      else{
        log.error("发生一次身份验证错误"); 
        throw 身份验证错误Exception;
    }

    超哥知道博客园高手如云,说不定就有蚂蚁金服的大神,大家觉得超哥分析的哪些还需要改进或者有错误  谢谢大家

  • 相关阅读:
    网易2019实习生招聘编程第3题——牛牛找工作
    Linux find、locate、whereis、which命令
    Linux 常用命令
    Java线程池
    java连接池的maxIdle该如何配置
    Idea和redis的坑
    微服务架构下分布式事务解决方案——阿里GTS
    spring管理bean的三种创建方式
    jvm内存过高及那些对象导致内存过高,那些对象不会被gc回收
    Java虚拟机 运行时数据区
  • 原文地址:https://www.cnblogs.com/winAlaugh/p/5471370.html
Copyright © 2020-2023  润新知