用途:取消已有酒店预订。属于破坏性操作,执行前必须先与用户确认。
适用场景:用户明确要求取消,例如“Cancel BK_2026_05_001”“I want to cancel my hotel”“Refund my booking”。若只是查询状态,应改用 manage-booking。
前置条件:需要 bookingId、预订上的姓氏(last name)、预订上的邮箱(email)。如果不确定是否仍在免费取消期内,先运行 manage-booking 查看 cancellationDeadline 与 isCancellable 标志。
取消前确认:尤其在免费取消窗口已过时,应先提示即将取消的预订信息、免费取消截止日期及可能产生的取消费用,并询问“Are you sure you want to cancel? (yes/no)”。若仍在免费窗口内,可做较轻的确认。只有用户回答 yes 后才继续。
调用方式:
npx @tvl-justin/travel-cli@latest cancel
--booking-id "<bookingId>"
--last-name "<lastName>"
--email "<email>"
输出字段包括 bookingId、status、refundAmountUSD、refundEta、cancellationFeeUSD。向用户展示时说明取消结果、退款金额与到账时间,以及是否收取取消费用。
错误处理:404 Not Found 表示预订 ID 不存在,或姓氏/邮箱不匹配;409 Already Cancelled 表示预订已被取消,应告知用户且不要重试;网络错误应告知用户取消未成功,并询问是否重试。
限制:资料未提供其他平台、价格或更多功能说明。