WebhockTransfer/app/models.py
houhuan 2bc7460f1f feat: 初始化Webhook中继系统项目
- 添加FastAPI应用基础结构,包括主入口、路由和模型定义
- 实现Webhook接收端点(/webhook/{namespace})和健康检查(/health)
- 添加管理后台路由和模板,支持端点、目标、渠道和模板管理
- 包含SQLite数据库模型定义和初始化逻辑
- 添加日志记录和统计服务
- 包含Dockerfile和配置示例文件
- 添加项目文档,包括设计、流程图和验收标准
2025-12-21 18:43:12 +08:00

33 lines
1.2 KiB
Python

from typing import Optional, Dict, Any
from pydantic import BaseModel
class IncomingOrderInfo(BaseModel):
cash_resp_desc: Optional[str] = None
ref_amt: Optional[float] = None
class IncomingPayload(BaseModel):
remark: Optional[str] = None
event_define_no: Optional[str] = None
trans_amt: Optional[float] = None
settlement_amt: Optional[float] = None
out_trans_id: Optional[str] = None
hf_seq_id: Optional[str] = None
namespace: Optional[str] = None
trans_order_info: Optional[IncomingOrderInfo] = None
extra: Optional[Dict[str, Any]] = None
def idempotent_key(self) -> Optional[str]:
return self.out_trans_id or self.hf_seq_id
def cash_resp_desc(self) -> str:
v = None
if self.trans_order_info:
v = self.trans_order_info.cash_resp_desc
return v or ""
def actual_ref_amt(self) -> Optional[float]:
extra_val = None
if self.extra and isinstance(self.extra, dict):
extra_val = self.extra.get("actual_ref_amt")
return extra_val or (self.trans_order_info.ref_amt if self.trans_order_info and self.trans_order_info.ref_amt is not None else self.settlement_amt)