-- Qihu-AIFlow 支付配置和实名认证配置字段扩展(幂等) USE aiflow; -- ============================================================ -- 支付配置:增加微信v3和支付宝完整字段 -- ============================================================ -- 存储过程:检查并添加列 api_v3_key DROP PROCEDURE IF EXISTS add_col_if_missing_009; DELIMITER $$ CREATE PROCEDURE add_col_if_missing_009() BEGIN IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'api_v3_key') THEN ALTER TABLE payment_configs ADD COLUMN api_v3_key VARCHAR(255) DEFAULT NULL COMMENT '微信APIv3密钥'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'cert_serial_no') THEN ALTER TABLE payment_configs ADD COLUMN cert_serial_no VARCHAR(200) DEFAULT NULL COMMENT '微信证书序列号'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'alipay_public_key') THEN ALTER TABLE payment_configs ADD COLUMN alipay_public_key TEXT DEFAULT NULL COMMENT '支付宝公钥'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'app_private_key') THEN ALTER TABLE payment_configs ADD COLUMN app_private_key TEXT DEFAULT NULL COMMENT '支付宝应用私钥'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'notify_url') THEN ALTER TABLE payment_configs ADD COLUMN notify_url VARCHAR(500) DEFAULT NULL COMMENT '支付回调通知地址'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'payment_configs' AND COLUMN_NAME = 'return_url') THEN ALTER TABLE payment_configs ADD COLUMN return_url VARCHAR(500) DEFAULT NULL COMMENT '支付宝同步跳转地址'; END IF; -- 注册设置:增加阿里云短信签名和模板字段 IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'register_settings' AND COLUMN_NAME = 'sms_sign_name') THEN ALTER TABLE register_settings ADD COLUMN sms_sign_name VARCHAR(100) DEFAULT NULL COMMENT '阿里云短信签名'; END IF; IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'register_settings' AND COLUMN_NAME = 'sms_template_code') THEN ALTER TABLE register_settings ADD COLUMN sms_template_code VARCHAR(50) DEFAULT NULL COMMENT '阿里云短信模板代码'; END IF; END$$ DELIMITER ; CALL add_col_if_missing_009(); DROP PROCEDURE IF EXISTS add_col_if_missing_009; -- ============================================================ -- 幂等插入支付配置初始记录 -- ============================================================ INSERT IGNORE INTO payment_configs (id, type, app_id, merchant_id, api_key, api_v3_key, cert_path, cert_serial_no, alipay_public_key, app_private_key, gateway_url, notify_url, return_url, status) VALUES ('pc1', 'wechat', '', '', '', '', '/etc/certs/apiclient_cert.pem', '', NULL, NULL, 'https://api.mch.weixin.qq.com', '', '', 'inactive'), ('pc2', 'alipay', '', NULL, '', NULL, NULL, NULL, '', '', 'https://openapi.alipay.com/gateway.do', '', '', 'inactive');