## 小程序付费 & 会员制功能 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. **业务前缀**:支付相关使用 `XZ`、`PAY`、`RF` 等标准前缀。 6. **数据一致性**:确保订单、支付、退款、权益、优惠券全链路可追踪。 7. **微信字段**:`transaction_id`、`prepay_id`、`refund_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位序号}}` | 商户退款单号 |