# C 端用户自主取消订单(小程序端) > 端类型:**小程序端**(v3)|变更类型:**新增接口**|服务:hl-mp-service(Feign → hl-order-service-v3) > Epic #3540 | PR #3549 |日期:2026-06-06 ## 接口地址 `POST /mp/order/{orderId}/cancel` ## 接口介绍 小程序 C 端用户自主取消**自己**的订单。仅出行前可取消,按退款政策(距出发天数阶梯)退款,取消后订单进入 `CANCELLED` 终态、不可恢复。 ## 本次修改点 新增接口。此前小程序无自主取消能力(取消只能走后台定制师)。本接口固定 `POLICY` 退款模式(C 端不暴露退款模式选择),并校验订单归属当前登录用户。 ## 入参 - 路径参数:`orderId`(Long,订单 ID,必填) - 请求头:`Authorization`(登录 token,必填) - 请求体(可选,可不传): | 字段 | 类型 | 必填 | 含义 | |---|---|---|---| | reason | String | 否 | 取消原因 | **入参示例** ``` POST /mp/order/2063151085698134017/cancel Authorization: Bearer Content-Type: application/json { "reason": "行程有变,需要取消" } ``` (body 也可整体不传。) ## 出参 `Result` **出参示例** ```json { "code": 200, "message": "成功", "success": true, "data": null } ``` ## 可取消状态(调用约束) | 订单状态 | 是否可取消 | |---|---| | PENDING_PAY 待支付 | ✅ | | CUSTOMIZING 定制中 | ✅ | | PENDING_DEPARTURE 待出行 | ✅ | | TRAVELLING 出行中 | ❌(行程中只能联系客服终止行程) | | COMPLETED 已完成 | ❌ | | CANCELLED 已取消 | ❌ | - 退款模式固定 `POLICY`,按退款政策阶梯计算退款金额(已付订金时退款,未支付时无退款)。 - 仅可取消归属当前登录用户的订单(非本人订单返回 581037)。 ## 错误码 | code | message | 触发 | |---|---|---| | 581017 | 当前订单状态不允许取消 | 出行中 / 已完成 / 已取消订单调用 | | 581037 | 无权取消该订单 | 取消非本人(userId 不匹配)订单 | | 401 | 缺少有效的 Authorization 头 | 未携带 token | ## 关联 - Epic:https://git.1814.love:8443/wx/HL/issues/3540 - PR:https://git.1814.love:8443/wx/HL/pulls/3549 - 后端负责人:腰苏图(订单 v3)