import React, { useEffect, useState } from 'react'; import { Button, Card, Form, Input, message, Switch, Typography, InputNumber, Space, } from 'antd'; import { SaveOutlined, WechatOutlined, AlipayCircleOutlined, DollarOutlined, ClockCircleOutlined, } from '@ant-design/icons'; import { getPaymentConfigs, batchUpdatePaymentConfigs } from '../api'; const AdminPaymentConfig: React.FC = () => { const [saving, setSaving] = useState(false); const [wechatEnabled, setWechatEnabled] = useState(false); const [alipayEnabled, setAlipayEnabled] = useState(false); const [mockMode, setMockMode] = useState(false); const [orderTimeout, setOrderTimeout] = useState(180); const [form] = Form.useForm(); const load = async () => { try { const data = await getPaymentConfigs(); const map: Record = {}; data.forEach((c: any) => { map[c.key] = c.value; }); form.setFieldsValue({ wechat_appid: map['payment_wechat_appid'] || '', wechat_mch_id: map['payment_wechat_mch_id'] || '', wechat_private_key: map['payment_wechat_private_key'] || '', wechat_cert_serial_no: map['payment_wechat_cert_serial_no'] || '', wechat_api_v3_key: map['payment_wechat_api_v3_key'] || '', wechat_notify_url: map['payment_wechat_notify_url'] || '', wechat_public_key: map['payment_wechat_public_key'] || '', wechat_public_key_id: map['payment_wechat_public_key_id'] || '', alipay_app_id: map['payment_alipay_app_id'] || '', 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'] || '', order_timeout: map['payment_order_timeout'] || '180', }); setWechatEnabled(map['payment_wechat_enabled'] === 'true'); setAlipayEnabled(map['payment_alipay_enabled'] === 'true'); setMockMode(map['payment_mock'] === 'true'); setOrderTimeout(parseInt(map['payment_order_timeout'] || '180', 10)); } catch { message.error('加载支付配置失败'); } }; useEffect(() => { load(); }, []); const handleSave = async () => { try { const values = await form.validateFields(); setSaving(true); await batchUpdatePaymentConfigs({ payment_mock: String(mockMode), payment_wechat_enabled: String(wechatEnabled), payment_wechat_appid: values.wechat_appid || '', payment_wechat_mch_id: values.wechat_mch_id || '', payment_wechat_private_key: values.wechat_private_key || '', payment_wechat_cert_serial_no: values.wechat_cert_serial_no || '', payment_wechat_api_v3_key: values.wechat_api_v3_key || '', payment_wechat_notify_url: values.wechat_notify_url || '', payment_wechat_public_key: values.wechat_public_key || '', payment_wechat_public_key_id: values.wechat_public_key_id || '', payment_alipay_enabled: String(alipayEnabled), payment_alipay_app_id: values.alipay_app_id || '', 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 || '', payment_order_timeout: String(values.order_timeout || 180), }); message.success('支付配置已保存'); load(); } catch { message.error('保存失败'); } finally { setSaving(false); } }; return (
{/* 上边一排:通用设置 + 模拟支付模式 */}
{/* 通用设置:订单超时时间 */}
订单超时时间
{/* 模拟支付模式 */}
模拟支付模式
{/* 下边一排:微信支付 + 支付宝 */}
{/* 微信支付 */}
微信支付 微信商户号支付配置
{/* 支付宝 */}
支付宝 支付宝应用支付配置
); }; export default AdminPaymentConfig;