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 = () => { - + + + +