智慧教务系统
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

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,便于问题排查
  • 数据安全: 支付相关敏感信息需要加密存储
  • 幂等性: 同一笔支付请求多次提交应该返回相同结果
  • 对账机制: 定期与第三方支付平台进行对账,确保数据一致性
  • 监控告警: 支付失败率过高时需要及时告警