Files
wucaixing-backend/sql/1289/2_pay_module.sql

242 lines
6.3 KiB
MySQL
Raw Normal View History

2026-05-13 16:14:53 +08:00
-- 支付模块基础表
CREATE TABLE IF NOT EXISTS `pay_app`
(
`id`
BIGINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
COMMENT
'应用编号',
`app_key`
VARCHAR
(
64
) NOT NULL COMMENT '应用标识',
`name` VARCHAR
(
100
) NOT NULL COMMENT '应用名称',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态1启用 0停用',
`remark` VARCHAR
(
255
) DEFAULT NULL COMMENT '备注',
`order_notify_url` VARCHAR
(
255
) DEFAULT NULL COMMENT '业务回调地址',
`create_by` BIGINT DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` BIGINT DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '0正常 1删除',
PRIMARY KEY
(
`id`
),
UNIQUE KEY `uk_pay_app_key`
(
`app_key`
)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='支付应用';
CREATE TABLE IF NOT EXISTS `pay_channel`
(
`id`
BIGINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
COMMENT
'渠道编号',
`code`
VARCHAR
(
64
) NOT NULL COMMENT '渠道编码',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态1启用 0停用',
`remark` VARCHAR
(
255
) DEFAULT NULL COMMENT '备注',
`app_id` BIGINT UNSIGNED NOT NULL COMMENT '应用编号',
`config` LONGTEXT NOT NULL COMMENT '渠道配置(JSON)',
`create_by` BIGINT DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` BIGINT DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '0正常 1删除',
PRIMARY KEY
(
`id`
),
UNIQUE KEY `uk_pay_channel_app_code`
(
`app_id`,
`code`
)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='支付渠道';
CREATE TABLE IF NOT EXISTS `pay_order`
(
`id`
BIGINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
COMMENT
'支付订单编号',
`app_id`
BIGINT
UNSIGNED
NOT
NULL
COMMENT
'应用编号',
`merchant_order_no`
VARCHAR
(
64
) DEFAULT NULL COMMENT '业务订单号',
`biz_order_type` VARCHAR
(
64
) DEFAULT NULL COMMENT '业务类型',
`biz_order_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务主键',
`subject` VARCHAR
(
128
) DEFAULT NULL COMMENT '订单标题',
`body` VARCHAR
(
255
) DEFAULT NULL COMMENT '订单描述',
`channel_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '渠道编号',
`channel_code` VARCHAR
(
64
) DEFAULT NULL COMMENT '渠道编码',
`notify_url` VARCHAR
(
255
) DEFAULT NULL COMMENT '异步回调地址',
`return_url` VARCHAR
(
255
) DEFAULT NULL COMMENT '同步跳转地址',
`price` DECIMAL
(
18,
2
) NOT NULL COMMENT '支付金额(元)',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态1待支付 2支付中 3成功 4失败 5关闭',
`user_ip` VARCHAR
(
64
) DEFAULT NULL COMMENT '用户IP',
`expire_time` DATETIME DEFAULT NULL COMMENT '失效时间',
`success_time` DATETIME DEFAULT NULL COMMENT '支付成功时间',
`extension_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '支付成功拓展单编号',
`no` VARCHAR
(
64
) DEFAULT NULL COMMENT '平台支付订单号',
`channel_user_id` VARCHAR
(
64
) DEFAULT NULL COMMENT '渠道用户编号',
`channel_order_no` VARCHAR
(
64
) DEFAULT NULL COMMENT '渠道订单号',
`create_by` BIGINT DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` BIGINT DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '0正常 1删除',
PRIMARY KEY
(
`id`
),
UNIQUE KEY `uk_pay_order_no`
(
`no`
),
KEY `idx_pay_order_biz`
(
`biz_order_type`,
`biz_order_id`
)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='支付订单';
CREATE TABLE IF NOT EXISTS `pay_order_extension`
(
`id`
BIGINT
UNSIGNED
NOT
NULL
AUTO_INCREMENT
COMMENT
'拓展单编号',
`no`
VARCHAR
(
64
) NOT NULL COMMENT '三方侧商户单号',
`order_id` BIGINT UNSIGNED NOT NULL COMMENT '支付订单编号',
`channel_id` BIGINT UNSIGNED NOT NULL COMMENT '渠道编号',
`channel_code` VARCHAR
(
64
) NOT NULL COMMENT '渠道编码',
`user_ip` VARCHAR
(
64
) DEFAULT NULL COMMENT '用户IP',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态1待支付 2支付中 3成功 4失败 5关闭',
`channel_extras` LONGTEXT DEFAULT NULL COMMENT '渠道扩展信息',
`channel_error_code` VARCHAR
(
64
) DEFAULT NULL COMMENT '渠道错误码',
`channel_error_msg` VARCHAR
(
255
) DEFAULT NULL COMMENT '渠道错误信息',
`channel_notify_data` LONGTEXT DEFAULT NULL COMMENT '渠道回调原文',
`create_by` BIGINT DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` BIGINT DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '0正常 1删除',
PRIMARY KEY
(
`id`
),
UNIQUE KEY `uk_pay_order_extension_no`
(
`no`
),
KEY `idx_pay_order_extension_order`
(
`order_id`
)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='支付订单拓展单';
ALTER TABLE `hot_fund_recharge_order`
MODIFY COLUMN `recharge_amount` DECIMAL (18, 2) NULL COMMENT '充值金额(元)',
MODIFY COLUMN `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态1待支付 2支付中 3支付成功 4支付失败 5已关闭 6已退款';
-- 初始化建议
-- INSERT INTO pay_app(app_key, name, status, remark) VALUES ('wallet-recharge', '钱包充值', 1, '钱包充值支付应用');
-- 渠道编码建议:
-- WECHAT_QR / WECHAT_H5 / WECHAT_APP / ALIPAY_QR / ALIPAY_H5 / ALIPAY_APP
-- 支付渠道 config 示例:
-- 支付宝:{"appId":"xxx","privateKey":"-----BEGIN PRIVATE KEY-----...","alipayPublicKey":"-----BEGIN PUBLIC KEY-----...","gateway":"https://openapi.alipay.com/gateway.do"}
-- 微信:{"appId":"wxxxx","merchantId":"1xxxx","merchantSerialNo":"xxxx","privateKey":"-----BEGIN PRIVATE KEY-----...","apiV3Key":"32位密钥","platformPublicKey":"-----BEGIN PUBLIC KEY-----...","gateway":"https://api.mch.weixin.qq.com"}