ZHIWEI666 commited on
Commit
43299fb
·
verified ·
1 Parent(s): b16328b

Update router_wallet.py

Browse files
Files changed (1) hide show
  1. 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
- appid = os.environ.get("ALIPAY_APPID", "").strip()
55
- priv_key = os.environ.get("ALIPAY_PRIVATE_KEY", "").replace("\\n", "\n").strip()
56
- pub_key = os.environ.get("ALIPAY_PUBLIC_KEY", "").replace("\\n", "\n").strip()
57
 
58
- if not appid or not priv_key or not pub_key:
59
- alipay_error_msg = f"缺少环境变量。当前读取到: APPID={bool(appid)}, PRIV_KEY={bool(priv_key)}, PUB_KEY={bool(pub_key)}"
60
  alipay = None
61
  else:
 
 
 
 
 
62
  alipay = AliPay(
63
- appid=appid,
64
  app_notify_url="https://zhiwei666-comfyui-ranking-api.hf.space/api/wallet/alipay_notify",
65
- app_private_key_string=priv_key,
66
- alipay_public_key_string=pub_key,
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)