Files
xxk-proxy/java/sql/mysql/xxk_proxy_payment_adaptation_upgrade.sql
2026-06-11 10:31:24 +08:00

51 lines
3.2 KiB
SQL

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='支付回调日志表';