- 后端: FastAPI + SQLAlchemy + SQLite, JWT认证, 代理支持的AirwallexClient - 前端: React 18 + Vite + Ant Design 5, 中文界面 - 功能: 卡片管理, 持卡人管理, 交易记录, API令牌, 系统设置, 审计日志 - 第三方API: X-API-Key认证, 权限控制 - Docker部署: docker-compose编排前后端
43 lines
2.4 KiB
Python
43 lines
2.4 KiB
Python
"""
|
|
Models for the Airwallex Issuing Transaction API.
|
|
"""
|
|
from typing import Optional, List, Dict, Any
|
|
from datetime import datetime
|
|
from pydantic import Field
|
|
from .base import AirwallexModel
|
|
from .issuing_common import Merchant, RiskDetails, HasMoreResponse
|
|
|
|
|
|
class Transaction(AirwallexModel):
|
|
"""Model for an Airwallex issuing transaction."""
|
|
resource_name: str = "issuing/transactions"
|
|
|
|
acquiring_institution_identifier: Optional[str] = Field(None, description="Unique Identifier for acquiring institution")
|
|
auth_code: Optional[str] = Field(None, description="Authorization Code")
|
|
billing_amount: float = Field(..., description="Billing amount")
|
|
billing_currency: str = Field(..., description="Billing Currency")
|
|
card_id: str = Field(..., description="Unique Identifier for card")
|
|
card_nickname: Optional[str] = Field(None, description="The nickname of the card used")
|
|
client_data: Optional[str] = Field(None, description="Client data stored against the card record")
|
|
digital_wallet_token_id: Optional[str] = Field(None, description="Unique Identifier for digital token")
|
|
failure_reason: Optional[str] = Field(None, description="The reason why this transaction failed")
|
|
lifecycle_id: Optional[str] = Field(None, description="Lifecycle ID")
|
|
masked_card_number: str = Field(..., description="Masked card number")
|
|
matched_authorizations: Optional[List[str]] = Field(None, description="Matched authorization IDs")
|
|
merchant: Optional[Merchant] = Field(None, description="Merchant details")
|
|
network_transaction_id: Optional[str] = Field(None, description="Network transaction ID")
|
|
posted_date: Optional[datetime] = Field(None, description="Posted date")
|
|
retrieval_ref: Optional[str] = Field(None, description="Retrieval reference number")
|
|
risk_details: Optional[RiskDetails] = Field(None, description="Risk details")
|
|
status: str = Field(..., description="Transaction status")
|
|
transaction_amount: float = Field(..., description="Transaction amount")
|
|
transaction_currency: str = Field(..., description="Transaction currency")
|
|
transaction_date: datetime = Field(..., description="Transaction date")
|
|
transaction_id: str = Field(..., description="Transaction ID")
|
|
transaction_type: str = Field(..., description="Transaction type")
|
|
|
|
|
|
class TransactionListResponse(HasMoreResponse):
|
|
"""Model for transaction list response."""
|
|
items: List[Transaction] = Field(..., description="List of transactions")
|