USE youlai_admin; -- 订单支付对外适配升级脚本 -- 说明: -- 1. 新增订单支付记录表,承接支付中台 / 自研支付的统一支付单。 -- 2. 新增支付回调日志表,保留异步通知原文和处理结果。 -- 3. 当前主订单表已存在 payment_type 字段,本脚本不重复新增。 CREATE TABLE IF NOT EXISTS `xxk_proxy_order_pay` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `pay_order_no` VARCHAR(64) NOT NULL COMMENT '支付单号', `order_id` BIGINT NOT NULL COMMENT '业务订单ID', `order_no` VARCHAR(64) NOT NULL COMMENT '业务订单号', `payment_type` VARCHAR(32) NOT NULL COMMENT '支付方式(BALANCE/ALIPAY/WECHAT/EXTERNAL)', `pay_status` VARCHAR(32) NOT NULL DEFAULT 'INIT' COMMENT '支付单状态(INIT/PAYING/PAID/FAIL/CLOSED/REFUNDED)', `channel_order_no` VARCHAR(128) DEFAULT NULL COMMENT '渠道支付单号', `channel_response` TEXT DEFAULT NULL COMMENT '渠道原始响应', `client_type` VARCHAR(32) DEFAULT NULL COMMENT '客户端类型(PC/H5/APP/MINI_PROGRAM)', `return_url` VARCHAR(500) DEFAULT NULL COMMENT '支付完成跳转地址', `amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额', `currency` VARCHAR(16) DEFAULT NULL COMMENT '币种', `paid_time` DATETIME DEFAULT NULL COMMENT '支付成功时间', `expire_time` DATETIME DEFAULT NULL COMMENT '支付过期时间', `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)', PRIMARY KEY (`id`), UNIQUE KEY `uk_xxk_proxy_order_pay_no` (`pay_order_no`), KEY `idx_xxk_proxy_order_pay_order_no` (`order_no`), KEY `idx_xxk_proxy_order_pay_status` (`pay_status`, `update_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单支付记录表'; CREATE TABLE IF NOT EXISTS `xxk_proxy_payment_notify_log` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `pay_order_no` VARCHAR(64) DEFAULT NULL COMMENT '支付单号', `order_no` VARCHAR(64) DEFAULT NULL COMMENT '业务订单号', `payment_type` VARCHAR(32) DEFAULT NULL COMMENT '支付方式', `notify_type` VARCHAR(32) DEFAULT NULL COMMENT '通知类型(PAY/REFUND/CLOSE)', `notify_body` MEDIUMTEXT DEFAULT NULL COMMENT '通知原文', `verify_status` VARCHAR(16) NOT NULL DEFAULT 'INIT' COMMENT '验签状态(INIT/SUCCESS/FAIL)', `process_status` VARCHAR(16) NOT NULL DEFAULT 'INIT' COMMENT '处理状态(INIT/SUCCESS/FAIL)', `error_message` VARCHAR(500) DEFAULT NULL COMMENT '失败原因', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除(0否 1是)', PRIMARY KEY (`id`), KEY `idx_xxk_proxy_payment_notify_order_no` (`order_no`), KEY `idx_xxk_proxy_payment_notify_status` (`verify_status`, `process_status`, `update_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付回调日志表';