## 订单与支付设计

### 支付与订单的生命周期

1. 订单创建,待支付(支付单创建)

... 支付回执来了

2. 支付单 达成 [支付确认 pay_ack]

3. 业务单 达成 [支付确认 pay_ack]

4. 业务单 履行业务职责(如果有业务职责的话)

5. 业务单 如果履行业务职责 失败,那么 要针对 此 支付单进行退款

6. 业务单 如果顺利履行了,那么处理佣金发放

#### 幂等性:

1. 支付单/业务单 [支付确认 pay_ack] 只能达成一次

2. 退款是针对 支付单 一对一的,一个支付单只能创建一次退款单(退款记录)

其他说明:

```

1. 组合支付单表示 业务单最终的 [支付确认 pay_ack] 可能由多个支付单共同达成

2. 业务单的 每个不同 支付渠道/金额 对应一个 支付单

3. 支付单 直面第三方支付(流水号即为商户订单号),业务单 与 支付单 是 可能一对多的(组合支付的情况)

4. 业务单的成功支付记录:满足条件:达成 [支付确认 pay_ack] 且 没有退款记录,的支付单

```

----

### 表重要字段

```

业务订单表:

status: 订单状态:0-创建,1-完成,2-关闭

pay_status: 支付状态:0-待支付,1-已支付,2-已取消支付(订单取消/关闭时 标记为取消支付)

is_there_refund: 订单是否有退款记录(注意不一定有退款记录就表示此订单无效)

amount: 应付金额

```

```

支付单(流水)表

pay_status: 支付状态:0-待支付,1-已支付,2-已取消支付(订单取消/关闭时 标记为取消支付)

is_compose: 是否为组合支付订单

is_there_refund: 订单是否有退款记录(注意不一定有退款记录就表示此订单无效)

order_id: 业务单id

amount: 应付金额

```

```

退款记录表

flowing_id: 支付单id

desc: 退款说明原因

```

注意:

1. 如果系统提供 “标记为已支付” 这样的功能,那么这个操作 只能更改业务订单表,不能更新支付单表,否则回执时 对支付单支付状态检查时,我们不知道是否为渠道重试了

2. 对于业务单,系统其他后台功能 “标记为已支付” 等功可能会更新其支付状态

3. 对于 支付单,pay_status 是否 达成了 [支付确认 pay_ack] (达成 是由用户完成支付后渠道回执来的)

----

### 收到回执时,如何区分重试和重复支付

#### 有支付单的设计:

1. 发现 支付单 已经达成 [支付确认 pay_ack] 就为重试

2. 发现 业务单 已经达成 [支付确认 pay_ack] 就为重复支付(可能是由于旧支付单,如砍价造成的,或者是多渠道重复支付了)

#### 没有支付单设计的:

1. [支付确认 pay_ack] 达成时 记录下对应的渠道

2. 收到回执时判断达成的渠道是否为当前渠道

3. 是 即为重试,否就为其它渠道重复支付,应该安排退款。

----

### 扩展

