# HTTP接口全量真实模拟验收(2026-09-14) 更新:2026-09-14T06:36:14.050Z。状态:**Webhook真实成功及异常重试已通过;三个参数边界修复正在回归和发布,最终收尾未完成。** ## 环境与交付 测试环境100.93.204.60:12026;初始版本f0e843436c715010d3eaec72a5e0c81816a6e5bd,当前部署及实际Git远端为92b112cc6e29a14d842e040a9d469fd717a95f96。仅测试环境,无预生产操作。现有metrics、发布工具、其他文档草稿保留,提交只含本轮代码/工具及文档精确追加。 ## 已执行 共记录140项HTTP请求/业务断言,含失败原记录和测试前置问题,不将140当全部通过数。覆盖鉴权、nonce、过期/撤销、IP、开关、QPS、正文及查询边界、并发幂等、重复客户编号、三网、长短信、UTF8转义、上行筛选/分页/投影、歧义隔离、同企业跨应用/跨企业隔离和Webhook URL校验。 - 9条真实业务短信:8送达、1失败;成功10计费单位,净扣3250内部金额单位,余额1848101→1844851。失败短信在2条LGST模拟通道尝试后退款;冻结/解冻及最终扣退账相符。12个实际CMPP Submit报文(含长短信分段和失败短信的备用模拟路由),未连接真实运营商。 - 6条真实CMPP上行:共享接入号3条ambiguous正确隐藏;独立接入号3条matched,可分页/查询/筛选,详情无通道/供应商/内部匹配字段,真实下游ACK后delivered。 - 9条HTTP发送待办dispatched、10条Gateway待办published;未直接修改Redis、余额或历史短信。 - 本地工作区API73套783项/构建通过;精确发布候选73套782项、类型、格式、lint通过。数量差来自其他会话受保护的metrics测试,不夹带。无前端/Gateway修改,未重复无关门禁。 ## 真实问题 | 编号 | 结果 | 状态 | |---|---|---| | HTTP-FULL-B01 | Node all=true lookup旧回调格式导致Invalid IP address: undefined,初始11个Webhook在2次后失败且收件端无请求 | 最小修复已提交/推送/标准部署;保留SSRF检查,真实本机连接回归通过;公网业务成功仍受下述DNS路径阻塞 | | HTTP-FULL-B02 | https://[::1]/hook配置返回500,旧配置未改变;URL.hostname含方括号进入DNS lookup | 待修,未绕过私网保护 | | HTTP-FULL-B03 | 2026-02-30被Date自动换算,查询返回200 | 待修:应严格验证日历日期 | | HTTP-FULL-B04 | 畸形JSON/非对象JSON在全局body-parser阶段返回普通400,无公开problem code/X-Request-Id | 待修:统一入口错误契约 | 未知channelId字段的400预期与现有未禁止附加字段的契约不一致,send关闭时实际403且无发送,登记为契约观察而非确认缺陷。首条正常请求422是缺少批准模板的测试前置问题;首个到期凭据200受本机/服务器约4秒时差影响,超过服务器期限后重测401。原结果全部保留。 ## Webhook网络阻塞与待完成 实际12个本轮回调事件(9回执、3上行)。修复后仅重试本轮11个旧失败事件,首次2秒超时;单事件10秒诊断随后报TLS建连前断开。测试机DNS把临时Cloudflare地址解析为198.18.1.78,备用webhook.site解析为198.18.1.79,两者普通HTTPS均约5秒后TLS断开。本机同域名正常200;测试机只读探针固定到本机解析的104.16.231.132/104.16.230.132且保留原TLS主机校验,分别2232/313ms返回200。不能把网络失败继续归因于已修复lookup格式,也不能宣称回调业务验收通过。 已提出待确认方案:只在测试机/etc/hosts临时加入104.16.230.132与本轮唯一域名映射,30分钟独立自动移除,测试后精确移除;**目前未授权、未执行**。默认网关、系统DNS及OpenWrt保持不变。备用WebHook.site一小时过期收件端已创建后删除(204),未收到业务事件。服务操作参考[官方Token文档](https://docs.webhook.site/api/tokens.html)。 待验证:真实收件HMAC/eventId、200/204 ACK、400终止、429/503/超时自动退避/上限、302不跟随、人工重试及完成后的专用测试设施停用。全共享环境的DB/Redis停机及进程崩溃注入未执行;不以隔离测试代替。暂保留本轮应用/凭据和模拟接收进程用于继续验收,未删除任何历史记录。 ## 标准发布与容量 计划20260914T060412-92b112cc6e29-35305dbd;preflight、prepare、deploy含verify通过,verificationWarnings为空。独立恢复点 `/var/backups/cmpp-platform/20260914T060412-92b112cc6e29-35305dbd-attempt-1789366449273005177`,PG/Redis/配置/应用归档摘要与可读性通过,未做恢复演练。候选准备40.3秒、备份35.0秒、停止2.8秒、启动5.5秒、验证4.1秒;本地候选测试146.085秒(依赖安装另计),业务验收及网络/等待时间不算停机。 测试机无独立数据盘,当前应用、发布目录、备份均落/dev/sda2。可用22,837,911,552→21,341,405,184字节;发布目录新增994,070,528字节,备份新增496,861,184字节,当前应用新增36,864字节。当前版本92b112c,上一有效f0e8434及本次previous-api-dist/previous-api-node_modules/previous-source在本次/前次发布目录保留;逐目录清单见capacity-before/after.json。缓存/日志独立盘点,未擅自清理历史资产,容量治理未完成。 ## 证据 本机 `%TEMP%/cmpp-http-full-20260914/`:results.json、cases.md、baseline.json、pre-fix-reconcile.json、negative-reconcile.json、mo-audit.json、remote-https.json、fallback-network.json、public-ip-probe.json、capacity-before/after.json、lookup-tests.log/api-full.log/api-build.log。发布证据 `.local-data/releases/20260914T060412-92b112cc6e29-35305dbd/`。不保存凭据、Cookie、回调密钥;对话工具中的受控密码提示不写入Git。 ## 后续进展(2026-09-14T07:11:33.208Z) 用户已授权并执行唯一域名hosts临时映射,精确移除兜底timer已启用;上文网络阻塞/未授权描述是原阶段记录,现已解除。12个本轮历史失败回调真实送达,200/204、400/302、429/503/超时、持续503上限,以及人工重试成功/拒绝已成功重试/跨应用404均通过。HMAC、eventId、原始体摘要和至少60秒退避一致。B02/B03/B04最小修复及55项定向回归已通过,等待精确候选全量门禁与测试环境复验。