博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
支付系统-帐户系统总结
阅读量:2200 次
发布时间:2019-05-03

本文共 692 字,大约阅读时间需要 2 分钟。

一 支付通架构图:

 

 

 

 

   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

你可能感兴趣的文章
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>