支付门面(application 编排层):依 payment.provider 选择已注册的 PaymentProvider。
payment.provider
PaymentProvider
采用懒解析——构造期不校验,避免未配任何通道时炸启动(NFR-2 未配即降级); 仅在实际调用支付操作时,若无可用通道才抛 ServiceUnavailableException。 分层对齐后:通道选择/降级裁决与 Money 值对象下沉 domain,本层只编排并委托端口。
ServiceUnavailableException
Money
domain
创建下单/收款意图(先经 Money 不变量兵底再委托端口)。
结账入参(amount/currency 等)。
归一化结账引用。
结算金额或币种非法时。
创建支付客户。
客户入参。
归一化客户引用。
当前可用通道概览(不抛错,供健康检查/诊断用)。
选中通道 id 与可用通道 id 列表。
对既有结账退款。
退款入参。
归一化退款引用。
按 id 取回结账引用。
通道侧结账 id。
当前选中通道是否支持周期扣款/订阅。
支持为 true;无可用通道则抛 ServiceUnavailableException。
true
验签并归一化 Webhook 事件。
原始请求体。
通道签名头。
归一化支付事件。
支付门面(application 编排层):依
payment.provider选择已注册的PaymentProvider。Remarks
采用懒解析——构造期不校验,避免未配任何通道时炸启动(NFR-2 未配即降级); 仅在实际调用支付操作时,若无可用通道才抛
ServiceUnavailableException。 分层对齐后:通道选择/降级裁决与Money值对象下沉domain,本层只编排并委托端口。