交易平台建设实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 交易平台建设实践 李超 2021年7月 美团到店事业部
2. 目录  业务介绍  平台设计  平台实现  思路与方案  开发、部署、发布、测试  未来规划 2
3. 业务介绍 业务线 交易类型 到餐 团购、拼团、秒杀、预订、买单等 到综 团购、预订、电商、买单、预付、会员卡等 门票度假 预订、拼团、打包等 住宿 预订、团购等 特点: • 业务品类多、上百品类,差异化 • 交易形态多、履约环节多样性 • 单品深耕,多品联合售卖 交易类型 售卖方式 价格 货物 发货 消费 售后 团购 单品、打包、拼团 商品价格 券码 平台 多次核销 未消费退、已消费退 预订 单品、搭售 商品价格、服务费 预订凭证 平台、直连 一次核销、多次核销 未消费退、退手续费 电商 单品 商品价格、配送费 实物商品 商家发货 用户确认收货 未消费退 预付 单品 订金、尾款 券码 平台 一次核销 未消费退、已消费退 买单 单品 线下协商输入 无 无 无 未消费退、已消费退 3
4. 交易流程 团购 下单 扣库存 支付 发券 验券 退款 商家审核 客服审核 退款执行 商家确认 酒店预订 门票预订 下单 下单 商家锁定 商家审核 支付 支付 商家接单 商家出票 入住 客服催单 离店 退款 保险赔付 开发票 入园 意外保险 退款 商家审核 客服审核 商家审核 客服强退 商家审核 用户退货 开发票 买单 下单 支付 退款 商家审核 客服审核 退款执行 电商 下单 支付 接单 发货 配送 收货 申请退款 商家收货 交易业务形态多,差异多,如何设计支持(复用,可扩展) 4
5. 交易流程  思路:下单用例分析,售后域、履约域用例场景类似 到综团购 酒店预订 门票预订 删未付单 限购校验 生成订单 构建快照 资金保存 限购校验 删未付单 风控 生成订单 构建快照 资金保存 开通权益 支付提醒 订单推送 消息发送 库存查询 游人校验 价格计算 限购校验 风控 库存锁定 生成订单 优惠锁定 关单设置 操作记录 预支付 订单推送 消息发送 直连下单 ID生成 价格查询 库存查询 优惠解密 价格计算 关单设置 库存锁定 优惠锁定 预支付 订单推送 ID生成 价格查询 库存查询 价格计算 关单设置 优惠锁定 预支付 ID生成 价格查询 资金保存 构建快照 流程:差异大,与形态不强相关 逻辑单元:80%共性,20%差异,共性单元中内部细节有差异 5
6. 平台设计-思路 领域划分 + 系统分层 + 数据模型 + 状态机 6
7. 交易理解 钱 货 买家 卖家 用户 交换后活动 不同业务,钱和货的交换顺序可能不同 签订契约 凭证(履约) 凭证 售后 服务 购买 契约失效 上单 购买 & 履约 售后 交易是买卖双方钱货(物品或服务)交换的行为 时间 商家 结算 线上交易:双边交易,两笔交易通过履约行为联动
8. 领域划分 业务层 下单支付流程 支付成功流程 生单 快照 发货/发码/出票 退单 退款 取消 价格 收货/验码/验票 原因 违约金 限购 领域 层 风控 退货/退码/退票 资金域 支付域 支 撑 域 退款申请流程 领域 职责 订单域 用户和商家签订交易契约的过程(订单) 关注怎么买、买什么、多少钱、能不能买 履约域 商家完成货的交换(履约单) 关注货是什么、怎么发货、怎么消费、货的退 还 售后域 对交易取消、违约纠纷等逆向流程处理(退款 申请单) 关注退多少、怎么退 支付域 用户订单的付款和退款通道 资金域 落地交易过程凭证,对各类资金进行管控,对 接清分 售后域 履约域 订单域 核 心 域 券码核销流程 支付 退款 合单 资金管控 清分流水 转账 营销 积分 资金账户 资金明细
9. 系统分层 业务流程 酒店下单 生成订单号 创建订单 扣库存 预支付 门票下单 创建订单 预支付 锁库存 通知订单中心 系统分层 买单下单 生成订单号 创建订单 预支付 接入层 业务1API 业务2API 业务3API 业务4API 业务5API 团购流程 预订流程 业务流程 层 下单支付流程 支付成功流程 下单支付流程 支付成功流程 商家预订流程 券码核销流程 退款申请流程 用户消费流程 退款申请流程 退款审核流程 领域能力 层 订单域服务 售后域服务 履约域服务 支付域服务 资金域服务 通知订单中心 数据层 订单DB 售后DB 支付DB 提交支付提醒 延时任务 9
10. 数据模型 订单 支付单 订单 支付单 资金明细 资金明细 资金明细 支付复杂场景支持 1个订单支付 订单 1 多个订单合并支付 (搭售) 1个订单多期支付 (分期付) 订单 N 订单 1 履约单 购买项 消费项 退款项 资金明细 资金明细 购买项 – 消费项 – 退款项 订单 支付单 1 支付单 订单 支付单 N 支付单 订单 支付单 N 支付单 退款单 资金明细 资金明细 1 酒店-间夜 门票-票 团购-券 收银台 立减 优惠券 积分 折扣卡 1 N 为什么资金明细关联所有模型? 10
11. 状态机 酒店业务举例 订单状态 支付单状态 消费项状态 退款单状态 交易 基础状态 订单状态 状态分治 状态机 初始 + 业务 子状态 = 业务 场景状态 初始 支付中(买单) 创建成功 直连下单失败(门票) 交易完成 支付超时(酒店) 交易终止 取消中(酒店) 交易取消 已改签(酒店) 交易 完成 创建完成 已支付 但交易失败 不可再进行 履约/支付 创建 成功 待支付 支付失败 未支付取消 交易 终止 支付成功 支付 成功 取消成功 支付 失败 支付 取消 交易 取消 订单状态机 支付单状态机 11
12. 平台实现-思路 业务请求 平台服务 • 平台人力有限,无法支持 • 多业务逻辑交叉,迭代慢,质量低 硬编码模式 业务请求 业务 流程 业务 流程 平台服务 业务 插件 业务 插件 • 分离差异:平台抽象并分离业务差异 • 开放扩展:业务能基于平台定义的标准,自行完成业务流程、 业务差异的迭代 • 业务隔离:业务和业务间逻辑隔离,不交叉影响 插件模式 12
13. 平台实现-方案 身份识别 • 业务身份定义 • 领域能力扩展 • 流程扩展 业务身份 业务请求 业务活动 下单 消费 退款 • 流程可编排 活动节点 支 付 生 单 领域能力 • 开发、发布、监控、测试全流程支持 域服务 域服务 …… 域能力 域能力 能力扩展点 能力扩展点 平台SDK 业务插件 业务插件 • 差异分离 业务插件 业务插件 业务插件 • 实现可扩展
14. 能力扩展 解决多业务支持问题 生单 • 通用功能抽象(复用)+扩展点(差异支持) 分类聚合 可编排接口 类级扩展 买单插件 酒店插件 自定义请求参 数 商品查询 自定义请求参 数 组装扩展字段 组装 订单模型 组装扩展字段 计算商品价格 会员价 修改佣金 域 域服务 能力 能力实例 计算应付金额 方法级扩展 扩展点 扩展点实现 自定义 风控参数 组装 风控参数 【生单域服务】举例 自定义 风控参数
15. 流程扩展 流程模型 流程实现 • 业务流程->业务活动->活动节点 • 基于Camel二次开发流程引擎 流程可配置、可视化 • XML、Java 流程回滚、流程本地+远程重试、降级、异步
16. 开发分离 问题: 代码隔离后,各业务与平台分布式开发、一起运行,如何解决运行时冲突问题? 运行隔离: 开发分离: • 平台与业务,业务与业务仓库独立 域服务 服务代码 调用 领域 SDK 扩展点接口定义 默认 实现 实现 门票 JAR 门票 实现 酒店 JAR 酒店 实现 • 自定义类加载器避免类冲突 • 独立上下文避免bean冲突
17. 自主发布 常规发布模式 插件开发 插件打包 平台集成插件 +部署 热部署模式 平台启动 +加载插件 插件开发 插件打包 插件热部署 插件自主发布 重启
18. 部署隔离 问题: 业务迭代快,平台服务发布频繁 业务插件性能问题影响平台上其他业务 解决方案: 按业务维度分集群部署 • 根据业务身份进行业务流量路由 • 根据业务身份进行中间件流量路由
19. 监控定位
20. 多维测试 提交PR 持续交付 自动化测试 流量回放 插件集成 域服务/能力/扩展点覆盖 平台功能回归 平台+业务用例筛选 代码/分支覆盖 单服务+全链路 创建泳道 查询业务插件列表 代码预合并 静态检查/UT 部署目标分支 服务 获取插件仓库信息 结束 更新PR Pipeline 执行结果 执行业务插件自动 化用例 匹配业务插件自动 化信息 执行业务插件自动化 平台域自动化 执行平台自动化
21. 未来规划 短期:能力建设、质量建设 • 多品售卖能力、检索能力、秒杀能力等 • 性能提升、自动化测试 中长期:标准化、解决方案生态 • 能力标准化治理 • 面向业态的商业能力建设,端到端建设 • 扩展点/能力/流程的插件生态市场建设 21
22.
23. 招聘:到店交易平台岗位 邮箱: liyuwei09@meituan.com 更多技术干货 欢迎关注“美团技术团队”

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-14 17:02
浙ICP备14020137号-1 $Map of visitor$