Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-parameter-simulation-closure-20260918.md
鲨鱼辣椒 bc71026246
Some checks failed
verify / booking-verify (push) Has been cancelled
完善酒店接口确认字段与回读核对并同步工作台最新改动
2026-09-18 15:38:52 +08:00

8.6 KiB
Raw Permalink Blame History

参数接口与独立模拟验收交付

历史验收记录下文为暂停TA之前的实现。当前无TA代码与新一轮47参数/3故障已完成无TA交付为准;平台接口连接沙箱,现有环境更新由用户执行。

日期2026-09-18接续 9 月 17 日无人值守要求。上传 XML/EML、操作已有任务和更新现有服务仍由用户完成。本轮只读查证公共资料、修改本地代码并运行独立合成参数测试没有创建子智能体。

参数与接口现在到哪一层

逐参数对照表已更新到实际发布状态,修正 blockProfileType 角色字段,并去除过期“接口尚未发布”结论。公共目录有 184 个操作;消费端登记的 18 个非附件操作,其方法、路由、查询参数白名单全部匹配。

业务 参数及接口接入 真实环境边界
GROUP 新建 Block Name/TA、日期、Account/Contact、Rate、含早、GTT/TA/GC/BTQR/TEN/THB → postBlock/getBlock;完整逐晚房量 → putBlockAllocation/getBlockRoomRateGrid 需真实酒店代码、档案和房量控制;本轮未启用
GROUP 修改 先按 Tour 查当前 Block只更新日期/TA/完整房量,保留 Rate、状态、Account 等 Initial/Actual 与人数分列独立;改期真实行为待酒店验收
FIT 新建 姓名/CN → postProfile/getProfile;共享 Guest、Agent、日期/房型房数、Rate、Fixed Rate、Adult/GC/BTQR、Note → postReservation/getReservation TA 正式写读字段未获证,正式入口保持阻断
FIT 修改 searchHotelReservations/getReservation/putReservation;同类型有界新增房型复用实际 Guest 和创建接口,备注按历史证据定位 同一 TA 缺口;不能把模拟成功称为真实 Oracle 成功
源 Allotment 取消 查 Block、关联预订、下一状态 → putBlockStatus → 精确状态回查 酒店须提供 Block 原因和取消状态;关联客人/PM 或不完整查询继续阻止
FIT→GROUP 完整检查最终 GROUP 参数后,逐笔 postCancelReservation,查实取消,再复用 GROUP 新建 正式编排已接;仍需真实环境配置/验收
GROUP→FIT 同次确认内取消 Block 后创建 FIT 的编排和模拟链已跑通 因真实 FIT TA 契约未齐,正式入口在取消原团之前阻断

Account/Contact 和代码查询所需的 getProfiles/getProfileRelationships/getRoomTypes/getRatePlansByHotel/getMarketCodes/getSourceCodes/getGuaranteeCodes/getPaymentMethodsLOV 已发布;取消配置 getCancellationCodes/getBlockCancellationReasons/getBlockStatusCodesgetOperaSettings 也已发布。本应用业务运行使用受信的酒店映射,不会每次按名字猜档案或把配置查询自动变成权限授予。这里没有新增让平台同事重复封装的清单。

测试参数已补齐

模拟目录 catalog.example.json 只含合成姓名和 ID。房型/Rate 直接使用冻结目录的 10 个房型、21 个 Rate Code没有复制一套选价逻辑。GRPA3 含早/BUALUANG、GRPA4 含早/LEELA 保持原已确认规则;餐厅不另造 Oracle 写入字段。

  • 两个 Account 各有 Agent、关联 Contact 和同名 Company 干扰项。GROUP 必须是 Agent/AgentContactFIT 必须是 TravelAgent 关联到 Agent跨账户 Contact、Company 冒充 Agent、无效 Guest ID 会被模拟酒店拒绝。
  • Market、Source、Reservation Type、Payment、Currency、Room Type、Rate Code 都在模拟酒店真正校验,错误请求不能改变已存对象。之前只有 Java 展示目录,现在不再仅靠显示名称判断接通。
  • 新增独立模拟取消原因 SYN-FIT-CXLSYN-BLOCK-CXL,状态 TEN/ACT/SYN-CANCEL、下一状态规则、occupancy_split_enabled=false。它们不是目标酒店真实值,不能复制到正式配置。
  • Initial/Actual 两份网格独立保存,查询按 roomAllocationCriteria 精确筛选。未启用人数分列时总量使用 onePersonActual 不代表必须拆成人数列。开启分列的原生模拟校验独立覆盖,应用层仍要求明确完整四列,不能猜分配。
  • 模拟 TA 专用属性 __localSimulationTaRecordLocator 明确保留为测试协议;正式 Adapter 没有采用这个字段。
  • 已取消历史仍出现在模拟搜索里,应用必须根据精确详情过滤;不能靠模拟酒店偷偷隐藏旧记录让测试通过。

