- 后端: FastAPI + SQLAlchemy + SQLite, JWT认证, 代理支持的AirwallexClient - 前端: React 18 + Vite + Ant Design 5, 中文界面 - 功能: 卡片管理, 持卡人管理, 交易记录, API令牌, 系统设置, 审计日志 - 第三方API: X-API-Key认证, 权限控制 - Docker部署: docker-compose编排前后端
42 lines
2.6 KiB
Python
42 lines
2.6 KiB
Python
"""
|
|
Models for the Airwallex Issuing Authorization 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 Authorization(AirwallexModel):
|
|
"""Model for an Airwallex issuing authorization."""
|
|
resource_name: str = "issuing/authorizations"
|
|
|
|
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")
|
|
create_time: datetime = Field(..., description="The time this outstanding authorization was created")
|
|
digital_wallet_token_id: Optional[str] = Field(None, description="Unique Identifier for digital token")
|
|
expiry_date: Optional[datetime] = Field(None, description="The authorization will expire after this date if not posted")
|
|
failure_reason: Optional[str] = Field(None, description="The reason why this authorization failed (if status is FAILED)")
|
|
lifecycle_id: Optional[str] = Field(None, description="A identifier that links multiple related transactions")
|
|
masked_card_number: Optional[str] = Field(None, description="Masked card number")
|
|
merchant: Optional[Merchant] = Field(None, description="Merchant details")
|
|
network_transaction_id: Optional[str] = Field(None, description="The transaction ID from network")
|
|
retrieval_ref: Optional[str] = Field(None, description="Transaction retrieval reference number")
|
|
risk_details: Optional[RiskDetails] = Field(None, description="Risk details")
|
|
status: str = Field(..., description="The status of this authorization")
|
|
transaction_amount: float = Field(..., description="Transaction amount")
|
|
transaction_currency: str = Field(..., description="Transaction currency")
|
|
transaction_id: str = Field(..., description="Unique id for transaction")
|
|
updated_by_transaction: Optional[str] = Field(None, description="Id of the transaction which updated status of this transaction")
|
|
|
|
|
|
class AuthorizationListResponse(HasMoreResponse):
|
|
"""Model for authorization list response."""
|
|
items: List[Authorization] = Field(..., description="List of authorizations")
|