-- C2 安全修复(promo 限购 TOCTOU):CreateOrder 下单时的 HasPaidPurchase 只是裸 -- SELECT(无锁),并发/多挂起单可绕过「每账号限购一次」。这里加部分唯一索引兜底: -- 同一 user_id 的 pro_month_promo 至多一条 status='paid'。sqlite 支持部分索引 -- (WHERE 子句),精确限定 sku='pro_month_promo'(目前唯一的 Promo=true 档位), -- 不影响其余 SKU 正常复购。webhook.go settle 侧另有应用层复查作为第一道防线 -- (mysql 侧 000027 是 no-op,不支持部分索引——见 mysql 版本注释)。 CREATE UNIQUE INDEX ux_pay_promo_paid ON pay_purchases (user_id, sku) WHERE status = 'paid' AND sku = 'pro_month_promo';