dili-cashier.sql 6.81 KB
-- --------------------------------------------------------------------
-- 商户表
-- 说明:商户表用于维护接入支付的商户
-- --------------------------------------------------------------------
DROP TABLE IF EXISTS `upay_merchant`;
CREATE TABLE `upay_merchant` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `mch_id` BIGINT NOT NULL COMMENT '商户ID',
    `name` VARCHAR(60) NOT NULL COMMENT '商户名称',
    `access_token` VARCHAR(40) NOT NULL COMMENT '访问令牌',
    `param` JSON COMMENT '参数配置',
    `address` VARCHAR(128) COMMENT '商户地址',
    `linkman` VARCHAR(40) COMMENT '联系人',
    `telephone` VARCHAR(20) COMMENT '电话号码',
    `state` TINYINT UNSIGNED NOT NULL COMMENT '商户状态',
    `created_time` DATETIME COMMENT '创建时间',
    `modified_time` DATETIME COMMENT '修改时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_merchant_mchId` (`mch_id`) USING BTREE
) ENGINE=InnoDB COMMENT '支付商户';

-- --------------------------------------------------------------------
-- 支付订单数据模型
-- --------------------------------------------------------------------
DROP TABLE IF EXISTS `upay_trade_order`;
CREATE TABLE `upay_trade_order` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `mch_id` BIGINT NOT NULL COMMENT '商户ID',
    `trade_id` VARCHAR(40) NOT NULL COMMENT '交易ID',
    `type` TINYINT UNSIGNED NOT NULL COMMENT '交易类型', -- 购买会员
--     `channel_id` TINYINT UNSIGNED NOT NULL COMMENT '支付渠道',
    `out_trade_no` VARCHAR(40) COMMENT '外部流水号', -- 商户流水号
    `amount` BIGINT NOT NULL COMMENT '金额-分',
    `max_amount` BIGINT NOT NULL COMMENT '初始金额-分',
    `goods` VARCHAR(128) COMMENT '商品描述',
    `order_timeout` INTEGER UNSIGNED NOT NULL COMMENT '超时间隔时间-秒',
    `state` TINYINT UNSIGNED NOT NULL COMMENT '交易状态',
    `description` VARCHAR(128) COMMENT '交易备注',
    `attach` VARCHAR(255) COMMENT '附加数据',
    `cashier_desk` TINYINT UNSIGNED NOT NULL COMMENT '收银台类型',
    `version` INTEGER UNSIGNED NOT NULL COMMENT '数据版本号',
    `created_time` DATETIME COMMENT '创建时间',
    `modified_time` DATETIME COMMENT '修改时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_trade_order_tradeId` (`trade_id`) USING BTREE,
    KEY `idx_trade_order_outTradeNo` (`out_trade_no`, `mch_id`) USING BTREE,
    KEY `idx_trade_order_createdTime` (`created_time`) USING BTREE
) ENGINE=InnoDB COMMENT '支付订单';

