| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import os
- from pathlib import Path
- APP_ENV = os.getenv("APP_ENV", "dev")
- ROOT_DIR = Path(__file__).resolve().parents[3]
- ENV_FILE = ROOT_DIR / f".env.{APP_ENV}"
- def _load_env_file(path: Path) -> None:
- if not path.exists():
- return
- for raw_line in path.read_text(encoding="utf-8").splitlines():
- line = raw_line.strip()
- if not line or line.startswith("#") or "=" not in line:
- continue
- key, value = line.split("=", 1)
- key = key.strip()
- if not key or key in os.environ:
- continue
- os.environ[key] = value.strip().strip("\"'")
- _load_env_file(ENV_FILE)
- def _required_env(name: str) -> str:
- value = os.getenv(name)
- if not value:
- raise RuntimeError(f"缺少 e签宝环境变量: {name}")
- return value
- class Config:
- def __init__(self):
- self.appId = _required_env("ESIGN_APP_ID")
- self.scert = _required_env("ESIGN_APP_SECRET")
- self.host = _required_env("ESIGN_HOST").rstrip("/")
- self.ordid = _required_env("ESIGN_ORG_ID")
- self.templates_map = {
- "store_agreement": _required_env("ESIGN_TEMPLATE_STORE_AGREEMENT"),
- "lawyer_agreement": _required_env("ESIGN_TEMPLATE_LAWYER_AGREEMENT"),
- "alipay_auth": _required_env("ESIGN_TEMPLATE_ALIPAY_AUTH"),
- "wechat_pay_commitment": _required_env("ESIGN_TEMPLATE_WECHAT_PAY_COMMITMENT"),
- }
- self.templates_id = self.templates_map["store_agreement"]
- self.template_file_names = {
- "store_agreement": _required_env("ESIGN_TEMPLATE_FILE_STORE_AGREEMENT"),
- "lawyer_agreement": _required_env("ESIGN_TEMPLATE_FILE_LAWYER_AGREEMENT"),
- "alipay_auth": _required_env("ESIGN_TEMPLATE_FILE_ALIPAY_AUTH"),
- "wechat_pay_commitment": _required_env("ESIGN_TEMPLATE_FILE_WECHAT_PAY_COMMITMENT"),
- }
- self.callback_url = _required_env("ESIGN_CALLBACK_URL")
- self.developer_callback_url = os.getenv("ESIGN_DEVELOPER_CALLBACK_URL", self.callback_url)
- self.redirect_url = os.getenv("ESIGN_REDIRECT_URL", "https://www.esign.cn/")
|