配置 SSOT(TOML + .env) 统一错误契约 Auth 与事务边界 Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client 可观测性(OpenTelemetry + LGTM)
28 lines
978 B
Python
28 lines
978 B
Python
from fastapi import Depends
|
||
|
||
from app.features.payment.order_service import PaymentOrderService
|
||
from app.features.payment.payment_config import PaymentConfig
|
||
from app.features.payment.payment_facade import PaymentService
|
||
from app.features.plan.deps import get_plan_service
|
||
from app.features.plan.service import PlanService
|
||
from app.core.deps_types import DbDep
|
||
|
||
_payment_service = None
|
||
|
||
|
||
def get_payment_service() -> PaymentService:
|
||
"""统一支付门面(wechat/alipay),供 PaymentOrderService 与 startup 使用。"""
|
||
global _payment_service
|
||
if _payment_service is None:
|
||
config = PaymentConfig.from_env()
|
||
_payment_service = PaymentService(config)
|
||
return _payment_service
|
||
|
||
|
||
def get_payment_order_service(
|
||
db: DbDep,
|
||
plan_service: PlanService = Depends(get_plan_service),
|
||
) -> PaymentOrderService:
|
||
"""Payment order facade: create_order, callbacks, list/status."""
|
||
return PaymentOrderService(db=db, plan_service=plan_service)
|