Files
wucaixing-backend/sql/1289/2_pay_module.sql
2026-05-13 16:14:53 +08:00

242 lines
6.3 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 支付模块基础表
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"}