产品使用文档与部署教程,持续更新中
本文面向外部开发者 / 对接方:用你的账号在「用户中心 → 域名 API」自助开通后,拿到 appid 与密钥,即可调用本套接口查询、注册、管理域名。域名注册在平台方的星途(TNAME)账号下,随时可申请转出到自己的星途账号。
签名与鉴权算法与平台的「代理开放 API」完全一致;如果你已经对接过代理 API,只要换 appid/接口前缀即可。
| 项目 | 值 |
|---|---|
| 接口前缀 | https://你的平台域名/api/open/domain(本文以 {base} 代称) |
| 请求方式 | POST(表单或 JSON body 均可),字符编码 UTF-8 |
| 公共参数 | appid · timestamp(秒,±300 秒)· nonce(随机串,300 秒内不可重复)· sign |
| 响应包 | {"code":0,"msg":"ok","data":{…}};code=0 成功,其余见错误码 |
| 开通条件 | 「用户中心 → 域名 API」自助开通(门槛:累计充值 ≥ 平台配置值,默认 ¥50;代理按其等级享折扣) |
| 计费 | 余额按量扣费(即时注册)或单笔易支付(返回收银台链接) |
sign;k1=v1&k2=v2&…(值为空的不参与拼接);md5 小写即为 sign。// PHP 示例
$p = [
'appid' => 'DAxxxxxxxxxxxx',
'domain' => 'example.com',
'timestamp' => time(),
'nonce' => bin2hex(random_bytes(6)),
];
ksort($p);
$str = '';
foreach ($p as $k => $v) {
if ('sign' !== $k && '' !== (string) $v) { $str .= $k . '=' . $v . '&'; }
}
$p['sign'] = md5(rtrim($str, '&') . '你的secret');
示例(便于核对):参数 appid=DAxxxx&domain=abc.com&nonce=abc×tamp=1700000000 时,sign = md5("appid=DAxxxx&domain=abc.com&nonce=abc×tamp=1700000000" + secret)。
常见 401 原因:签名串里参数名没有排序、把空值也拼进去了、secret 拼在了 md5 里而不是 md5 外、时间戳偏差超过 300 秒、nonce 重复使用。
| code | 含义 | 处理建议 |
|---|---|---|
| 0 | 成功 | 取 data |
| 400 | 参数错误 | 看 msg 修正参数 |
| 401 | 未授权(appid/签名/IP 白名单/时间戳/nonce 任一不合格) | 对照上面的签名算法排查 |
| 402 | 余额不足 | 先充值(用户中心 → 财务中心)或改用易支付 |
| 403 | 未开通 / 已停用 / 超额(限额用尽或域名转出锁定) | 看 msg |
| 404 | 不存在(订单/域名/记录) | 核对单号或域名归属 |
| 409 | 冲突(同域名已有进行中的订单 / 转出重复申请) | 用 order/query 查原单,避免重复提交 |
| 422 | 业务拒绝(域名已被注册、黑名单、上游拒绝) | 换域名;这是可预期的业务结果 |
| 429 | 频率超限 | 降速;限流按 appid 计(默认 120 次/分、下单 6 次/分与 20 单/日) |
| 500 | 服务端或上游异常 | 稍后重试;用 order/query 确认是否已下单,避免重复 |
所有成功响应中 data.balance 为你的当前可用余额(方便对账)。
register 按售价扣费;业务类失败自动退回余额并记流水,网络类异常会保留扣款转人工处理(可用 order/query 跟踪)。| 接口 | 说明 | 关键参数 |
|---|---|---|
POST {base}/account | 账号状态:开通进度 / 余额 / 折扣 / 额度 | — |
POST {base}/check | 批量查可注册与售价(≤5 个/次,结果缓存 60 秒) | domains(逗号分隔)或 domain |
POST {base}/price | 后缀价目(注册价 / 续费价) | suffix(可选,如 com) |
POST {base}/register | 注册下单(余额即时 / 易支付返回链接) | domain · pay_method(balance|epay) · pay_type(epay 时) · idem_key(建议) · email(可选) · return_url(epay 可选) |
POST {base}/order/query | 订单状态(唯一真相源) | order_no 或 domain 或 idem_key |
POST {base}/order/list | 订单列表 | page · limit · status · keyword |
POST {base}/my/list | 我名下域名列表 | page · limit · keyword |
POST {base}/dns/list | 解析记录列表 | domain |
POST {base}/dns/add | 添加解析 | domain · host · type(A/CNAME/MX/TXT) · value · mx(可选) |
POST {base}/dns/update | 修改解析 | 同 add + record_id |
POST {base}/dns/delete | 删除解析 | domain · record_id |
POST {base}/ns/set | 修改 DNS 服务器(默认未开放,受平台开关控制) | domain · ns1 · ns2 |
POST {base}/transfer/apply | 申请转出到你的星途账号(人工处理) | domain · to_uid(你的星途账号 ID) |
POST {base}/transfer/query | 转出进度查询 | id 或 domain |
// 1) 查价
POST {base}/check domains = "abc.com"
// data.list[0] = {"domain":"abc.com","available":true,"price":102.00}
// 2) 下单(带幂等键,网络抖动重发也不会重复扣款)
POST {base}/register
domain = "abc.com"
pay_method = "balance"
idem_key = "你的业务单号-abc.com"
// data = {"order_no":"D20261014123456789","status":1,"status_text":"已付待注册","balance":198.00, ...}
// 3) 轮询状态(注册是异步入队的,通常 1-5 分钟)
POST {base}/order/query order_no = "D20261014123456789"
// status: 1 已付待注册 → 2 注册中 → 3 已注册(失败为 4,余额已自动退回)
POST {base}/register
domain = "abc.com"
pay_method = "epay"
pay_type = "alipay" // alipay / wxpay / qqpay(以平台开通的渠道为准)
idem_key = "你的业务单号-abc.com"
return_url = "https://你的站点/pay/return" // 可选,付款后跳回这里
// data = {"order_no":"D…","price":102.00,"pay_url":"https://…/submit.php?…","expire_at":"…"}
把 pay_url 给用户跳转支付;用户付完后平台自动提交注册,你继续用 order/query 轮询即可(本套餐不提供 webhook,以查询为准)。
| status | 含义 |
|---|---|
| 0 | 待支付(易支付单,30 分钟未付自动关闭为 5) |
| 1 | 已付待注册(余额单到此即开始提交上游) |
| 2 | 注册中(上游已入队) |
| 3 | 已注册(data.expire_time 为到期时间) |
| 4 | 注册失败(看 data.note;业务类失败余额已自动退回) |
| 5 | 已关闭 |
data.refund_status:0 未退款 / 1 已退款 / 2 待人工退款(易支付渠道)/ 3 退款重试中。data.manual=true 表示该单需要人工跟进(网络类异常、转出中、续费单)。
所有解析/NS 操作都会校验域名归属(只能操作你自己名下的域名),越权返回 403;域名在转出申请期间解析写操作会被锁定(403)。支持 A / CNAME / MX / TXT 四种记录。
transfer/apply(填你自己的星途账号 ID)后进入人工处理,通常 1-3 个工作日完成;完成后域名归属你的星途账号,平台不再提供解析与续费。申请期间可随时查询进度,未处理的申请可联系客服取消。my/list 或 order/query 的 expire_time 查看。account 里看到你的额度)。1.2.3.* 通配),把密钥泄露的风险降到最低。DA 开头),不是代理开放 API 的 AG 凭据。/api/open/domain/*。order/query 查它,不要重复下单。pay_method=epay。order/query 为准。idem_key 保证不重复扣款。