矩阵自测 ↔ 上报授权台

数据流、必接接口、排障,以及与「升级云凭证」「实例 / 审计」的关系。与商城侧 oauth_platform_api_matrix_test.php(建议路径 docs/tools/public/,以实际仓库为准)及《CRMEB 升级功能·域名与接口·上报授权平台对接研究》配套阅读。

一、数据到底谁发给谁

环节说明
浏览器只把表单 POST 到安装 CRMEB 的那台服务器上的自测页(例如 /oauth_platform_api_matrix_test.php)。
本机 PHP自测脚本用 cURL 出站,访问表单里填的 oauth_base(如 https://oauth.hubopenai.com/)下的各子路径。
上报授权台在公网/内网监听这些 URL,自行决定是否写库、是否在「升级云凭证」「实例」「审计」等菜单出现记录。

重要:自测页不会在浏览器里直接 fetch 到 oauth;若 CRMEB 服务器不能访问授权台(防火墙、DNS、证书),则没有任何 HTTP 会到达授权台。请先在自测页点「只做出站预检」;若预检 cURL 报错,问题在本机 / 网络 / SSL,不在授权台业务逻辑。矩阵报告在 HTTP=0 时应展示 cURL 错误原文便于排障。

二、授权台侧建议至少接通的端点(与本中枢实现对照)

下列路径均相对 oauth_base 根;带或不带 index.php 由网关/路由统一,建议两种都能访问或做 301/别名。

  1. POST …/index.php/admin/server.upgrade_api/updatewebinfo(及 .html 别名)— 表单 application/x-www-form-urlencoded,字段至少含 hostiphttpsversionversion_codewebname(可选)、token 等。本中枢:已实现;响应 JSON code:200datareceivedmatched_instance_idhint 等。写库:匹配实例则写心跳;未匹配可自动开通实例或写审计 crmeb.updatewebinfo_unmatched
  2. 其余 server.upgrade_api/*now_versionget_version_listisauthget_now_versionnew_version_countset_upgrade_infoversion_info 等)— 本中枢:已实现;失败时自测矩阵应标为不通过。
  3. 静态 /public/uploads/upgrade/*.zip — 真实包须 200/HEAD;虚构名可 404。本中枢:由「CRMEB 升级包」登记 + 物理文件决定。
  4. 可选 /api/open/*X-APP-IDSystem-VersionAuth-Host 等头)— 响应 status:200 + data本中枢:已实现;可用环境变量或系统设置关闭 / 限制 AppId。
  5. 新版升级云 /crmeb-upgrade/api/*(签名 + Access-Token)— 本中枢:已实现兼容层;与上列路径不同协议

若反代 / WAF / 整站跳转登录:请为 server.upgrade_api/api/open/crmeb-upgrade/api/v1 等放行,避免 200+HTML 登录页冒充 JSON。

三、「升级云凭证」与各接口的关系(本中枢语义)

概念说明
updatewebinfo 等 A 路径实例心跳审计(未匹配 / 自动开通等)。可选(系统设置默认开):再向「升级云凭证」表 upsert 一条探测行(固定 __updatewebinfo_probe__disabled,非商城 .version 凭证)。
矩阵自测「全部测试」会按矩阵配置发 HTTP;Open API 行可能带公版 X-APP-IDupdatewebinfo 以 POST 体为准。真实 App 行:须 /crmeb-upgrade/api/* 签名校验通过且开启自动开通(或手动预置)。探测行:仅当开启上述开关且 updatewebinfo 解析出 host。
「升级云凭证」表主路径服务 /crmeb-upgrade:签名校验通过后按 app_id + host(归一化) 自动建档(可关);列含站点、最近版本、最近活跃、来源 IP、匹配实例 UUID、来源 manual|auto_login|updatewebinfo 等。与 updatewebinfo 的实例模型无强制外键,但可通过「匹配实例」列与实例列表对照。
「测完就要有数据」的期望若要看实例 / 心跳:须 updatewebinfo 匹配或自动开通、或开放 API 注册。若只看升级云凭证:可开探测行看 host;真实凭证仍须 /crmeb-upgrade/api/login 等且签名正确。

四、点「全部测试」后管理后台仍空:两类常见原因

  1. 请求没到授权台:矩阵里 HTTP=0、全 404、或出站预检失败。在 CRMEB 机执行 curl -v {oauth_base},查 PHP error_log;在授权台查 access_log 是否有来自商城公网 IP 的请求。
  2. 到了但未写你正在看的表:例如只通了 updatewebinfo 却在找「升级云凭证」;或只打了 Open API 却未注册实例。对照第三节「谁写哪张表」切换菜单:接入流水 / 实例 / 审计 / 升级云凭证

五、工单式核对清单(可贴给研发)

维护时请与商城侧矩阵脚本、对接研究文档同步更新要点。