zoukankan      html  css  js  c++  java
  • 支付系统-帐户系统总结

    一 支付通架构图:

     

     

     

       1.1 支付通交易层模块职责:

             & 接受对业务系统的订单支付.充值请求

            & 账户之间转账

            &  接受业务系统的提现请求

            & 接受业务系统的退款请求(对上面几种业务)

       1.2支付网关职责:

               负责和渠道(支付宝,微信,银联)交互,记录流水号,对账

       1.3账户系统职责:

             & 记录账户信息

             & 保障账户变动原子性和事务性.

             & 记录账户变动流水

    二 主要流程图

    1. 充值

        有个支付回调

    2. 转账

     

    2. 提现

      先减款,再提现.失败加款

    三 实体设计

        2.1账户系统 实体设计: 

      

     

              帐户表 账户信息.

              Account_statement: 1.记录账户变动流水记录. 2.保存法幂等控制

        2.2收银台系统实体设计:

            

     

             交易表: 记录外部输入的外部流水号和内部流水号相关信息

    四 亮点功能

          1.  转账的额度控制通过变量传递进来.

                  转账停留在中间环节的,重试逻辑. 单边帐

          2.  帐户的变动和流水保存处于同一个事务中.

                  切记 spring 的事务注解 , 异常必须设置为 throwable

          3. 提现:

                先扣帐户款再提现.

                银行有恶心的退票记录

          4. 双边帐

                加减账号分别开.

                4.1 操作分为加锁和不加锁.

                4.1.1 外部企业账户: 加款加锁,减款不加锁. 

                4.1.2 内部企业账户: 加减款都不加锁. 前面增加一个减款判断. 手动提现.

                4.1.3 需要时时查看余额的普通用户需要加锁. 

               通过分布式扩容来实现扩展性.

          5.帐户的高并发变更设计:

                     高并发帐户不时时扣款.

  • 相关阅读:
    MapBox TileMill
    优秀电影
    Mapnik 编译安装过程
    Debian 入门安装与配置2
    学习opengl十大网站(转载)
    PostgresSQL 学习资料记录处
    c++模板编程-异质链表
    Linux-统一事件源
    三组I/O复用模型的比较
    ZigZag-LeetCode
  • 原文地址:https://www.cnblogs.com/fei33423/p/7494032.html
Copyright © 2011-2022 走看看