本次覆盖14个后台人工退款写入口:普通/套餐/差价/余额转退、企微、注册商品、临时账号、批发/押金、镜像店费用、Spotify升级、会员及特殊支付订单。
order:refund;它覆盖上述多种业务,请只授权实际退款人员。order:refundTransfer。sign:refund,与 order:refund 同时满足。/external/app/refund/{id} 沿用之前的 root + exchangeCode:refund,不改为普通退款权限。/manage/corp/unified/refund 原来从 Cookie 直接读取员工标识,不再据此允许退款。现在必须提供后台登录态及 order:refund,操作人来自服务端后台登录ID。只有企微Cookie的旧客户端会被拒绝,需登录后台办理或另建服务端可验证的企微身份集成,不能恢复信任裸Cookie。
先在 docs/sql/20261021-refund-permissions.sql 设置真实订单菜单父ID,再执行脚本,两个权限输出均为OK。默认仅root授权,其他角色显式授权并重新登录。原有12权限之外新增2项,总共14项(登录日志仍按root控制)。 前端统一请求层已拦截人工退款,主订单/套餐退款按钮、余额转退按钮同步控制;其他复用按钮可能仍显示,但未授权不能通过请求层和后端执行。
新增 RefundPermissionTest 覆盖14入口注解与回调排除;前端新增退款策略测试。Java测试尚未执行通过(当前本地Maven依赖未解决)。发布前在测试环境验证匿名/前台/无权限/停用后台均无法退款,有对应权限后台成功;只伪造企微Cookie应拒绝。未执行任何真实退款。