outsource_schema.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from datetime import datetime
  2. from typing import Optional
  3. from pydantic import BaseModel, Field
  4. class OutsourceNotifySchema(BaseModel):
  5. """外部消费额度同步请求 (alipay.ebpp.invoice.expensecomsue.outsource.notify)
  6. 外部和企业码进行额度共管的场景下,外部以交易形式(支付、退款)将额度变更同步给支付宝
  7. """
  8. # 必填字段
  9. enterprise_id: str = Field(description="企业ID")
  10. employee_id: str = Field(description="员工ID")
  11. standard_id: str = Field(description="使用规则ID(标准ID)")
  12. amount: float = Field(description="消费金额(元),正数为消费/支付,负数为退款")
  13. out_source_id: str = Field(description="外部业务号(幂等ID)")
  14. deal_time: str = Field(description="交易时间,格式:yyyy-MM-dd HH:mm:ss")
  15. # 可选字段
  16. account_id: Optional[str] = Field(default=None, description="企业余额账户ID")
  17. agreement_no: Optional[str] = Field(default=None, description="授权签约协议号")
  18. employee_id_type: Optional[str] = Field(default=None, description="员工ID类型: EMPLOYEE/PHONE/ENTERPRISE_PAY_UID")
  19. employee_open_id: Optional[str] = Field(default=None, description="员工open_id")
  20. extend: Optional[str] = Field(default=None, description="扩展参数,JSON格式")
  21. is_off_set: Optional[str] = Field(default=None, description="是否冲抵: Y/N")
  22. platform: Optional[str] = Field(default=None, description="平台类型")
  23. relate_no: Optional[str] = Field(default=None, description="关联单号")
  24. # 本地补充字段
  25. institution_id: Optional[str] = Field(default=None, description="制度ID(本地补充,用于写pay_expense_quota)")
  26. class OutsourceNotifyOutSchema(BaseModel):
  27. """外部消费额度同步响应"""
  28. success: bool = Field(description="是否成功")
  29. out_source_id: str = Field(description="外部业务号")
  30. message: str = Field(default="", description="响应消息")