Skip to content
Back to skills

Travel Refund

ASecurity

查询订单列表、退票和改签。当用户提到查订单、我的订单、订单列表、退票、退款、改签、改期、改航班、退机票、退火车票、退酒店、取消订单时触发。

  • 417 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 8, 2026
documentationapi

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 8, 2026

npx -y skills add infometa/workbuddyskills --skill travel-refund --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Travel Refund?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Travel Refund
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-travel-refund/badge)](https://www.skillsdirectory.com/skills/infometa-travel-refund)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: travel-refund
description: 查询订单列表、退票和改签。当用户提到查订单、我的订单、订单列表、退票、退款、改签、改期、改航班、退机票、退火车票、退酒店、取消订单时触发。
description_zh: 查询订单列表,支持退票/改签操作。
description_en: Query order list, support refund and rebooking.
version: 1.0.0
author: 梓如商旅
---

# 退票/改签

帮用户查询已有的机票/火车票/酒店订单,并生成退票或改签的 **H5 跳转链接**。用户点击链接后在 H5 页面完成退票或改签操作。

## 与查询、预订的分工

- 只想查班次/舱位/房型、看有哪些选项 → `travel-query`
- 要规划一整段行程 → `travel-plan`
- 已经选定方案、要买 → `travel-booking`
- 要退票/改签已有订单 → 本技能

## 工具总览

| 工具 | 用途 | 什么时候用 |
|---|---|---|
| `ziru_order_list` | 查询当前用户的订单列表 | 用户要退票/改签时,先查订单让用户选择 |
| `ziru_refund_link` | 生成退票 H5 跳转链接 | 用户选定了要退票的订单 |
| `ziru_rebooking_link` | 生成改签 H5 跳转链接 | 用户选定了要改签的订单 |

详细参数与返回字段见 `@references/refund.md`。

## 核心规则

### 1. 先查订单列表,再让用户选择

用户说"退机票"或"改签火车票"时,**先调 `ziru_order_list` 查出订单列表**,把订单展示给用户,让用户确认要退/改哪一个。不要假设订单号。

### 2. 订单列表展示规则

| 订单数量 | 展示格式 |
|----------|----------|
| **1 条** | 纵向键值对(`- 字段名:值`) |
| **2 条及以上** | Markdown 表格 |

**表格模板:**

```
| 序号 | 类型 | 行程 | 日期 | 车次/航班/酒店 | 金额 | 状态 | 操作 | 订单号 |
|:----:|:----:|------|------|----------------|-----:|------|------|--------|
| 1 | 机票 | 北京→上海 | 09-30 | HU7613 | ¥650 | 已出票 | [退票](refundLink) [改签](rebookingLink) | 2609211339... |
| 2 | 酒店 | 上海 | 10-29~10-31 | 锦江都城 | ¥854 | 预订成功 | [退票](refundLink) - | 2609211340... |
```

> 操作列直接使用接口返回的 `refundLink` / `rebookingLink` 字段值作为 URL

> 日期格式:`MM-dd`,酒店显示 `MM-dd~MM-dd`

**操作列展示规则**:
- 使用 `refundLink` / `rebookingLink` 字段生成 **Markdown 超链接** `[退票](url)`
- 字段为空时显示 `-`
- 示例:`[退票](http://...) [改签](http://...)`

### 3. 单独输出链接时用裸 URL

当用户确认要退/改某个订单后,**单独输出**链接时使用裸 URL 格式:

- 退票:`退票链接: <url>`
- 改签:`改签链接: <url>`

**不要**包成 Markdown 超链接,调用方靠识别裸 URL 渲染成可点击入口。

### 4. 退票和改签分别生成

两个不同的操作,分别用不同的工具和链接,**不要合并**。

### 5. 不是所有订单都能退改

订单列表里每个订单带 `refundable`(是否可退)和 `rebookable`(是否可改)标识。不可退/改的订单如实告知用户原因(如"该订单已退票""该订单状态不支持改签"),**不要生成链接**。

**退改时间规则:**

| 业务类型 | 退票规则 | 改签规则 |
|----------|----------|----------|
| 机票 | 起飞时间之前 | 起飞时间之前 |
| 火车票 | 出票完成 + 距离开车时间 5 分钟以上 | 出票完成 + 发车日期当天 23:59:59 之前 |
| 酒店 | 入住日期之前 + 未入住(状态为"已确认"或"预订成功(等待入住)") | ❌ 不支持改签 |

### 6. 后端不执行退票/改签操作

只生成 H5 跳转链接,**不会真正退票或改签**。给用户说明时:
- 用"已为您生成退票/改签链接"
- **禁用**"已退票""已改签""已取消"

### 7. 链接 1 小时内有效

过期需要重新生成。给用户说明失效时间。

### 8. 业务类型要匹配

- 机票订单只能退/改机票,不能改火车
- 火车订单只能退/改火车,不能改酒店
- 酒店订单只能退票,**不支持改签**

`businessType` 只能是 `flight` / `train` / `hotel` 之一。

### 9. 参数不确定就先问

订单号不明确时,先列出订单让用户选择,不要猜测。

---

## 流程

1. 从对话中确定用户要退票还是改签,以及业务类型(机票/火车/酒店)
2. 调 `ziru_order_list` 查询订单列表(可按 `businessType` 过滤)
3. 把订单列表展示给用户,让用户选择要退/改的订单
4. 根据用户选择,调 `ziru_refund_link` 或 `ziru_rebooking_link` 生成链接
5. 输出链接和说明

---

## 典型调用链

**"帮我退掉昨天订的北京到上海的机票"**

```
ziru_order_list(businessType=flight)
  → 列出该用户的机票订单
  → 找到北京→上海的那张
  → 检查 refundable=true
  → ziru_refund_link(orderId=F20260920001, businessType=flight)
  → 输出退票链接
```

**"我的火车票想改签到明天"**

```
ziru_order_list(businessType=train)
  → 列出该用户的火车订单
  → 用户确认是哪一张
  → 检查 rebookable=true
  → ziru_rebooking_link(orderId=T20260919002, businessType=train)
  → 输出改签链接
```

**"退掉上海的酒店"**

```
ziru_order_list(businessType=hotel)
  → 列出该用户的酒店订单
  → 找到上海的那家
  → 检查 refundable=true
  → ziru_refund_link(orderId=H20260918003, businessType=hotel)
  → 输出退票链接
```

---

## 输出示例

### 退票链接输出(机票)

```
已为您生成退票链接(1 小时内有效,点击链接后在页面完成退票操作):

机票订单 2609211339443380a0123771886 北京→上海 2026-09-30 HU7613

退票链接: {前端域名}/#/Air/AirOrderDetail?orderID=2609211339443380a0123771886&t=xxx

本次链接 2026-09-20 18:30 前有效,逾期请重新生成。
```

### 退票链接输出(火车票)

```
已为您生成退票链接(1 小时内有效,点击链接后在页面完成退票操作):

火车票订单 T20260919002 北京南→上海虹桥 2026-09-19 G1 二等座

退票链接: {前端域名}/#/train/order_detail?orderID=T20260919002&t=xxx

本次链接 2026-09-20 18:30 前有效,逾期请重新生成。
```

### 退票链接输出(酒店)

```
已为您生成退票链接(1 小时内有效,点击链接后在页面完成退票操作):

酒店订单 2609211340575980h0139410844 上海·如家酒店 2026-09-15~09-17

退票链接: {前端域名}/#/Hotel/OrderDetail?orderID=2609211340575980h0139410844&t=xxx

本次链接 2026-09-20 18:30 前有效,逾期请重新生成。
```

### 改签链接输出(火车票)

```
已为您生成改签链接(1 小时内有效,点击链接后在页面完成改签操作):

火车票订单 T20260919002 北京南→上海虹桥 2026-09-19 G1 二等座

改签链接: {前端域名}/#/train/order_detail?orderID=T20260919002&t=xxx

本次链接 2026-09-20 18:30 前有效,逾期请重新生成。
```

---

## 异常与鉴权

- 鉴权失败或提示凭据无效时,告知用户**重新填写 Access Token**(在连接表单里点「如何获取访问令牌?」,登录并选择所属公司后复制页面上的 MCP Key),不要反复重试。
- 接口返回失败时,把 message 里的原因如实转达给用户(例如"未找到该订单""该订单状态不支持退票"),不要吞掉或改写成模糊说法。

---

## 不做的事

- 不直接调用退票/改签 API 接口——只生成 H5 跳转链接,由用户点击确认
- 不编造订单号或标识
- 不替用户在 H5 页面上完成退票/改签操作
- 不合并退票和改签链接——两个操作分别生成
- 与用户沟通禁用"已退票/已改签/已取消",统一用"已生成退票/改签链接"
- 不跨业务类型退改(机票订单不能改火车)

Files in this skill

  • SKILL.md7.7 KB
  • references/refund.md10.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in documentation →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.