Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-target-binding-cp6.md
鲨鱼辣椒 262831af42
Some checks failed
verify / booking-verify (push) Has been cancelled
完善预订操作台与AI处理结果并接入酒店本地四流程
2026-09-17 10:13:16 +08:00

3.9 KiB
Raw Permalink Blame History

酒店实际预订目标识别 CP6

2026-09-16。本地实现、100项相关测试通过后端整体验证结果见本轮证据。默认真实办理端口仍为Pending未加载服务或操作酒店预订。

本轮交付

OhipBookingTargetReadAdapter复用已有HTTP客户端执行完整搜索、逐目标详情、第二轮完整搜索并比较成员。OhipBookingTargetConverter解析固定Oracle26.3响应。workflow内部HotelBookingTargetLookup保存仅身份用途的结果,不携带旅客资料或原生正文。

场景 请求与实际核对 成功识别的含义
GROUP searchBlocks.blockName=TourCode精确比较返回名称取得唯一type=Block编号详情再次比对编号、酒店、名称 IDENTIFIED / EXACT_BLOCK_NAME,只证明目标身份
FIT taRecordLocatorList=[TourCode]searchType=AnysimilaritySearch=false取完全部页再逐笔核对type=Reservation编号和酒店 IDENTIFIED / TA_SEARCH_FILTER仅有TA筛选关联TA字段读回仍未验证
完整搜索无目标且二次搜索一致 两次有效空集合 NOT_FOUND,不等于授权自动创建
GROUP多个精确目标 不取第一条 AMBIGUOUS不返回部分可用ID
查询/详情失败、分页矛盾、目标变动 保留固定原因码 UNRESOLVED不返回部分可用ID

没有按新日期、新房型、TEN或预订状态过滤旧对象也不按姓名猜FIT关联。不会把接口的tourCode系列团代码、Confirmation编号、本地记录ID或Guest Locator代替上述字段。未静默排除已取消等FIT候选后续办理前仍须独立核对各对象状态是否可修改。

完整性与安全

  • 固定每页50条、最多20页、最多100个详情目标每次外呼前核对剩余总预算覆盖单次HTTP预算数据库事务内不发送请求。
  • 自管offset从0按原始返回行数推进不跟随响应链接。响应offset只作非负整数检查当前/下一页位置语义仍待原生UAT不沿用其他配置接口经验。
  • 官方明确hasMore缺省表示取完null/非布尔拒绝。count必须匹配页内条数totalResults/totalPages存在时跨页保持一致并与结束位置吻合。
  • hasMore=true空页、重复ID、页数上限、提前结束、缺集合结构、未知warning、错酒店/ID等均拒绝。可选数组缺省仅在明确count=0且未声明更多时接受。
  • 详情只接受唯一目标且以Oracle实际行内hotelId验证Edge外层酒店是平台配置回填不能替代内层检查。type=Reservation/Block的内部ID只允许一个idContext缺省可接受显式外部context拒绝。
  • 详情之后第二轮完整搜索检查成员是否改变。这是有限的一致性检查不是Oracle事务快照也不保证核对结束后无人修改实际写入前仍需结合持久执行和最新状态处理。
  • 原生204会由平台转404 ohip_resource_not_found当前保守返回UNRESOLVED不将一般HTTP错误或空文档当作完整零结果。

读取输入来自可信确认范围与构造时配置酒店一致。该普通Java适配器没有Spring注册、Controller或自动调用入口没有凭据文件加载。运行调用方仍须核对库内确认/租约及已冻结环境CP6本身不替代权限控制。

后续接线

识别结果不构造ExistingBooking.complete=true旧住期、全量房格、Note ID、客档、附件范围等尚须实际读取和核验。businessComplete()恒为false不能把目标识别完成投影成整单成功。FIT TA写入/最终读回仍待确认,当前原因码明确保留该限制。

CP6下一步与CP3持久执行/CP5逐次写台账整合时应先冻结已识别ID再取得完整旧范围并对逐项修改和最终查询做业务核验。新房量/附件平台发布、测试配置/权限和原生多房/分页验证继续保留。