Files
server/TODO.md
2025-11-02 19:34:16 +08:00

3.4 KiB
Raw Permalink Blame History

小程序付费 & 会员制功能 ID 规范

核心支付相关 ID 规范(基于数据表 wechat_pay_tables.sql

类别 字段名 数据类型 命名规则 示例 备注
微信支付订单 order_id varchar(64) XZ{{YYYYMMDD}}{{HHMMSS}}{{随机6位}} XZ20250930200018WWvII2 主键64位以内全局唯一
商户订单号 out_trade_no varchar(32) {{业务前缀}}{{时间戳}}{{随机4位}} PAY1719301123a7f2 32位以内商户系统唯一
微信支付订单号 transaction_id varchar(32) 微信返回 4200001234567890123 微信支付系统生成,只读
预支付会话ID prepay_id varchar(64) 微信返回 wx123456789abcdef 微信支付系统生成,只读
退款ID refund_id varchar(64) RF{{订单ID后16位}}{{序号2位}} RF200018WWvII201 主键64位以内支持多次退款
商户退款单号 out_refund_no varchar(64) {{业务前缀}}{{订单号后8位}}{{序号4位}} REFPAY18WWvII20001 64位以内商户系统唯一
微信退款单号 refund_id_wx varchar(32) 微信返回 50000123456789012345 微信支付系统生成,只读
支付配置ID config_id int 自增ID 1 自增主键,系统配置用
支付日志ID log_id bigint 自增ID 1234567890 自增主键,日志记录用

业务扩展 ID 规范

类别 字段名 命名规则 示例 备注
商品 product_id prod_{{业务缩写}}_{{序号}} prod_vip_001 全局唯一,不可复用
会员快照 member_snap_id snap_{{用户ID}}_{{版本号}} snap_u123_v2 每次会员状态变更生成新快照
权益实例 benefit_inst_id bf_{{会员快照ID}}_{{权益码}} bf_snap_u123_v2_free_ship 权益码统一定义,如 free_ship
优惠券 coupon_id cp_{{批次码}}_{{序号}} cp_newbie_0001 批次码newbie/vip/gift
券实例 coupon_inst_id ci_{{用户ID}}_{{coupon_id}}_{{随机4位}} ci_u123_cp_newbie_0001_x9k2 用户维度唯一
交易流水 trans_seq ts_{{毫秒时间戳}}_{{随机6位}} ts_1719301123456_z3m8vq 对账用,全局自增

统一约束

  1. 字符规范:全部小写,下划线分隔,无特殊符号。
  2. 长度限制严格按照数据表字段长度限制订单ID≤64位商户订单号≤32位。
  3. 时间戳格式统一使用10位秒级时间戳保持长度一致。
  4. 随机字符:使用 0-9a-z 避免易混淆字符 0o1l
  5. 业务前缀:支付相关使用 XZPAYRF 等标准前缀。
  6. 数据一致性:确保订单、支付、退款、权益、优惠券全链路可追踪。
  7. 微信字段transaction_idprepay_idrefund_id_wx 等由微信系统生成,不可自定义。

字段长度对照表

字段类型 最大长度 推荐格式 说明
order_id 64字符 XZ{{YYYYMMDD}}{{HHMMSS}}{{6位随机}} 主订单ID
out_trade_no 32字符 PAY{{10位时间戳}}{{4位随机}} 商户订单号
refund_id 64字符 RF{{订单ID后16位}}{{2位序号}} 退款ID
out_refund_no 64字符 REF{{商户订单号}}{{4位序号}} 商户退款单号