8.8 KiB
ARR 搜索与详情接口首次只读联调
2026-09-16。用户在上一轮明确提出“下一步在 OHIPSB02 隔离只读联调”之后回复“继续”,本轮据此执行。
范围固定为已知测试酒店 OHIPSB02、到店日 2026-09-15、ARR 独立应用现有的两个预订读取接口。
没有启用新的子智能体,没有改变应用权限、运行配置、来源适配、Oracle 预订或 Finance/Booking/OSS 数据。
已完成的取数
UTC 07:37:44–07:49:09,通过实际 Edge REST 完成158个请求,全部 HTTP200 且 operation/hotel/data 封装校验通过。 包括搜索/对照/收尾重查17次,以及139笔完整详情和2次单独 fetch 试验。没有网络重试或接口错误;两个 ETA 查询 在200载荷中返回零记录警告,已计为语义差异,没有当作有效空日报。
基线搜索使用直接 JSON 请求体:
{
"arrivalStartDate": "2026-09-15",
"arrivalEndDate": "2026-09-15",
"limit": 100,
"offset": 0,
"orderBy": ["ConfirmationNo"],
"sortOrder": ["Asc"]
}
第二页请求 offset100。两页100+39共139条,内部 Reservation ID 无重复;所有139笔详情均验证了对应身份、 酒店和到店日。基线状态为100 NoShow、31 Cancelled、5 InHouse、1 Reserved、2 CheckedOut。 这是 API 日期候选集合,不是已经认定的报告最终纳入集合。
详情请求使用重复 query 键传 Reservation/Comments/Traces/DailySummary/RateInfoDetails/Packages/InventoryItems/Shares。
这组参数确实取得备注、Trace、包价及每日费率等块,不能用搜索摘要替代整笔详情。
收尾重新获取同样两页:139个 ID 与顺序相同,139条搜索记录完整 JSON 均未变化;搜索与详情的状态及 lastModifyDateTime 也未发现差异。这支持本次采集稳定,不证明服务提供原子快照或未来永远稳定。
必须更新的接口认识
| 项目 | 本次观测 | 接入含义 |
|---|---|---|
| 分页 offset | 请求0/limit2返回offset2;请求2返回4。limit100的末页只有39条,仍返回offset200 | 本次返回值表现为下一页起点/按请求limit前进,不能作为当前页起点或累计实际条数。结束以hasMore及计数/身份共同核对 |
| 状态 | 所有请求枚举与省略状态得到相同完整139个有序ID;单独CheckedOut得到准确2条子集 | 状态过滤可用;结果一致仅证明本次查询,不证明报表ALL就是所有状态 |
| 分房 | 只传任一true都得到基线首100条/total139;成对设置true/false分别得到74已分房、65未分房 | 两组无交集、并集等于完整基线且每行房号状态吻合。需要单侧筛选时必须显式测试两个值;ALL基线省略两者已覆盖二组 |
| ETA时区字符串 | 带+07:00的00:00至23:59:00/23:59:59都返回0,warning GEN10001 |
HTTP200不是语义验收,不能提交为空日 |
| ETA本地字符串 | 无时区2026-09-15T00:00:00至23:59:59及服务返回的空格格式均返回相同12个ID |
两种是诊断结果;无时区/空格格式不作为通过严格RFC3339的生产示例。基线90条缺ETA、37条仅日期,均未纳入此过滤结果 |
| 备注编码 | 实际GEN备注为comment.type=GEN、notificationLocation=RESERVATION |
与固定官方示例的RESERVATION/GEN方向相反;不能按示例硬编码。正式酒店的Resv.-GEN/XML CAS-GENERAL对应仍待同源证明 |
| 有效价 | 139详情/396费率项均无effectiveRate |
字段存在于规范不等于当前环境会返回;不能用该路径直接完成EFFECTIVE_RATE_AMOUNT映射 |
旧版 Oracle res_detail说明将 Reservations 的 All 定义在公司/旅行社/来源/团体/Block关联筛选中,取消另有 Include 选项。因此把这个UI标签直接理解为 “所有状态”依据不足。该文档是旧版操作说明,只作概念区分;不据此推定当前 Cloud 的选项默认值或擅自排除取消/NoShow。 当前 Cloud 报表说明 也未提供足以确定全部状态纳入规则的细节。用户已有要求保持不变。
备注、Trace 与字段可用性
139笔均有唯一 Confirmation、唯一 primary guest及 Primary 姓名;成人/儿童、到离日期、房型、房数、base金额均存在。 这些是结构/数据可用性检查,尚不是报告显示名、公司角色、价格或源行粒度等价证明。
- 30笔有备注,共32条:GEN/RESERVATION 30条(27外部、3内部),GENERAL/RESERVATION 1条,RESERVATION/RESERVATION 1条。
- 7笔有Trace,共12条。139笔逐条核对,备注数与Trace数均吻合搜索对应的indicator count,没有“有标记但详情为空”的记录。
- 当前房号74笔;费率段房号73笔。搜索房号与详情当前房号本次一致,仍不能证明到店历史房号口径。
- 24笔有公司名称结构,但26个顶层关联对象的角色全为Group;本样本没有Company/TravelAgent/Source角色的映射证据。
- 22笔有packageCode,26笔有Block ID;预订详情仍没有Block Code,若要保留这列,候选增补为getBlock。
- RATE_CODE存在115笔;缺失24笔为16 NoShow、8 Cancelled。不能填造费率或预先删除这些源行让处理器通过。
- 94笔含多个roomRates段,必须按日期确定选择,不能取数组第一项。
在一笔实际有包价的样本上,分别只取 RateInfoDetails、只取 DailySummary,仍没有 effectiveRate;
前者只返回有限基本字段,后者有base和total,不能认为仅改为单一fetch就补齐了有效价。
按试验用的 start≤arrival≤end 选择日费率,每笔恰有一个候选;搜索rateAmount与base在9笔不同,base与total在7笔不同。
这直接表明不能随意取其中一个当XML有效价。该选段条件仍是诊断规则,不是已经批准的生产边界。
原件、检查与请求定位
私有原件:/Users/chillishark/Downloads/arr-api-live-20260916-02rpv6tx/,目录0700、文件0600。
源集合包含每次请求(不含鉴权头)、原始响应字节、摘要/状态/request IDs,完整详情索引和聚合分析。
archive-integrity.json 固定477个已存在文件的大小与SHA-256。所有请求均核对预期应用凭据元数据;密钥只在进程内使用。
没有打印客人、备注正文、公司名、房号、金额或预订ID。
| 请求 | Oracle/Edge request ID |
|---|---|
| 首次日期搜索 | d38ebc55-e8c4-4212-ac4b-2c3d2f3a7262 |
| 100行基线首页/末页 | 8d509070-eddc-48d6-a74f-2def48e697f8 / 539eefdd-306e-4b85-96ff-af62ce693dd6 |
| 显式已退房 | f2a8b92c-f398-45ae-86f4-e9eec9ef2a62 |
| 成对分房条件 | b5b70deb-0655-4e53-a897-e2e1cb71dcf2 / 95d17de9-f66f-455e-9957-ea822e644896 |
| 带时区ETA / 本地T格式 | b5cadee8-6652-4638-90a3-43866f3e7ca1 / 6a0e03a5-785b-4fff-85b0-72e90d664484 |
| RateInfoDetails / DailySummary单独读取 | 5c424178-8500-492d-8e00-4a9715674c52 / 3e836325-4d29-49d2-98f6-014e0a6daa7f |
| 收尾两页重查 | 0bc97801-4003-4910-96f2-96cf5852dd33 / 707b813d-9f01-49d4-b51e-a7f1dbe274e3 |
隐私最小化的聚合结果可在仓库检查。
研究脚本保存在 .planning/arr-api-live-probe-20260916/,没有接入生产Web/worker。
本地stub验证了允许的方法/路径、body/query编码、鉴权注入、响应酒店/operation拒绝、路径约束、禁重定向和文件权限。
实际业务调用由上述隔离程序执行,未通过对话转发原始业务资料。
一次针对“InHouse且有PACKAGEITEM标记”的本地样本选择没有候选,断言在网络请求前停止;随后改选已有包价详情, 完成两次定向fetch。这是测试样本调整,不是平台失败。所有在线调用没有重试;没有扩大日期范围或修改上游测试数据。
当前可推进与未完成项
两个现有接口的单日搜索→全详情→私有保存→身份/数量复核已跑通;这不是原生ARR XML导出或财务流程验收。 手工XML属于hotel57106,当前API属于OHIPSB02,不能拿139与72直接判断接口多取/漏取。
下一步围绕实际剩余项收敛接入契约:报告纳入范围与空ETA、有效价字段/计算口径、公司角色、备注/Trace及去重顺序。 Block读取仅按字段需要讨论扩展,不能因试验发现缺口就自行放大授权。已有原件足以继续本地分析,不必反复下载整批。 获得同源报告证据并选定可重放适配后,再编写生产采集/适配和独立验证;不把这批测试数据提交Finance。
后续本地分析已解释价格差异并找到Oracle指定日期的有效价接口,见语义追查。 本页保留首次158请求的事实,后续没有重复下载整批或改变测试数据。