This commit is contained in:
2026-06-12 11:31:25 +08:00
parent 20a0348743
commit 133e9eed5b
+3 -30
View File
@@ -211,28 +211,6 @@ _alipay_client = None
_alipay_client_app_id = None
def _format_alipay_key(key: str) -> str:
"""
格式化支付宝密钥,移除PEM头部和尾部,并清理所有空白字符。
"""
if not key:
return ""
# 移除首尾空白
key = key.strip()
# 移除 PEM 头部和尾部
key = key.replace("-----BEGIN RSA PRIVATE KEY-----", "")
key = key.replace("-----BEGIN PRIVATE KEY-----", "")
key = key.replace("-----END RSA PRIVATE KEY-----", "")
key = key.replace("-----END PRIVATE KEY-----", "")
key = key.replace("-----BEGIN PUBLIC KEY-----", "")
key = key.replace("-----END PUBLIC KEY-----", "")
key = key.replace("-----BEGIN ALIPAY PUBLIC KEY-----", "")
key = key.replace("-----END ALIPAY PUBLIC KEY-----", "")
# 移除所有空白字符(换行、空格、制表符等)
key = "".join(key.split())
return key
def _get_alipay_client(app_id: str, private_key: str, public_key: str, gateway: str = ""):
"""Get or create an Alipay client. Recreated if app_id changes."""
global _alipay_client, _alipay_client_app_id
@@ -250,23 +228,18 @@ def _get_alipay_client(app_id: str, private_key: str, public_key: str, gateway:
)
return None
# 格式化私钥和公钥
formatted_private_key = _format_alipay_key(private_key)
formatted_public_key = _format_alipay_key(public_key)
config = AlipayClientConfig()
config.server_url = gateway or "https://openapi.alipay.com/gateway.do"
config.app_id = app_id
config.app_private_key = formatted_private_key
config.alipay_public_key = formatted_public_key
config.app_private_key = private_key
config.alipay_public_key = public_key
config.sign_type = "RSA2"
config.charset = "utf-8"
try:
_alipay_client = DefaultAlipayClient(config, logger)
_alipay_client_app_id = app_id
logger.info("Alipay client initialized successfully")
except Exception as e:
except Exception:
logger.exception("Failed to initialize Alipay client")
_alipay_client = None
_alipay_client_app_id = None