| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from datetime import datetime
- from enum import Enum
- from pydantic import BaseModel, Field, field_validator
- from typing import Optional, NamedTuple
- AlipayResponseCode = NamedTuple("AlipayResponseCode", [("code", str), ("msg", str)])
- class AlipayResponseCodeEnum(Enum):
- """支付宝响应码枚举"""
- SUCCESS = AlipayResponseCode("10000", "接口调用成功")
- SERVICE_UNAVAILABLE = AlipayResponseCode("20000", "服务不可用")
- AUTH_INSUFFICIENT = AlipayResponseCode("20001", "授权权限不足")
- MISSING_REQUIRED_PARAM = AlipayResponseCode("40001", "缺少必选参数")
- INVALID_PARAM = AlipayResponseCode("40002", "非法的参数")
- CONDITION_ABNORMAL = AlipayResponseCode("40003", "条件异常")
- SERVICE_NOT_EXIST = AlipayResponseCode("40004", "服务不存在")
- METHOD_NOT_SUPPORTED = AlipayResponseCode("40005", "不支持请求方式")
- PERMISSION_DENIED = AlipayResponseCode("40006", "权限不足")
- @classmethod
- def from_code(cls, code: str) -> AlipayResponseCode:
- for item in cls:
- if item.value.code == code:
- return item.value
- return AlipayResponseCode(code, "未知错误")
- # class AlipayResponse(BaseModel):
- # """支付宝响应基础模型"""
- # code: str = Field(..., description="网关返回码,10000表示成功")
- # msg: str = Field(..., description="网关返回码描述")
- # sub_code: Optional[str] = Field(None, description="业务错误码,业务失败时返回")
- # sub_msg: Optional[str] = Field(None, description="业务错误描述,业务失败时返回")
- # @property
- # def success(self) -> bool:
- # return self.code == AlipayResponseCodeEnum.SUCCESS.value.code
- # class AlipayCommerceEcEnterpriseRegisterInviteCreateResponse(AlipayResponse):
- # """邀请企业注册响应"""
- # pc_invite_url: Optional[str] = Field(None, description="企业注册/认证/签约三合一页面的链接地址")
- # expire_time: Optional[datetime] = Field(None, description="链接过期时间,格式:yyyy-MM-dd HH:mm:ss")
- # @field_validator("expire_time", mode="before")
- # @classmethod
- # def parse_expire_time(cls, v: Optional[str]) -> Optional[datetime]:
- # if v is None:
- # return None
- # return datetime.strptime(v, "%Y-%m-%d %H:%M:%S")
|