[聊聊对账系统的设计方案](https://mp.weixin.qq.com/s/31pxbgqXzYV5knYKTw9K9A)

[Redis 分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!](https://mp.weixin.qq.com/s/oQKK83Syi29JLzWkEM0P2g)

-----

mysql支付账单怎么设计_订单与支付设计相关推荐

  1. mysql订单详情的设计_订单功能模块设计与实现

    在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表, 点击提交订单后,生成此订单,返回订单的订单 ...

  2. 餐饮管理系统 mysql数据库设计分析_终稿课程设计_餐饮管理系统数据库设计.docOK版(样例3)...

    <课程设计_餐饮管理系统数据库设计.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)课程设计_餐饮管理系统数据库设计.doc(OK版)>相关文档资源请在帮帮文库(www ...

  3. ux设计_声音建议:设计UX声音的快速指南

    ux设计 Mating calls, warning grunts, and supportive coos are some of the sounds heard throughout the a ...

  4. ux设计_为企业UX设计更好的数据表

    ux设计 重点 (Top highlight) If you have worked on enterprise products, you must have noticed the use of ...

  5. 网页框架布局设计_实用的网页设计-框架和框架用法介绍

    网页框架布局设计 Ah, frames. We hated them when Netscape first offered them up around 1995; we deplored them ...

  6. 小型蘑菇定向切片机设计_鲜枣去核机的设计_玉米脱粒机的设计_振动式马铃薯收获机的设计_谷物干燥机的设计_锤片式饲料粉碎机的设计_山楂去核机的设计_萝卜切丝机设计_板栗去皮机设计_锤式破碎机设计……

    棉花打包机的设计[说明书(论文)+CAD+solidworks] 毕业设计_气动四自由度机械手结构设计(设计说明书+CAD图纸)    套类零件自动上下料机构 玉米脱粒机的设计(说明书+cad图纸+p ...

  7. 蜗杆参数法设计_齿轮几何尺寸设计,很实用的Excel表格(附自动计算表格)

    各类齿轮自动计算校核表格获取见文章最下方 我们生活中最常见的齿轮有渐开线圆柱直齿轮.圆锥齿轮.涡轮蜗杆以及链轮类的设计计算,在进行设计时,我们都是对于尺寸进行设计计算,一般都是先要了解齿轮的模数,压力 ...

  8. php ui设计_什么是ui设计

    ui设计即界面设计,是指对软件的人机交互.操作逻辑.界面美观的整体设计.ui设计分为实体ui和虚拟ui,互联网上说的ui设计一般指虚拟ui. UI是用户界面(User Interface)的简称,指的 ...

  9. 壁行式起重机设计_玉米播种机的设计_残疾人轮椅设计_破冰除雪机设计_单转子可逆式锤式破碎机设计_全液压升降机设计_振动压路机振动轮设计_旋转型灌装机设计_搬运机械手及其控制系统设计……

    组合机床主轴箱及夹具设计(论文+DWG图纸) 机械毕业设计-玉米播种机的设计(开题报告+任务书+说明书+CAD图纸+答辩PPT) 机械毕业设计-残疾人轮椅设计(含全套CAD图纸)    残疾人轮椅的设 ...

  10. 人机工程学座椅设计_人体工程学椅子设计要点 如何设计舒适椅子

    人体工程学家具已经逐渐走入我们的生活中,它不仅给我们带来了很多方便,而且还让我们的身体可以更加健康.那么,人体工程学椅子设计要点有哪些?应该如何设计令人舒适椅子呢?下面就跟小编一起来简单的了解一下吧. ...

最新文章

  1. pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)
  2. 关于sigma pix的理解
  3. 北航成AAAI 2021最大赢家,两篇一作斩获最佳论文、提名奖,研究皆与Transformer相关...
  4. JAVA是如何传递参数的?是传值(by value)?还是传地址(by reference)?
  5. jquery找祖先包含_Jquery的parent和parents(找到某一特定的祖先元素)
  6. CTR模型越来越深,如何让它变轻?
  7. 用paddleocr识别汉字_汉字设计中的度量标准(三)
  8. linux mysql进阶_mysql进阶学习二之搭建主从
  9. 智迪科技携手海通安恒,启动SAP实施项目
  10. 微软为何痛失移动操作系统?
  11. vue.js 组件之间传递数据 1
  12. 华为交换机默认vlan都是通的吗_【思唯网络学院】华为交换机常用的三种vlan划分方法...
  13. 取消input、textarea选中后的默认边框样式
  14. vconfig命令打通直连网络
  15. Android 系统(196)---Android 属性动画
  16. ASP.NET AjaxPro的应用 .AjaxPro使用中“XXX未定义”的一种解决方法(转载的)
  17. 详解:物理地址,虚拟地址,内存管理,逻辑地址之间的关系
  18. Oracle的CaseWhen
  19. 前端工程师薪资差距可达7.3倍!4月程序员薪资统计出炉,速看!
  20. 美团实习经验(基础架构部)

热门文章

  1. 无纸化考试系统(CS)
  2. 【网络安全必看】如何提升自身WEB渗透能力?
  3. LoRa在智能家居当中的物联网应用
  4. r语言结构方程模型可视化_模型一个结构方程模型(SEM)的简单实验
  5. 前后落差大用什么词语_形容两个人反差特别大的成语-有明显的反差 用什么词形容-形容前后态度反差巨大的词...
  6. svchost.exe网速占用解决办法
  7. Ubuntu 耳机和音响没有声音
  8. 怎么在删除计算机里面搜索记录,Win7如何删除我的电脑搜索栏里面的搜索记录介绍三种删除win7搜索记录的方法...
  9. 设计adm和CPU计算机组装方案,成熟的解决方案:CPU风扇(AMD和INTEL)的详细拆卸和安装方法(图形教程)...
  10. 2022-03-25 redis组建哨兵及主从高可用的failover