• 完成从业务用例分析到领域建模设计的推演
  • 实践过程需包含领域建模的主要知识点
  • 可考虑业务扩展点,及系统的高可用设计

    实践

    业务用例

    image.png
    查询订单可退金额:返回该订单支付指令维度的可退金额明细
    退款咨询:按支付工具的退款优先级,将退款总额分摊到各支付指令上
    执行退款:执行支付指令维度的渠道退款

    业务流程

    可退金额查询与退款咨询流程:
    image.png
    退款流程:
    image.png

    系统上下游

    image.png

    业务分层视图

    image.png

领域建模

边界上下文

image.png

模型设计

image.png
聚合根:checkoutOrder 收单订单、payTerm支付阶段、refundTerm退款阶段

领域服务

checkoutDomainService收单领域服务

  • 下单
  • 关单
  • 取消
  • 退款受理

payTermDomainService 支付阶段领域服务

  • 新增支付阶段
  • 修改支付阶段
  • 完结支付阶段
  • 取消支付阶段

payDomainService 支付领域服务

  • 执行支付
  • 取消支付
  • 支付结果回调

paymentBizQueryService 支付查询服务

  • 收单信息查询
  • 支付阶段查询
  • 支付指令查询
  • 支付结果查询

refundDomainService退款领域服务

  • 查看可退金额
  • 退款金额分摊
  • 执行退款
  • 查询退款结果
  • 退款结果回调

    扩展点设计

  1. 支付超时时间
  2. 支付成功回调
  3. 支付失败回调
  4. 支付超时回调
  5. 支付工具的退款优先级
  6. 退款超时时间
  7. 退款成功回调
  8. 退款失败回调
  9. 退款超市回调

    高可用设计

  10. 应用启动时,将支付工具的配置信息加载到redis中

  11. 支付和退款的状态变更事件走mq,异步推进,提高接口吞吐量

image.png