1. 交易的本质是什么?

就是买东西付款,卖东西收款,在任何一个盈利的系统中,都离不开交易模块,下图是一个扫码支付的粗略流程:
image.png
1、收银人员发起【订单结算】,向三方服务器发起支付请求,获得二维码链接
2、收银人员展示二维码给客户
3、客户扫描二维码,向三方支付发起支付
4、三方支付会为收银系统和用户推送支付状态:成功或失败
从中我们可以看出所有支付是不是都是类似的,支付系统中关心的几个维度:
1、谁收款?
2、谁付款?
3、价格多少?
4、是否成功
5、支付渠道选择

2. 说出交易业务调用时序流程?

TODO:(后续流程写完再补充,理解更充分)
image.png

3. 交易统一接口入参和出参分别是什么? 接口的作用是什么?

使用的是day06使用的TradingVo,保存交易单,修改字段返回
1、交易单是专门用于对接交易支付系统
2、订单和具体业务相关,交易单和业务无关, 解耦
3、交易系统是一个通用支付服务
支付服务:对外提供的接口统一参数是 交易单VO对象
对接系统: 餐掌柜需要将订单转换成 交易单,远程调用交易支付服务

根据订单生成交易单的优点:
● 项目解耦,设计成通用的支付服务
● 支付失败时,基于原始订单可以重新生成新的交易单发起新的支付
● 使用交易单,可以设计合并支付的功能

订单和交易单设计成: 一对多关系

4. 校验交易单完整性有哪些?

订单编号,支付金额,交易渠道,商家信息,交易类型:FK,TK

5. 为什么需要加锁?

防止其他用户再操作该订单

6. 什么是交易适配路由? 有什么作用? 怎么实现的?

用不同的方式,根据交易渠道,适配不同的实现类
选择微信或者支付宝API

7. 什么是交易处理接口? 作用是什么? 怎么实现的?