-- --------------------------------------------------------------------
-- 支付申请数据模型
-- --------------------------------------------------------------------
DROP TABLE IF EXISTS `upay_online_payment`;
CREATE TABLE `upay_online_payment` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `out_mch_id` VARCHAR(40) COMMENT '外部商户号',
    `trade_id` VARCHAR(40) NOT NULL COMMENT '交易ID',
    `type` TINYINT UNSIGNED NOT NULL COMMENT '交易类型',
    `payment_id` VARCHAR(40) NOT NULL COMMENT '支付ID',
    `channel_id` TINYINT UNSIGNED NOT NULL COMMENT '支付通道',
    `pay_type` TINYINT UNSIGNED NOT NULL COMMENT '支付方式', -- NATIVE MINIPRO
    `pipeline_id` BIGINT NOT NULL COMMENT '通道ID',
    `goods` VARCHAR(128) NOT NULL COMMENT '商品描述',
    `amount` BIGINT NOT NULL COMMENT '申请金额-分',
    `object_id` VARCHAR(60) COMMENT '操作对象', -- prepareId,二维码,或退款时的原单号
    `payer_id` VARCHAR(128) COMMENT '支付方', -- 比如微信openId,或json格式数据
    `finish_time` DATETIME COMMENT '支付时间',
    `out_trade_no` VARCHAR(40) COMMENT '通道流水号',
    `out_pay_type` TINYINT UNSIGNED NOT NULL COMMENT '实际支付方式', -- 银行聚合支付时使用
    `state` TINYINT UNSIGNED NOT NULL COMMENT '申请状态',
    `notify_uri` VARCHAR(128) COMMENT '业务回调链接',
    `description` VARCHAR(256) COMMENT '交易备注',
    `version` INTEGER UNSIGNED NOT NULL COMMENT '数据版本号',
    `created_time` DATETIME COMMENT '创建时间',
    `modified_time` DATETIME COMMENT '修改时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_online_payment_paymentId` (`payment_id`) USING BTREE,
    KEY `idx_online_payment_tradeId` (`trade_id`) USING BTREE,
    KEY `idx_online_payment_finishTime` (`finish_time`, `state`) USING BTREE,
    KEY `idx_online_payment_outTradeNo` (`out_trade_no`) USING BTREE,
    KEY `idx_online_payment_createdTime` (`created_time`) USING BTREE
) ENGINE=InnoDB COMMENT '支付申请';

-- --------------------------------------------------------------------
-- 通道管理配置数据模型
-- --------------------------------------------------------------------
DROP TABLE IF EXISTS `upay_payment_pipeline`;
CREATE TABLE `upay_payment_pipeline` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `mch_id` BIGINT NOT NULL COMMENT '商户ID',
    `pipeline_id` BIGINT NOT NULL COMMENT '通道ID',
    `channel_id` TINYINT UNSIGNED NOT NULL COMMENT '渠道', -- 建设银行、农业银行、微信、支付宝
    `type` TINYINT UNSIGNED NOT NULL COMMENT '通道类型', -- 银企直连通道、聚合支付通道、微信支付通道、支付宝通道
    `name` VARCHAR(40) NOT NULL COMMENT '通道名称',
    `uri` VARCHAR(60) NOT NULL COMMENT '通道URI',
    `param` JSON COMMENT '通道参数',
    `state` TINYINT UNSIGNED NOT NULL COMMENT '通道状态',
    `created_time` DATETIME COMMENT '创建时间',
    `modified_time` DATETIME COMMENT '修改时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY  `uk_payment_pipeline_pipelineId` (`pipeline_id`) USING BTREE
) ENGINE=InnoDB COMMENT '通道管理配置';

-- --------------------------------------------------------------------
-- 微信支付通道参数配置数据模型
-- --------------------------------------------------------------------
DROP TABLE IF EXISTS `upay_wechat_param`;
CREATE TABLE `upay_wechat_param` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `pipeline_id` BIGINT NOT NULL COMMENT '通道ID',
    `mch_id` VARCHAR(20) NOT NULL COMMENT '商户号', -- 服务商模式下为服务商商户号
    `app_id` VARCHAR(30) NOT NULL COMMENT '小程序ID',
    `app_secret` VARCHAR(50) NOT NULL COMMENT '小程序密钥',
    `serial_no` VARCHAR(50) NOT NULL COMMENT '商户公钥序列号',
    `private_key` TEXT NOT NULL COMMENT '商户私钥',
    `wechat_serial_no` VARCHAR(50) NOT NULL COMMENT '微信公钥序列号',
    `wechat_public_key` TEXT NOT NULL COMMENT '微信公钥',
    `api_v3_key` VARCHAR(50) NOT NULL COMMENT '微信apiV3Key',
    `type` TINYINT UNSIGNED NOT NULL COMMENT '通道类型', -- 直连通道或服务商通道
    `created_time` DATETIME COMMENT '创建时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY  `uk_wechat_param_pipelineId` (`pipeline_id`) USING BTREE
) ENGINE=InnoDB COMMENT '微信支付通道参数配置';