- Linked Product:
- Version Number: 2.5.6
- Release Type: 正式版
- Security Update: No
核心变更:事务幂等性(Transaction Idempotency)
目的: 彻底防止同一积分事件被重复执行/入账。
1. 数据库结构变更(upgrade2050600Step1)
xf_hn_transaction.transaction_hash字段新增唯一索引transaction_hash_unique升级时自动修复历史数据:
空 hash 的旧记录 → 生成确定性 hash(
sha256('legacy-empty:' + transaction_id))hash 重复的旧记录 → 生成去重 hash(
sha256('legacy-duplicate:' + transaction_id))采用分批处理(每批 10000 条),兼容大数据量
2. 触发逻辑变更(Service/Event/Trigger.php)
每次触发事件前先计算 幂等性键(idempotency key),并据此生成
transaction_hash写入数据库时捕获
DuplicateKeyException—— 若 hash 已存在,返回错误而非重复入账transaction['extra_data']中同步记录idempotency_key,便于审计
There are no reviews to display.