## MODIFIED Requirements ### Requirement: 充值支付回调处理 系统 SHALL 处理微信和支付宝的支付回调,验证签名,更新充值订单状态,增加钱包余额。 关键一致性修复:`HandlePaymentCallback` 内的 `UpdateStatusWithOptimisticLock` 与 `UpdatePaymentInfo` MUST 使用同一个事务内 `tx` 执行。 #### Scenario: 回调处理中状态更新与支付信息更新同事务 - **WHEN** 收到支付成功回调并进入 `HandlePaymentCallback` - **THEN** 系统 MUST 在同一事务 `tx` 内执行 `UpdateStatusWithOptimisticLock` - **THEN** 系统 MUST 在同一事务 `tx` 内执行 `UpdatePaymentInfo` #### Scenario: 事务失败整体回滚 - **WHEN** 回调处理中任一步骤失败 - **THEN** 系统 MUST 回滚该事务,保证订单状态与支付信息不出现部分成功 --- ### Requirement: Store 方法签名支持事务参数 系统 MUST 调整充值相关 Store 方法签名,支持显式传入 `*gorm.DB tx` 参数,以保证事务边界可控。 #### Scenario: Service 传入事务句柄 - **WHEN** Service 在事务上下文调用 Store 更新充值记录 - **THEN** Store 方法 MUST 接收并使用传入的 `tx` 执行数据库操作