2026-03-18 17:18:23 +08:00
|
|
|
|
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
|
2026-05-22 13:44:50 +08:00
|
|
|
|
from app.core.deps_types import DbDep
|
2026-03-18 17:18:23 +08:00
|
|
|
|
|
|
|
|
|
|
_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(
|
2026-05-22 13:44:50 +08:00
|
|
|
|
db: DbDep,
|
2026-03-18 17:18:23 +08:00
|
|
|
|
plan_service: PlanService = Depends(get_plan_service),
|
|
|
|
|
|
) -> PaymentOrderService:
|
|
|
|
|
|
"""Payment order facade: create_order, callbacks, list/status."""
|
|
|
|
|
|
return PaymentOrderService(db=db, plan_service=plan_service)
|