机票退票 + 改签 业务流程图

基于 OpenAPI V3 升级说明 · 红色标注为本次新增/调整环节

正常流程节点
新增/调整节点
判断分支
结束/成功

退票流程

用户发起退票
选择乘客 / 航段
新增
refund-change-availability 退改可用性校验
POST /openapi/v3/flight/orders/refund-change-availability
actionCode=REFUND · 按乘客判断可退/可废及不可操作原因
可退 / 可废?
读取乘客 refundable / voidable 字段
否 → 展示 nonRefundableReason,结束 是 ↓
新增
refund-money-search 金额试算
POST /openapi/v3/flight/orders/{id}/refund-money-search
展示退票费用明细
可退金额 · 已使用金额 · 退票费 · 服务费 · 实退金额
用户确认退票?
否 → 结束 是 ↓
refund 提交退票申请
POST /openapi/v3/flight/orders/{id}/refund
参数:passengerIds + segmentIds
confirmation 确认退票
POST /openapi/v3/flight/orders/{id}/confirmation
等待供应商回调 / 主动查询
订单状态回调 · 幂等处理
退票完成
更新订单状态 · 退款到账
本次调整要点
① 新增 refund-change-availability 前置校验,不可退/不可废订单直接拦截并展示原因
② 新增 refund-money-search 试算环节,查费用不再直接提交申请
③ 试算返回 usedAmount(已使用)和 refundPrice(实退)分开展示
④ 正式提交才调 refund,再调 confirmation 确认

改签流程(推荐模式 solutionId)

用户发起改签
选择乘客 / 航段 / 新日期
新增
refund-change-availability 退改可用性校验
POST /openapi/v3/flight/orders/refund-change-availability
actionCode=CHANGE · 按乘客判断可改及不可操作原因
可改签?
读取乘客 changeable 字段 · 可用 askChangeDetails 限制可选日期范围
否 → 展示 nonChangeableReason,结束 是 ↓
change/search 改签搜索
POST /openapi/v3/flight/orders/{id}/change/search
返回航班方案列表(含 solutionId)
用户选择新航班 / 舱位
记录选中方案的 solutionId
展示改签费用明细
票价差额 · 改签费 · 服务费 · 应付总额
用户确认改签?
否 → 结束 是 ↓
调整
change 提交改签(传 solutionId)
POST /openapi/v3/flight/orders/{id}/change
参数:solutionId(推荐),不再用 segmentList
改签费用 = 0 ?
是(0元)
新增
free-payment-confirmation
/orders/{id}/change/free-payment-confirmation
否(有差价)
进入待支付
用户支付 → payment 接口
等待供应商回调 / 主动查询
改签状态回调 · 幂等处理
改签完成
更新订单状态 · 新票号生效
本次调整要点
① 新增 refund-change-availability 前置校验,不可改订单直接拦截并展示原因
② 改签提交从 segmentList 改为传 solutionId(推荐模式)
③ 0元改签不再走 payment 传 amount=0,改用独立的 free-payment-confirmation
④ 有差价改签仍走 payment 接口,流程不变

涉及的 OpenAPI V3 接口清单

业务环节 方法 接口路径 状态
退改可用性校验(退票/改签共用) POST /openapi/v3/flight/orders/refund-change-availability 新增
退票金额试算 POST /openapi/v3/flight/orders/{id}/refund-money-search 新增
退票提交 POST /openapi/v3/flight/orders/{id}/refund 已有
退票确认 POST /openapi/v3/flight/orders/{id}/confirmation 已有
改签搜索 POST /openapi/v3/flight/orders/{id}/change/search 已有
改签提交 POST /openapi/v3/flight/orders/{id}/change 参数调整
改签免支付确认 POST /openapi/v3/flight/orders/{id}/change/free-payment-confirmation 新增
改签支付(有差价) POST /openapi/v3/flight/orders/{id}/payment 已有