77 lines
3.1 KiB
Python
77 lines
3.1 KiB
Python
"""
|
||
应用配置
|
||
支付渠道可通过 PAYMENT_PROVIDER 切换:xorpay | zpay
|
||
"""
|
||
import os
|
||
from pathlib import Path
|
||
from typing import Literal
|
||
|
||
from dotenv import load_dotenv
|
||
|
||
# 强制从 payjsapi 项目根目录加载 .env、.env.local,避免 cwd 不同导致加载失败
|
||
_root = Path(__file__).resolve().parent.parent
|
||
load_dotenv(_root / ".env")
|
||
load_dotenv(_root / ".env.local", override=True)
|
||
|
||
PaymentChannel = Literal["xorpay", "zpay"]
|
||
|
||
# 当前使用的支付渠道(zpay 替代 xorpay,payjs2 接口业务保留)
|
||
PAYMENT_PROVIDER: PaymentChannel = os.getenv("PAYMENT_PROVIDER", "zpay").lower()
|
||
|
||
# XorPay 配置
|
||
XORPAY_AID = os.getenv("XORPAY_AID", "8220")
|
||
XORPAY_SECRET = os.getenv("XORPAY_SECRET", "afcacd99570945f88de62624aaa3578e")
|
||
XORPAY_CASHIER_URL = os.getenv("XORPAY_CASHIER_URL", "https://xorpay.com/api/cashier")
|
||
|
||
# ZPAY 配置(网关: https://zpayz.cn/)
|
||
ZPAY_PID = os.getenv("ZPAY_PID", "2025121809351743")
|
||
ZPAY_KEY = os.getenv("ZPAY_KEY", "tpEi7wWIWI2kXiYVTpIG6j7it0mjVW89")
|
||
|
||
# PocketBase(支持 PB_ADMIN_* 或 POCKETBASE_*)
|
||
# 为了避免线上环境遗留 PB_URL=公网域名导致慢查询,默认强制优先本机。
|
||
_pb_internal = os.getenv("PB_INTERNAL_URL") or os.getenv("POCKETBASE_INTERNAL_URL")
|
||
_pb_explicit = os.getenv("PB_URL") or os.getenv("POCKETBASE_URL")
|
||
if _pb_internal:
|
||
PB_URL = _pb_internal
|
||
elif _pb_explicit and (
|
||
"127.0.0.1" in _pb_explicit
|
||
or "localhost" in _pb_explicit
|
||
or _pb_explicit.startswith("http://10.")
|
||
or _pb_explicit.startswith("https://10.")
|
||
or _pb_explicit.startswith("http://172.")
|
||
or _pb_explicit.startswith("https://172.")
|
||
or _pb_explicit.startswith("http://192.168.")
|
||
or _pb_explicit.startswith("https://192.168.")
|
||
):
|
||
PB_URL = _pb_explicit
|
||
else:
|
||
PB_URL = "http://127.0.0.1:8090"
|
||
PB_ADMIN_EMAIL = (
|
||
os.getenv("PB_ADMIN_EMAIL") or os.getenv("POCKETBASE_EMAIL") or "xiaoshuang.eric@gmail.com"
|
||
)
|
||
PB_ADMIN_PASSWORD = (
|
||
os.getenv("PB_ADMIN_PASSWORD") or os.getenv("POCKETBASE_PASSWORD") or "Xiao4669805@"
|
||
)
|
||
|
||
# Memos
|
||
MEMOS_API = os.getenv("MEMOS_API", "https://qun.hackrobot.cn/api/v1/users")
|
||
MEMOS_TOKEN = os.getenv(
|
||
"MEMOS_TOKEN",
|
||
"eyJhbGciOiJIUzI1NiIsImtpZCI6InYxIiwidHlwIjoiSldUIn0.eyJuYW1lIjoiaGFja3JvYm90IiwiaXNzIjoibWVtb3MiLCJzdWIiOiIxIiwiYXVkIjpbInVzZXIuYWNjZXNzLXRva2VuIl0sImlhdCI6MTc1NzQwNTE0OX0.Idn7kBlxE-CoSOXwWuZ1tHGIRKHAIeDyXSafGS5OHsg",
|
||
)
|
||
|
||
# 回调地址(用于生成 notify_url)。线上 api.nomadyt.com 时需设置 BASE_URL=https://api.nomadyt.com
|
||
BASE_URL = os.getenv("BASE_URL", "https://api.hackrobot.cn")
|
||
|
||
# MinIO 对象存储
|
||
MINIO_ENDPOINT = os.getenv("MINIO_ENDPOINT", "minioweb.hackrobot.cn")
|
||
MINIO_PORT = int(os.getenv("MINIO_PORT", "443"))
|
||
MINIO_ACCESS_KEY = os.getenv("MINIO_ACCESS_KEY", "")
|
||
MINIO_SECRET_KEY = os.getenv("MINIO_SECRET_KEY", "")
|
||
MINIO_BUCKET = os.getenv("MINIO_BUCKET", "hackrobot")
|
||
MINIO_USE_SSL = os.getenv("MINIO_USE_SSL", "true").lower() == "true"
|
||
_minio_ep = os.getenv("MINIO_ENDPOINT", "minioweb.hackrobot.cn")
|
||
_minio_bucket = os.getenv("MINIO_BUCKET", "hackrobot")
|
||
MINIO_PUBLIC_URL = os.getenv("MINIO_PUBLIC_URL", f"https://{_minio_ep}/{_minio_bucket}")
|
||
MINIO_UPLOAD_PREFIX = os.getenv("MINIO_UPLOAD_PREFIX", "joins")
|