支付系统-帐户系统总结

一 支付通架构图:

 

 

 

   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.帐户的高并发变更设计:

                 高并发帐户不时时扣款.

原文地址:https://www.cnblogs.com/fei33423/p/7494032.html