跳到正文
← 使用教程

SPACE ID 解析不到名称:区分 HTTP、业务码与逐链错误

链小知 · 进阶 · 核验 · 依官方文档整理

用现有解析响应定位空地址、错误链参数和批量局部失败,避免 HTTP 200 或顶层 code=0 被误判为全部成功。

开始前准备

  • 准备完整名称、目标网络及已有脱敏请求/响应;只有官方样本时,可按样本整理检查表,但不能当实时链上结果。
  • 本教程针对名称 API;Payment ID 端点和编号另算,不需要注册或连接钱包。

1. 按问题选择方向和端点

名称找地址用 GET https://nameapi.space.id/getAddress?domain=<完整名称>;地址找主名称用 /getName?chainid=<编号>&address=<公开地址>。先在现有请求中确认方向、完整后缀及参数编码,再读取对应响应,别把逆查空名称解释成正向收款地址必然不存在。

检查结果:已标记正向或逆向,且保留原始请求 URL 与响应。

2. 分开传输成功与业务结果

先记录 HTTP 状态及是否取得 JSON,再检查业务 code:0、1、-1 分别对应找到、未找到、错误。没有有效响应或业务错误时单列原因;缺少 address 不填零地址,也不从 HTTP 200 直接得出可收款。

检查结果:传输失败、无记录、业务错误和有效结果是四种状态。

3. 读取逆查的实际数据层级

getName 官方 JSON 样本将名称放在 data.name,并带 data.chainID/errMsg。对照手中响应原结构取值,不能仅按字段说明假定 name 总在顶层;遇到层级不同,保存原字段并检查实际接口版本,不盲目改成空字符串。

检查结果:解析路径与原 JSON 一致,没有把缺字段判作无主名称。

4. 核对编号体系和后缀用途

确认 .bnb 为 56、.arb 为 42161。该 API 附录的 .sol=900、.lens=903、.crypto=904 是接口定义,不拿 Polygon 的 137 替换它们;Payment ID 的 0–5 chainId 又是另一套。若名称为 .four,先识别其代币 CA 用途,不将返回值按个人收款地址处理。

检查结果:编号有产品出处;代币合约解析与钱包收款已分开。

5. 拆开批量查询的每一个结果

对已有 /getDomainNamesByChainIdList?chainlist=...&address=... 响应逐项保存请求编号、返回 chainID、name 与 errMsg。顶层 code=0 的官方样本同时含不支持链、找不到名称;有错误项的 chainID 可为 0,不能用它覆盖原请求编号或按空名称直接计为正常未设置。

检查结果:各链分别判成功/无记录/不支持或错误,保留请求与返回的对应证据。

6. 形成修复条件再交回调用方

输出端点、方向、参数体系、原响应层级、业务码和逐项失败原因。如果调用方改用 core,另对照项目锁定版本和 RPC 超时;getAddress/getDomainName 的函数返回不是 HTTP API JSON,不能复用同一个响应解析器。

检查结果:修复建议能明确指出参数、数据层或错误分类,不声称已修复或实际到账。

怎样确认完成

  • 完成可复查的请求/响应分类表;空记录与错误分别保留。
  • 费用、实际时效与未知接口版本独立标注;不把文档核验标为 API 实测。

常见错误与边界

  • 官方页面示例并非本次实测响应,不能用其样本地址推断当前用户状态。
  • API 能解析某后缀不证明目标钱包支持同一名称或支付网络。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据