# 【修正·小程序】售后工单 mp 端接口加归属校验（防横向越权）

> 模块：order-v3 售后工单（aftersale）小程序端
> 类型：安全加固（每日审查驱动，新模块上线前修正）
> 影响端点：`/v3/mp/aftersale/ticket/**`（我的工单列表 / 详情 / 撤回）
> 关联：售后工单中心 PR1-5（#4162/#4165/#4168/#4173/#4185）的每日审查修正
> 测试服已部署验证（9443 实测端点 200）

## ⚠️ 关键说明

售后工单 mp 端三个用户入口此前缺少归属校验，任意登录用户传他人 `ticketId`/`orderId` 即可读取或撤回他人工单（横向越权 IDOR）。本次加固：**经订单归属校验当前用户是否为下单人**，非本人操作返回错误码 **586014（TICKET_NOT_OWN）**。

正常业务流程下，小程序用户只操作自己订单的售后工单，**不会触发**该错误；前端无需改动，仅需对 586014 做兜底提示（如「无权访问该工单」）。

## 1. 受影响端点与行为

| 端点 | 修正 |
|------|------|
| `GET /v3/mp/aftersale/ticket/my`（我的工单列表） | 新增按当前用户校验 `orderId` 归属；端点入参不变，仅服务端加校验 |
| `GET /v3/mp/aftersale/ticket/{id}`（工单详情） | 校验工单所属订单归属当前用户，非本人抛 586014 |
| `POST /v3/mp/aftersale/ticket/{id}/withdraw`（撤回） | 同上归属校验，非本人不可撤回（且不再触发他人 OA 审批撤销） |

## 2. 附带修正：撤回工单不再消失

撤回（WITHDRAWN）此前被误当软删处理，导致撤回后的工单在「我的工单」列表/详情中**永久不可见**。本次修正后，**撤回是可见终态**，撤回的工单仍可在列表与详情中查看（状态显示「已撤回」）。

## 3. 错误码

| code | 含义 |
|------|------|
| 586014 | 无权操作该售后工单（非本人订单）|
