74 行
2.3 KiB
Markdown
74 行
2.3 KiB
Markdown
# 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 <token>
|
||
Content-Type: application/json
|
||
|
||
{ "reason": "行程有变,需要取消" }
|
||
```
|
||
(body 也可整体不传。)
|
||
|
||
## 出参
|
||
|
||
`Result<Void>`
|
||
|
||
**出参示例**
|
||
```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)
|