You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.7 KiB
5.7 KiB
school_pay 表文档
表概述
表名: school_pay
功能: 支付信息管理表,负责管理教务系统中的所有支付记录,包括支付流水、支付状态、支付方式等核心支付信息
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键
main_id int NULL NO 0 select,insert,update,references 支付会员id
from_main_id int NULL NO 0 select,insert,update,references 发起支付会员id
out_trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付流水号
trade_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务类型
trade_id int NULL NO 0 select,insert,update,references 业务id
trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 交易单号
body varchar(1000) utf8mb4_general_ci NO select,insert,update,references 支付主体
money decimal(10,2) NULL NO NULL select,insert,update,references 支付金额
voucher varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付票据
status int NULL NO 0 select,insert,update,references 支付状态(0.待支付 1. 支付中 2. 已支付 -1已取消)
json varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付扩展用支付信息
create_time int NULL NO 0 select,insert,update,references 创建时间
pay_time int NULL NO 0 select,insert,update,references 支付时间
cancel_time int NULL NO 0 select,insert,update,references 关闭时间
type varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付方式
mch_id varchar(50) utf8mb4_general_ci NO select,insert,update,references 商户收款账号
main_type varchar(255) utf8mb4_general_ci NO select,insert,update,references
channel varchar(50) utf8mb4_general_ci NO select,insert,update,references 支付渠道
fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因
功能用途
主要功能
- 支付流水管理: 生成和管理唯一的支付流水号,确保支付记录可追溯
- 多业务类型支持: 支持不同业务类型的支付处理(订单支付、充值等)
- 支付状态跟踪: 实时跟踪支付状态(待支付、支付中、已支付、已取消)
- 多支付方式: 支持多种支付渠道和支付方式
- 代付功能: 支持发起支付会员和实际支付会员的分离管理
- 支付票据管理: 管理支付凭证和票据信息
- 商户账号管理: 管理不同的商户收款账号
- 支付时间记录: 记录支付创建、完成、取消等关键时间节点
- 失败原因追踪: 记录支付失败的具体原因,便于问题排查
业务场景
- 订单支付: 学员购买课程时的支付处理
- 充值支付: 学员账户余额充值
- 代付服务: 家长为孩子支付学费等代付场景
- 退款处理: 处理退费相关的支付记录
- 支付对账: 与第三方支付平台进行对账
- 财务结算: 生成财务报表和收入统计
- 支付监控: 监控支付成功率和失败原因
- 风控管理: 识别异常支付行为
关联关系
主要关联表
school_member: 会员信息表 (main_id, from_main_id)school_order_table: 订单信息表 (通过trade_id关联)school_contract: 合同信息表 (通过trade_id关联)school_refund: 退款信息表 (通过trade_id关联)school_recharge: 充值记录表 (通过trade_id关联)sys_pay_config: 支付配置表 (通过type关联)
关联说明
- 会员关联: main_id关联实际支付的会员,from_main_id关联发起支付的会员
- 业务关联: 通过trade_type和trade_id关联具体的业务记录(订单、合同、充值等)
- 支付配置: 通过type字段关联支付方式配置
- 商户关联: mch_id关联具体的商户收款账号
- 渠道关联: channel字段标识支付渠道来源
索引建议
- 主键索引: id (已存在)
- 唯一索引: out_trade_no (支付流水号唯一性)
- 外键索引:
- main_id (支付会员查询)
- from_main_id (发起支付会员查询)
- 业务索引:
- trade_type (业务类型查询)
- trade_id (业务ID查询)
- trade_no (交易单号查询)
- 状态索引: status (支付状态查询)
- 时间索引:
- create_time (创建时间查询)
- pay_time (支付时间查询)
- 复合索引:
- (main_id, status) (会员支付状态查询)
- (trade_type, trade_id) (业务关联查询)
- (type, status) (支付方式状态查询)
- (create_time, status) (时间状态查询)
- (mch_id, status) (商户支付状态查询)
注意事项
- 流水号唯一性: out_trade_no必须全局唯一,避免重复支付
- 金额精度: money字段使用decimal(10,2),确保财务计算精度
- 状态流转: 支付状态有严格的流转规则(0→1→2或0→-1)
- 时间逻辑: pay_time不能早于create_time,cancel_time只在取消时设置
- 代付逻辑: from_main_id和main_id可以不同,支持代付场景
- 业务关联: trade_type和trade_id必须配套使用,确保业务关联正确
- 支付方式: type字段决定了支付的具体处理逻辑
- 商户配置: mch_id必须与系统配置的商户账号匹配
- 支付渠道: channel字段用于区分不同的支付来源
- 失败处理: 支付失败时必须记录fail_reason,便于问题排查
- 数据安全: 支付相关敏感信息需要加密存储
- 幂等性: 同一笔支付请求多次提交应该返回相同结果
- 对账机制: 定期与第三方支付平台进行对账,确保数据一致性
- 监控告警: 支付失败率过高时需要及时告警