隔离参数验收不读取 Excel也不上传 XML/EML。旧纯协议单元测试仍可不加载完整目录完整接口验收必须以 --catalog 启用严格参数目录,缺失新 simulation 配置就拒绝启动。现有私有目录/运行服务没有被替换。

完整测试发现并修复的问题

  1. GROUP UPDATE 残留“来源附件必须非空”的条件已去除,无附件也能按确认参数更新。邮件原件的接收/查看和历史附件审计不受影响。
  2. 本地状态策略把 allowPickup 同时当作人数分列开关,导致 Actual 更新准备失败。现在独立读取分列配置Initial/Actual 只决定网格类别。
  3. 模拟网格查询忽略类别Actual 查询混入 Initial 旧格。现在按请求返回真实对应类别,另一类不会被清零或改标签。
  4. 同类型 FIT 的内层查询重新把已取消历史纳入目标;现在沿用外层精确识别结果,新增房型后的最终集合核验也排除详情已确认取消的旧记录。仍保留原确认、酒店、时间和租约校验。
  5. GROUP→FIT 首次预检在原目标/检查点尚未由 Worker 保存时冻结 Guest 计划,触发 GUEST_CONTEXT_CHANGED。现在首次预检只返回准备结果,持久检查点存在后才冻结客档计划,没有放松仓库一致性校验。

保留既定拒绝边界:两笔旧 FIT 不能直接压成总共一间房并暗中取消一笔;本次把它列为预期拒绝并验证零写入。已支持的同住期、同 Guest、总数足以承接原编号的房型合并及有界新增房型继续运行。加床及其他未授权业务未扩展。

FIT TA 官方查证结果

这轮检查了固定官方提交 4bd129b455bc5e3ab0f900ac47983611e58659b4全部 45 个 Property v1 模块,不只查 RSV。BLK 文件下载重试失败后,使用已缓存文件并核实 Git blob 摘要与该提交完全一致。

  • BLK / BLK Async 有 Block 的 reservationDetails.taRecordLocator
  • RSVtaRecordLocatorList 是搜索条件;仍未找到 Reservation 创建/修改的相应属性。
  • 新发现 FOF 佣金模块 commissionDetailType.recordLocator 描述为 TA Record locator。反向追踪到佣金查询/重算返回,未找到将其作为 Reservation TA 写入参数的接口。它不能替代 getReservation 的正式字段契约。

因此剩余准确缺口仍是:FIT TA 的写入 JSON Pointer、精确读回 Pointer、所需 fetchInstructions/酒店控制及版本依据。不是再缺一个已知待封装路径。给 Oracle/接口负责人的具体问题沿用上一份交付,不重复要求平台同事搜索同一套公开文档。本轮未向外部发送消息。

复现与运行边界

运行器:check_parameters.py。它新建专属目录、临时 PostgreSQL、随机 loopback 端口的 Go Edge 与模拟酒店、独立 H2完成或失败后停止自己创建的进程。不会启动工作台、上传文件、访问现有 5178/8082、使用真实凭证或初始化用户的测试数据。

命令及组件限制见模拟工具说明。这是应用参数与本地 HTTP/持久日志验证;取消入口在一次性 Go 副本中使用已有测试夹具,不是拿当前线上平台或真实 Oracle 写入做验收。公开目录匹配、隔离请求成功、实际应用授权、真实酒店接收是不同的证据。

最终数量、日志、失败定位与清理记录见本轮证据。用户之后仍负责文件上传和真实环境操作;本轮不需要用户补上传文件才能完成上述测试。