Spaces:
Running
Running
Update router_wallet.py
Browse files- router_wallet.py +33 -9
router_wallet.py
CHANGED
|
@@ -45,25 +45,49 @@ router = APIRouter()
|
|
| 45 |
# ==========================================
|
| 46 |
# 🚨 替换这里的支付宝初始化逻辑 🚨
|
| 47 |
# ==========================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
alipay_error_msg = "未知错误"
|
| 49 |
try:
|
| 50 |
from alipay import AliPay
|
| 51 |
from alipay.utils import AliPayConfig
|
| 52 |
|
| 53 |
-
#
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
|
| 58 |
-
if not
|
| 59 |
-
alipay_error_msg = f"缺少环境变量。当前读取到: APPID={bool(
|
| 60 |
alipay = None
|
| 61 |
else:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
alipay = AliPay(
|
| 63 |
-
appid=
|
| 64 |
app_notify_url="https://zhiwei666-comfyui-ranking-api.hf.space/api/wallet/alipay_notify",
|
| 65 |
-
app_private_key_string=
|
| 66 |
-
alipay_public_key_string=
|
| 67 |
sign_type="RSA2",
|
| 68 |
debug=False,
|
| 69 |
config=AliPayConfig(timeout=15)
|
|
|
|
| 45 |
# ==========================================
|
| 46 |
# 🚨 替换这里的支付宝初始化逻辑 🚨
|
| 47 |
# ==========================================
|
| 48 |
+
def format_pem_key(key_str, key_type="PRIVATE"):
|
| 49 |
+
"""自动给'裸奔'的秘钥穿上符合 Python 规范的外套"""
|
| 50 |
+
# 如果用户已经带有 BEGIN 标签,说明格式没问题,直接返回
|
| 51 |
+
if "BEGIN" in key_str:
|
| 52 |
+
return key_str.replace("\\n", "\n").strip()
|
| 53 |
+
|
| 54 |
+
# 去除所有的空格和换行符,拿到最纯净的字符串
|
| 55 |
+
clean_key = key_str.replace(" ", "").replace("\n", "").replace("\\n", "").replace("\r", "")
|
| 56 |
+
|
| 57 |
+
# 按照国际标准,每 64 个字符强制切断换行
|
| 58 |
+
chunks = [clean_key[i:i+64] for i in range(0, len(clean_key), 64)]
|
| 59 |
+
formatted_body = "\n".join(chunks)
|
| 60 |
+
|
| 61 |
+
# 穿上头尾外套
|
| 62 |
+
if key_type == "PRIVATE":
|
| 63 |
+
return f"-----BEGIN RSA PRIVATE KEY-----\n{formatted_body}\n-----END RSA PRIVATE KEY-----"
|
| 64 |
+
else:
|
| 65 |
+
return f"-----BEGIN PUBLIC KEY-----\n{formatted_body}\n-----END PUBLIC KEY-----"
|
| 66 |
+
|
| 67 |
alipay_error_msg = "未知错误"
|
| 68 |
try:
|
| 69 |
from alipay import AliPay
|
| 70 |
from alipay.utils import AliPayConfig
|
| 71 |
|
| 72 |
+
# 1. 抓取原生态的环境变量
|
| 73 |
+
raw_appid = os.environ.get("ALIPAY_APPID", "").strip()
|
| 74 |
+
raw_priv_key = os.environ.get("ALIPAY_PRIVATE_KEY", "").strip()
|
| 75 |
+
raw_pub_key = os.environ.get("ALIPAY_PUBLIC_KEY", "").strip()
|
| 76 |
|
| 77 |
+
if not raw_appid or not raw_priv_key or not raw_pub_key:
|
| 78 |
+
alipay_error_msg = f"缺少环境变量。当前读取到: APPID={bool(raw_appid)}, PRIV_KEY={bool(raw_priv_key)}, PUB_KEY={bool(raw_pub_key)}"
|
| 79 |
alipay = None
|
| 80 |
else:
|
| 81 |
+
# 2. 扔进我们的格式化引擎进行自动包装!
|
| 82 |
+
priv_key_formatted = format_pem_key(raw_priv_key, "PRIVATE")
|
| 83 |
+
pub_key_formatted = format_pem_key(raw_pub_key, "PUBLIC")
|
| 84 |
+
|
| 85 |
+
# 3. 完美加载
|
| 86 |
alipay = AliPay(
|
| 87 |
+
appid=raw_appid,
|
| 88 |
app_notify_url="https://zhiwei666-comfyui-ranking-api.hf.space/api/wallet/alipay_notify",
|
| 89 |
+
app_private_key_string=priv_key_formatted,
|
| 90 |
+
alipay_public_key_string=pub_key_formatted,
|
| 91 |
sign_type="RSA2",
|
| 92 |
debug=False,
|
| 93 |
config=AliPayConfig(timeout=15)
|