diff --git a/video-gen-admin/src/pages/AdminPaymentConfig.tsx b/video-gen-admin/src/pages/AdminPaymentConfig.tsx
index 0a435789..7eff246b 100644
--- a/video-gen-admin/src/pages/AdminPaymentConfig.tsx
+++ b/video-gen-admin/src/pages/AdminPaymentConfig.tsx
@@ -36,6 +36,7 @@ const AdminPaymentConfig: React.FC = () => {
alipay_private_key: map['payment_alipay_private_key'] || '',
alipay_public_key: map['payment_alipay_public_key'] || '',
alipay_notify_url: map['payment_alipay_notify_url'] || '',
+ alipay_gateway: map['payment_alipay_gateway'] || '',
});
setWechatEnabled(map['payment_wechat_enabled'] === 'true');
setAlipayEnabled(map['payment_alipay_enabled'] === 'true');
@@ -61,6 +62,7 @@ const AdminPaymentConfig: React.FC = () => {
['payment_alipay_private_key', values.alipay_private_key || ''],
['payment_alipay_public_key', values.alipay_public_key || ''],
['payment_alipay_notify_url', values.alipay_notify_url || ''],
+ ['payment_alipay_gateway', values.alipay_gateway || ''],
];
for (const [key, value] of updates) {
const cfg = configs.find(c => c.key === key);
@@ -141,7 +143,10 @@ const AdminPaymentConfig: React.FC = () => {
-
+
+
+
+
diff --git a/video-gen-api/app/services/payment.py b/video-gen-api/app/services/payment.py
index bd388e86..e09d2ba5 100644
--- a/video-gen-api/app/services/payment.py
+++ b/video-gen-api/app/services/payment.py
@@ -41,7 +41,7 @@ _alipay_client = None
_alipay_client_app_id = None
-def _get_alipay_client(app_id: str, private_key: str, public_key: str):
+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
@@ -59,7 +59,7 @@ def _get_alipay_client(app_id: str, private_key: str, public_key: str):
return None
config = AlipayClientConfig()
- config.server_url = "https://openapi.alipay.com/gateway.do"
+ config.server_url = gateway or "https://openapi.alipay.com/gateway.do"
config.app_id = app_id
config.app_private_key = private_key
config.alipay_public_key = public_key
@@ -187,12 +187,13 @@ def _create_alipay_order(order: PaymentOrder, db_configs: dict[str, str]) -> str
private_key = db_configs.get("payment_alipay_private_key", "")
public_key = db_configs.get("payment_alipay_public_key", "")
notify_url = db_configs.get("payment_alipay_notify_url", "")
+ gateway = db_configs.get("payment_alipay_gateway", "")
if not app_id or not private_key:
logger.warning("Alipay config missing in database (app_id / private_key)")
return None
- client = _get_alipay_client(app_id, private_key, public_key)
+ client = _get_alipay_client(app_id, private_key, public_key, gateway)
if client is None:
return None
diff --git a/video-gen-app/src/pages/admin/AdminPaymentConfig.tsx b/video-gen-app/src/pages/admin/AdminPaymentConfig.tsx
index 4965cabb..1de69e39 100644
--- a/video-gen-app/src/pages/admin/AdminPaymentConfig.tsx
+++ b/video-gen-app/src/pages/admin/AdminPaymentConfig.tsx
@@ -93,6 +93,7 @@ const AdminPaymentConfig: React.FC = () => {
alipay_app_id: '',
alipay_private_key: '',
alipay_public_key: '',
+ alipay_gateway: '',
alipay_notify_url: '',
}}>
@@ -104,7 +105,10 @@ const AdminPaymentConfig: React.FC = () => {
-
+
+
+
+