您的位置:首页 > 其它

新网域名查询和注册API接口类 源码

2009-09-05 08:39 344 查看
最近公司要做一个基于新网的API,在自己的系统中实现实时查询域名注册情况,并且要能实时注册,注册费用自动从我们的代理帐户中扣除,下面是我写的核心实现类代码:
public class XinNetApiBase
{
//默认代理编号
public readonly static string AgentID = "agent88888";

private Encoding _WebEncode = Encoding.GetEncoding("UTF-8");
private string _RequestString;
private string _Result;
private string _RequestUrl;
private WebClient _EWebClient = new WebClient();

/// <summary>
/// 处理编码
/// </summary>
public Encoding WebEncode
{
get { return _WebEncode; }
set { _WebEncode = value; }
}

/// <summary>
/// 请求的查询参数
/// </summary>
public string RequestString
{
get { return _RequestString; }
set { _RequestString = value; }
}

/// <summary>
/// 请求返回的结果
/// </summary>
public string Result
{
get { return _Result; }
set { _Result = value; }
}

/// <summary>
/// 请求的URL地址
/// </summary>
public string RequestUrl
{
get { return _RequestUrl; }
set { _RequestUrl = value; }
}

/// <summary>
/// 客户端与服务器通信类
/// </summary>
public WebClient EWebClient
{
get { return _EWebClient; }
set { _EWebClient = value; }
}

public XinNetApiBase(ApiType _apitype, List<QueryParam> _list)
{
this.RequestUrl = GetApiUrl(_apitype);
this.RequestString = GetRequestString(_list);
this.GetHttp();
}

public XinNetApiBase(string _ApiUrl, List<QueryParam> _list)
{
this.RequestUrl = _ApiUrl;
this.RequestString = GetRequestString(_list);
}

public string GetRequestString(List<QueryParam> list)
{
string requestUrl = "";
foreach (QueryParam q in list)
{
requestUrl += q.QueryName + "=" + HttpUtility.UrlEncode(q.QueryValue, this.WebEncode) + "&";
}
return requestUrl.TrimEnd('&');
}

public string GetHttp()
{

this.EWebClient.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
this.EWebClient.Encoding = this.WebEncode;
this.Result = this.EWebClient.UploadString(new Uri(this.RequestUrl), "POST", this.RequestString);

return this.Result;

}

public string GetApiUrl(ApiType _ApiType)
{
string _Url = "";
switch (_ApiType)
{
case ApiType.Check:
_Url = "http://api.xinnet.com/domain/api.gb?method=check&charset=utf-8";
break;
case ApiType.Register:
_Url = "http://api.xinnet.com/domain/api.gb?method=Register&charset=utf-8";
break;
case ApiType.Status:
_Url = "http://api.xinnet.com/domain/api.gb?method=Status&charset=utf-8";
break;
case ApiType.ModDns:
_Url = "http://api.xinnet.com/domain/api.gb?method=ModDns&charset=utf-8";
break;
case ApiType.domain:
_Url = "http://api.xinnet.com/domain/api.gb?method=DomainRenew&charset=utf-8";
break;
case ApiType.GetProductKey:
_Url = "http://api.xinnet.com/domain/api.gb?method=GetProductKey&charset=utf-8";
break;
case ApiType.ChangeProductKey:
_Url = "http://api.xinnet.com/domain/api.gb?method=ChangeProductKey&charset=utf-8";
break;
case ApiType.ModifyContactor:
_Url = "http://api.xinnet.com/domain/api.gb?method=ModifyContactor&charset=utf-8";
break;
default:
_Url = "http://api.xinnet.com/domain/api.gb?method=testmd5&charset=utf-8";
break;
}

return _Url;
}

/// <summary>
/// MD5加密
/// </summary>
/// <param name="_ConvertString">加密的内容</param>
/// <param name="_Len">16或32 表示16位或32位</param>
/// <returns></returns>
public static string MD5(string _ConvertString, int _Len)
{
using (System.Security.Cryptography.MD5CryptoServiceProvider provider = new System.Security.Cryptography.MD5CryptoServiceProvider())
{
switch (_Len)
{
case 16:
return BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(_ConvertString)), 4, 8).Replace("-", string.Empty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);

case 32:
return BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(_ConvertString))).Replace("-", string.Empty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);
default:
return BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(_ConvertString))).Replace("-", string.Empty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);

}
}
}

}

public class QueryParam
{
private string _QueryName;
private string _QueryValue;

public string QueryName
{
set { this._QueryName = value; }
get { return this._QueryName; }
}

public string QueryValue
{
set { this._QueryValue = value; }
get { return this._QueryValue; }
}

public QueryParam(string _Name, string _Value)
{
this.QueryName = _Name;
this.QueryValue = _Value;
}

}

public enum ApiType
{
Check,
Register,
Status,
ModDns,
domain,
GetProductKey,
ChangeProductKey,
ModifyContactor
}
查询域名是否已经注册,使用演示:
List<QueryParam> param = new List<QueryParam>();

param.Add(new QueryParam("name", "viqiwu"));
param.Add(new QueryParam("enc", "E"));
param.Add(new QueryParam("suffix", ".com"));
param.Add(new QueryParam("suffix", ".com.cn"));
param.Add(new QueryParam("suffix", ".cn"));
param.Add(new QueryParam("client", "agent88888"));

XinNetApiBase _XinNet = new XinNetApiBase(ApiType.Check, param);

Response.Write(_XinNet.Result);

//_XinNet.Result 返回的结果 num=3&enc=E&name1=viqiwu.com&chk1=0&name2=viqiwu.com.cn&chk2=100&name3=viqiwu.cn&chk3=0
//chk1=0 表示不能注册了 chk1=100 表示可以注册

下面是官方API说明文档:
Xinnet Corp. 北京新网数码信息技术有限公司

POST参数注意事项:
所有电话号码及邮编必须为数字,且不能为零
所有英文信息字段必须为
本接口暂时不支持信任制代理
1. 文档说明
1.1 文档简介
本版本采用HTTP+POST方式进行注册。
1.2 使用限制
只有新网的正式代理才能使用。
必须符合接口认证方式才能提交命令。
注册接口按照该代理的价格进行实时注册实时扣费,如果预付款不足,将不能提交注册申请。
接口文档的获得和传播必须符合新网的保密协议
1.3 操作说明
1。代理在新网代理专区填写授权POST的IP地址和认证密码。
2。按照接口说明编写客户端程序向接口提交查询、注册命令,立刻获得结果。

1.4 域名范围
国际域名,.com,.net,.org,.biz,.info,.cc,.mobi域名,包括中文.com,.cc
国内域名,.cn,.com.cn类,.中国,.网络,.公司,通用网址
1.5 md5串测试地址:
url:http://api.xinnet.com/domain/api.gb?method=testmd5 http://api.xinnet.com/domain/api.gb?method=testmd5&charset=utf-8 (utf-8字符集)
参数:strbuf
输出:strbuf内容及编码后的md5串
中文编码使用gb2312 或者utf-8编码,否则易出现md5校验错误:verify-failure 摘要认证失败
关于此处说明:请确保相关程序文件的charset设置和文件自身保存的编码一致。
并请保证所有关联文件编码一致,您明确要求不一致(需转码)的除外
gb2312和utf-8中文md5结果可能不同,请确保提交内容字符集和md5串一致。
2. 接口概述
2.1 接口目录
Check接口:主要负责进行域名的查询,采用多线程方式,可以同时查询多个域名
Register接口:注册接口,实时注册,成功后立即扣费。如果超时,不转为后台注册,域名将被删除。
不提供通用网址注册服务。
Status接口:查询域名是否注册成功。
ModDns接口: 进行在线修改DNS操作。
domain续费接口:域名续费接口,实时续费,立即扣费。
获取产品密码接口:获取域名管理密码、mydns密码以及域名到期时间。
修改产品密码接口:修改域名管理密码以及mydns密码。
ModifyContactor 接口:修改除域名所有人以外的所有联系人信息。
注册本域名下的DNS:注册本域名下的DNS。
查询本域名下的DNS:查询本域名下的DNS。
修改本域名下的DNS:修改本域名下的DNS。
删除本域名下的DNS:删除本域名下的DNS。

2.2 认证方式
1。IP限制,对于任何接口必须从该代理授权的IP,每个代理限填3个IP地址
2。MD5非可逆加密摘要,除Check接口、和Status接口外,其它所有接口都要求提供

2.3 返回结果
按照POST数据格式返回数据结果

3. 接口说明
3.1 Check 接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=check http://api.xinnet.com/domain/api.gb?method=check&charset=utf-8 (utf-8字符集)
POST 参数: name 名字;1个,没有后缀
enc 编码,E,G;1个;
suffix 后缀;1-N个,域名后缀.com/.net/.org/.中国/cnaddr/.公司/
client 代理号;1个
例如:name=abc&enc=E&suffix=.com&suffix=.net&suffix=.cn&client=agent111
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果: num 域名数量
enc 编码
name[1--N] 域名,名字+后缀 N=num
chk[1--N] N=num 查询结果: 0 不可注册 100 可以注册

信息编码:
auth-failure 认证失败

例如:num=3&enc=E&name1=abc.com&chk1=0&name2=abc.net&chk2=100&name3=abc.org&chk3=-100
注意:通用网址suffix=cnaddr(目前仅提供老通用网址续费,不提供注册服务)

3.2 Register 接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=Register http://api.xinnet.com/domain/api.gb?method=Register&charset=utf-8 (utf-8字符集)
POST 参数:
[域名信息]
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;
client 代理号;1个
checksum MD5加密摘要
period 注册年数;[如果不填默认为1年],有效值1-10年
url URL转发[通用网址需要,如果不填默认为www.xinnet.com]

[注册所有人或注册单位的信息]

uname1 注册人中文单位名称 [必须]
uname2 注册人英文单位名称 [必须]------------------- 必须英文,且中间有一个空


uname3 注册单位拼音 [.中国\通用网址必须] ---------- 必须为字母
uname4 注册单位缩写 [.中国\通用网址必须] ----------
location 注册人单位所在地 [注册.中国\通用网址必须]
rname1 注册人|单位负责人中文名称 [国内域名必须]
rname2 注册人|单位负责人英文名称 [国际域名必须]
ust 注册人英文国家名称 两个字母[CN表示中国],接口自动翻译中文
uprov 注册人英文省份名称 如:Beijing,接口自动翻译中文
ucity1 注册人中文城市名称 [国内域名必须]
ucity2 注册人英文城市名称 [国际域名必须]
uaddr1 注册人中文地址 [国内域名必须]
uaddr2 注册人英文地址 [国际域名必须]
uzip 注册人邮政编码 [必须]
utelc 注册人电话国家码, 可以不填默认为86,长度不能大于3位
utela 注册人电话区号 如果为手机可以不填,此项不可为0
uteln 注册人电话号码 (区号+电话号码长度必须小于12)
utele 注册人电话分机
ufaxc 注册人传真国家码, 可以不填默认为86,长度不能大于3位
ufaxa 注册人传真区号 如果为手机可以不填,此项不可为0
ufaxn 注册人传真号码 必须为数字 (区号+传真号码长度必须小于12)
ufaxe 注册人传真分机
uemail 注册人email地址
trade 注册人所在行业英文编码 [如果不填,默认为商业S8]//此字段最好不填,如果

填写,千万不能用小写S
[域名管理联系人信息] 管理联系人单位地址信息和注册人信息一致,所以不用填


uincode travel域名UIN编码 travel域名必须,其他域名不需要
certtype asia域名证件类型 asia域名必须,其他域名不需要
passport 护照或居民身份证
certificate 营业执照
legislation 特许成立的法定机构证明
societiesRegistry 非营利团体登记证明
politicalPartyRegistry 政党注册证明
other 其他

certcode asia域名证件号码 asia域名必须,其他域名不需要
entitytype asia域名实体类型 asia域名必须,其他域名不需要
naturalPerson 个人
corporation 公司或社团法人
cooperative 合作社
partnership 合伙或集体公司
government 政府机关
politicalParty 政党或工会
society 信托管理机构﹑资产管理机构﹑协会或社团
institution 公共机构
other 其他
aname1 管理联系人中文名称 [国内域名必填]
aname2 管理联系人英文名称 [国际域名必填]
atelc 管理联系人电话国家码 可以不填默认为86,长度不能大于3位
atela 管理联系人电话区号 如果为手机可以不填
ateln 管理联系人电话号码 区号+电话号码长度必须小于12
atele 管理联系人电话分机 可以不填,此项不可为0
afaxc 管理联系人传真国家码,可以不填默认为86,长度不能大于3位
afaxa 管理联系人传真区号,如果为手机可以不填 可以不填,此项不可为0
afaxn 管理联系人传真号码
afaxe 管理联系人传真分机
aemail 管理联系人电子邮件地址 [必须]
说明:管理联系人和注册人的电话和传真必须保证一份为填写完整的。
否则,如果管理联系人电话传真缺少,将使用注册人的电话传真
如果注册人电话传真缺少,将使用管理联系人的电话传真
如果注册人没有email地址,将使用管理联系人的email地址

[技术联系人信息]

tname1 技术联系人中文名称 [如果不填,默认为管理联系人]
tname2 技术联系人英文名称 [如果不填,默认为管理联系人]
tunit1 技术联系人单位中文名称 [如果不填,默认为管理联系人]
tunit2 技术联系人单位英文名称 [如果不填,默认为管理联系人]
tst 技术联系人英文国家名称, 两个字母[CN表示中国], [如果不填,默认为

管理联系人]
tprov 技术联系人英文省份名称 如:Beijing,接口自动翻译中文,[如果不填,默认

为管理联系人]
tcity1 技术联系人中文城市名称 [如果不填,默认为管理联系人]
tcity2 技术联系人英文城市名称 [如果不填,默认为管理联系人]
taddr1 技术联系人中文地址 [如果不填,默认为管理联系人]
taddr2 技术联系人英文地址 [如果不填,默认为管理联系人]
tzip 技术联系人邮政编码 [如果不填,默认为管理联系人]
temail 技术联系人电子邮件地址 [如果不填,默认为管理联系人]
ttelc 技术联系人电话国家码 [如果不填,默认为管理联系人]
ttela 技术联系人电话区号 [如果不填,默认为管理联系人]
tteln 技术联系人电话号码 [如果不填,默认为管理联系人]
ttele 技术联系人电话分机 [如果不填,默认为管理联系人]
tfaxc 技术联系人传真国家码 [如果不填,默认为管理联系人]
tfaxa 技术联系人传真区号 [如果不填,默认为管理联系人]
tfaxn 技术联系人传真号码 [如果不填,默认为管理联系人]
tfaxe 技术联系人传真分机 [如果不填,默认为管理联系人]
[交费联系人信息]
fname1 交费联系人中文名称 [如果不填,默认为管理联系人]
fname2 交费联系人英文名称 [如果不填,默认为管理联系人]
funit1 交费联系人单位中文名称 [如果不填,默认为管理联系人]
funit2 交费联系人单位英文名称 [如果不填,默认为管理联系人]
fst 交费联系人英文国家名称, 两个字母[CN表示中国], [如果不填,默认为

管理联系人]
fprov 交费联系人英文省份名称 如:Beijing,接口自动翻译中文,[如果不填,默认

为管理联系人]
fcity1 交费联系人中文城市名称 [如果不填,默认为管理联系人]
fcity2 交费联系人英文城市名称 [如果不填,默认为管理联系人]
faddr1 交费联系人中文地址 [如果不填,默认为管理联系人]
faddr2 交费联系人英文地址 [如果不填,默认为管理联系人]
fzip 交费联系人邮政编码 [如果不填,默认为管理联系人]
femail 交费联系人电子邮件地址 [如果不填,默认为管理联系人]
ftelc 交费联系人电话国家码 [如果不填,默认为管理联系人]
ftela 交费联系人电话区号 [如果不填,默认为管理联系人]
fteln 交费联系人电话号码 [如果不填,默认为管理联系人]
ftele 交费联系人电话分机 [如果不填,默认为管理联系人]
ffaxc 交费联系人传真国家码 [如果不填,默认为管理联系人]
ffaxa 交费联系人传真区号 [如果不填,默认为管理联系人]
ffaxn 交费联系人传真号码 [如果不填,默认为管理联系人]
ffaxe 交费联系人传真分机 [如果不填,默认为管理联系人]
[DNS信息]
dns1 域名主服务器名字 [如果不填默认为ns.xinnetdns.com]
dns2 域名辅服务器名字 [如果不填默认为ns.xinnet.cn]

例如:dn=abc.com&enc=E&client=agent111&period=1.
POST 数据,都必须进行URL编码,否则中文信息将不正确

验证:client和POST的来源IP必须与该代理填写的地址一致
checksum=MD5("Register"+client+password+dn+aemail+uname2)
"Register"为字符串常量,表示接口名称。
其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码
client为客户号,dn为域名,aemail为管理联系人电子邮件,unit2为注册单位英文名称

返回结果: ret 注册结果,0 失败,100成功 50 超时等待
info 正常的信息,1个
err 错误的信息,0-N个
返回信息:
格式: 操作/对象-结果
reg-success 注册成功
reg-waiting 提交成功,等待注册
reg-failure 注册失败
reg-unauth 未被授权注册通用网址[new]
auth-failure 认证失败
name-null 域名为空
name-wrong 错误的域名后缀
name-invalid 域名无效包含错误字符
client-invalid 客户号无效
client-null 客户号为空
verify-null 没有摘要
db-fail 数据库连接失败
credit-fail 客户预付款不足
name-exist 域名已经存在
period-invalid 注册年限无效
verify-failure 摘要认证失败
uname1-invalid 注册人单位中文名称无效
uname1-null 注册人单位中文名称为空
uname2-invalid 注册人单位英文名称无效
uname2-null 注册人单位英文名称为空
uname3-invalid 注册人单位拼音无效
uname3-null 注册人单位拼音为空
uname4-invalid 注册人单位缩写无效
uname4-null 注册人单位缩写为空
rname1-invalid 注册人中文姓名无效
rname1-null 注册人中文姓名为空
rname2-invalid 注册人英文姓名无效
rname2-null 注册人英文姓名为空
uaddr1-invalid 注册人单位中文地址中文名称无效
uaddr1-null 注册人单位中文地址中文名称为空
uaddr2-invalid 注册人单位中文地址英文名称无效
uaddr2-null 注册人单位中文地址英文名称为空
ucity1-invalid 注册人单位中文城市无效
ucity1-null 注册人单位中文城市为空
ucity2-invalid 注册人单位英文城市无效
ucity2-null 注册人单位英文城市为空
aname1-invalid 管理联系人中文姓名无效
aname1-null 管理联系人中文姓名为空
aname2-invalid 管理联系人英文姓名无效
aname2-null 管理联系人英文姓名为空
uteln-invalid 注册人电话号码无效
uteln-null 注册人电话号码为空
ateln-invalid 管理联系人电话号码无效
ateln-null 管理联系人电话号码为空
ufaxn-invalid 注册人传真号码无效
ufaxn-null 注册人传真号码为空
afaxn-invalid 管理联系人传真号码无效
afaxn-null 管理联系人传真号码为空
uzip-invalid 注册人邮政编码无效
uzip-null 注册人邮政编码为空
aemail-invalid 管理联系人email无效
aemail-null 管理联系人email为空
uincode-invalid travel域名UIN编码无效
certtype-invalid asia域名证件类型无效
certcode-invalid asia 域名证件号码无效
entitytype-invalid asia域名实体类型无效

例如: ret=100&info=reg-success
ret=0&err=auth-failure
ret=0&err=uname2-invalid&err=aemail-null&err=uaddr2-invalid&err=

3.3 Status 接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=Status http://api.xinnet.com/domain/api.gb?method=Status&charset=utf-8 (utf-8字符集)
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;如果不填,模认为E
client 代理号;1个
例如:dn=abc.com&enc=E&client=agent111
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果: ret 返回结果,
100注册成功,0注册不成功,50等待注册,-100该域名不存在 -20域名存在但您没有管理权限
err 错误信息
信息编码:
auth-failure 认证失败
name-invalid 无效的域名

例如:ret=0&err=auth-failure

3.4 ModDns 接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=ModDns http://api.xinnet.com/domain/api.gb?method=ModDns&charset=utf-8 (utf-8字符集)
POST 参数:
[域名信息]
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;
client 代理号;1个
dns1 域名主服务器名字[必须填写]
dns2 域名辅服务器名字[必须填写]
checksum MD5加密摘要

例如:dn=abc.com&enc=E&client=agent111&dns=ns.xinnetdns.com.
POST 数据,都必须进行URL编码,否则中文信息将不正确

验证:client和POST的来源IP必须与该代理填写的地址一致
checksum=MD5("ModDns"+client+password+dn+dns1+dns2)
"ModDns"为字符串常量,表示接口名称。
其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码
client为客户号,dn为域名,dns1,dns2为域名服务器名字[例如:ns.xinnetdns.com]

返回结果: ret 注册结果,0 失败,100成功
info 正常的信息,1个
err 错误的信息,0-N个
返回信息:
格式: 操作/对象-结果
mod-success 修改成功
mod-failure 修改失败
auth-failure 认证失败
name-null 域名为空
name-wrong 错误的域名后缀
name-invalid 域名无效包含错误字符
client-invalid 客户号无效
client-null 客户号为空
verify-null 没有摘要
db-fail 数据库连接失败
verify-failure 摘要认证失败
dns1-invalid 主域名服务器名字无效
dns1-null 主域名服务器名字为空
dns2-invalid 辅域名服务器名字无效
dns2-null 辅域名服务器名字为空
domain-auth-Failed 域名不是该代理所有

例如: ret=100&info=mod-success
ret=0&err=auth-failure
3.5 domain续费接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=DomainRenew http://api.xinnet.com/domain/api.gb?method=DomainRenew&charset=utf-8 (utf-8字符集)
参数:
client 代理号;1个
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;
begindate 续费起始日期 yyyy-mm-dd (起始日期是指域名当前到期时间)
period 续费年数 不能大于9或等于0
checksum MD5校验码
例如:

checksum=b47746405dd4e41303e2ee1307155452&client=agent4978&dn=ceshiceshi1.com.cn&enc=E&begindate=2005-10-

07&period=1
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致
checksum=MD5("DomainRenew"+client+password+dn+enc+begindate)

"DomainRenew"为字符串常量,表示接口名称。
其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码
client为客户号,dn为域名,enc为编码,begindate为续费起始日期 yyyy-mm-dd

返回结果:
ret 注册结果,0 失败,100成功
info 正常的信息,1个
err 错误的信息,0-N个
返回信息:
格式: 操作/对象-结果
auth-failure 认证失败
client-null 客户号为空
verify-null 没有摘要
db-fail 数据库连接失败
verify-failure 摘要认证失败
period-invalid 续费年数错误
renew-success 认证失败
name-invalid 无效的域名
name-wrong 无效的域名
name-noexist 没有符合条件的域名
begindate-null 起始日期空
credit-fail 余额不足
clintId-error 没有域名的管理权限
date-error 起始日期或编码错误
db-error 数据库操作失败
last-waiting 上次续费操作未完成
invalid-renew 续费超过最长期限
begindate-error 起始日期与库里域名到期时间不一致
domain-auth-Failed 域名不是该代理所有

例如:
ret=100&info=renew-success
ret=0&err=auth-failure
域名最长年限:
国际域名:10年;
国内英文域名:10年;
国内中文域名:10年;
普通通用网址:10年;
通用词:10年;
白金词:2年。

PS:
超出域名最长年限的续费将不成功。

3.6 获取产品密码接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=GetProductKey http://api.xinnet.com/domain/api.gb?method=GetProductKey&charset=utf-8 (utf-8字符

集)
name 域名;1个,包括后缀

enc 编码,E,G;1个;
client 代理号;1个
keyname 查询属性名//空或'Password'为密码查询,'ExpireDate'为查询域名过期日期[New!!!]
'MyDnsPass'查询MyDns密码
checksum MD5加密摘要
checksum=MD5("GetProductKey"+client+password+dn+enc) password: 代理密码
例如:

enc=E&client=agent1&name=rabette.com&keyname=ExpireDate&checksum=9bc77f99554dsacd046beba7e42081b5
返回:&name=rabette.com&key=2008-02-24
enc=E&client=agent1&name=rabette.com&checksum=9bc77f99554dsacd046beba7e42081b5


enc=E&client=agent1&name=rabette.com&keyname=Password&checksum=9bc77f99554dsacd046beba7e42081b5
返回:&name=rabette.com&key=sdfee22dd

POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果: ret 返回结果,
key[] 密码
err 错误信息
信息编码:
auth-failure 认证失败
name-invalid 无效的域名
db-failure 数据库错误
domain-auth-Failed 域名不是该代理所有
例如:ret=0&err=auth-failure
ret=0&err=db-failure 数据库错误

name=abc.org&key=dafsadfas

3.7 修改产品密码接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=ChangeProductKey http://api.xinnet.com/domain/api.gb?method=ChangeProductKey&charset=utf-8 (utf-8字符

集)
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("ChangeProductKey"+client+password+dn+enc) password: 代理密码
keyname 修改属性名//空或'Password'(6-15)为域名管理密码查询,'MyDnsPass'(6-20)查询

MyDns密码
newkey 新密码
oldkey 初始密码
例如:dn=abc.com&enc=E&client=agent111&checksum=xxxxx&newkey=xxx&oldkey=xxxxx
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果:
ret 返回结果 0错误 100成功
err 错误信息
key[1--N] 密码1-N//修改成功的密码
ret=0&oldkey=null
ret=0&newkey=null

信息编码:
failkey[1--N] 密码1-N//修改失败的密码
auth-failure 认证失败
name-invalid 无效的域名
name-notexist 域名不存在或者域名不属于该代理
db-failure 数据库错误
password-invalid 新密码无效
oldkey-invalid 旧密码密码验证失败
keyname-invalid 属性名无效不能识别的
domain-auth-Failed 域名不是该代理所有

例如:ret=0&err=auth-failure

成功: ret=100&name=dfdaf.org&keyname=Password&key=xdsfd
失败: ret=0&name=dfdaf.org&keyname=MyDnsPass&key=xdsfd

3.8 ModifyContactor 接口
POST 地址: http://api.xinnet.com/domain/api.gb?method=ModifyContactor http://api.xinnet.com/domain/api.gb?method=ModifyContactor&charset=utf-8 (utf-8字符集)
POST 参数:
[域名信息]
dn 域名;1个,包括名字和后缀
enc 编码,E,G;1个;如果不填,模认为E
client 代理号;1个
checksum MD5加密摘要

[注册所有人或注册单位的信息]

uname1 注册人中文单位名称[必须](可不送,修改忽略)
uname2 注册人英文单位名称[必须](可不送,修改忽略)
uname3 注册单位拼音[.中国\通用网址必须](可不送,修改忽略)
uname4 注册单位缩写[.中国\通用网址必须](可不送,修改忽略)
location 注册人单位所在地[注册.中国\通用网址必须]
rname1 注册人|单位负责人中文名称[国内域名必须]
rname2 注册人|单位负责人英文名称[国际域名必须]
ust 注册人英文国家名称,两个字母[CN表示中国],接口自动翻译中文
uprov 注册人英文省份名称, 如:Beijing,接口自动翻译中文
ucity1 注册人中文城市名称[国内域名必须]
ucity2 注册人英文城市名称[国际域名必须]
uaddr1 注册人中文地址[国内域名必须]
uaddr2 注册人英文地址[国际域名必须]
uzip 注册人邮政编码[必须]
utelc 注册人电话国家码,可以不填默认为86
utela 注册人电话区号,如果为手机可以不填
uteln 注册人电话号码
utele 注册人电话分机
ufaxc 注册人传真国家码,可以不填默认为86
ufaxa 注册人传真区号,如果为手机可以不填
ufaxn 注册人传真号码
ufaxe 注册人传真分机
uemail 注册人email地址
trade 注册人所在行业英文编码[如果不填,默认为商业S8]
[域名管理联系人信息] 管理联系人单位地址信息和注册人信息一致,所以不用填写

aname1 管理联系人中文名称[国内域名必填]
aname2 管理联系人英文名称[国际域名必填]
atelc 管理联系人电话国家码,可以不填默认为86
atela 管理联系人电话区号,如果为手机可以不填
ateln 管理联系人电话号码
atele 管理联系人电话分机,可以不填
afaxc 管理联系人传真国家码,可以不填默认为86
afaxa 管理联系人传真区号,如果为手机可以不填
afaxn 管理联系人传真号码
afaxe 管理联系人传真分机,可以不填
aemail 管理联系人电子邮件地址[必须]
说明:管理联系人和注册人的电话和传真必须保证一份为填写完整的。
否则,如果管理联系人电话传真缺少,将使用注册人的电话传真
如果注册人电话传真缺少,将使用管理联系人的电话传真
如果注册人没有email地址,将使用管理联系人的email地址
[技术联系人信息]

tname1 技术联系人中文名称[如果不填,默认为管理联系人]
tname2 技术联系人英文名称[如果不填,默认为管理联系人]
tunit1 技术联系人单位中文名称[如果不填,默认为管理联系人]
tunit2 技术联系人单位英文名称[如果不填,默认为管理联系人]
tst 技术联系人英文国家名称,两个字母[CN表示中国],[如果不填,默认为管理联系人]
tprov 技术联系人英文省份名称, 如:Beijing,接口自动翻译中文,[如果不填,默认为管理联系人]
tcity1 技术联系人中文城市名称[如果不填,默认为管理联系人]
tcity2 技术联系人英文城市名称[如果不填,默认为管理联系人]
taddr1 技术联系人中文地址[如果不填,默认为管理联系人]
taddr2 技术联系人英文地址[如果不填,默认为管理联系人]
tzip 技术联系人邮政编码[如果不填,默认为管理联系人]
temail 技术联系人电子邮件地址[如果不填,默认为管理联系人]
ttelc 技术联系人电话国家码[如果不填,默认为管理联系人]
ttela 技术联系人电话区号[如果不填,默认为管理联系人]
tteln 技术联系人电话号码[如果不填,默认为管理联系人]
ttele 技术联系人电话分机[如果不填,默认为管理联系人]
tfaxc 技术联系人传真国家码[如果不填,默认为管理联系人]
tfaxa 技术联系人传真区号[如果不填,默认为管理联系人]
tfaxn 技术联系人传真号码[如果不填,默认为管理联系人]
tfaxe 技术联系人传真分机[如果不填,默认为管理联系人]
[交费联系人信息]

fname1 交费联系人中文名称[如果不填,默认为管理联系人]
fname2 交费联系人英文名称[如果不填,默认为管理联系人]
funit1 交费联系人单位中文名称[如果不填,默认为管理联系人]
funit2 交费联系人单位英文名称[如果不填,默认为管理联系人]
fst 交费联系人英文国家名称,两个字母[CN表示中国],[如果不填,默认为管理联系人]
fprov 交费联系人英文省份名称, 如:Beijing,接口自动翻译中文,[如果不填,默认为管理联系人]
fcity1 交费联系人中文城市名称[如果不填,默认为管理联系人]
fcity2 交费联系人英文城市名称[如果不填,默认为管理联系人]
faddr1 交费联系人中文地址[如果不填,默认为管理联系人]
faddr2 交费联系人英文地址[如果不填,默认为管理联系人]
fzip 交费联系人邮政编码[如果不填,默认为管理联系人]
femail 交费联系人电子邮件地址[如果不填,默认为管理联系人]
ftelc 交费联系人电话国家码[如果不填,默认为管理联系人]
ftela 交费联系人电话区号[如果不填,默认为管理联系人]
fteln 交费联系人电话号码[如果不填,默认为管理联系人]
ftele 交费联系人电话分机[如果不填,默认为管理联系人]
ffaxc 交费联系人传真国家码[如果不填,默认为管理联系人]
ffaxa 交费联系人传真区号[如果不填,默认为管理联系人]
ffaxn 交费联系人传真号码[如果不填,默认为管理联系人]
ffaxe 交费联系人传真分机[如果不填,默认为管理联系人]

例如:enc=G&client=agent4978&dn=xinnet.com&checksum=36d1823da539765a66e408f670353ea6.
POST 数据,都必须进行URL编码,否则中文信息将不正确

验证:client和POST的来源IP必须与该代理填写的地址一致
checksum=MD5(client+password+dn+uemail+aemail)

其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码
client为客户号,dn为域名,aemail为管理联系人电子邮件,uemail注册联系人邮箱

返回结果:
ret 注册结果,0 失败,100成功 50 超时等待
info 正常的信息,1个
err 错误的信息,0-N个
返回信息:
格式: 操作/对象-结果
modctr-sucess 操作成功
name-notexist 域名不存在
domain-auth-Failed 域名不是该代理所有

例如: ret=100&info=modctr-sucess
ret=0&err=auth-failure
ret=0&err=name-notexist
ret=0&err=uname2-invalid&err=aemail-null&err=uaddr2-invalid&err=

3.9 注册本域名下的DNS
POST 地址: http://api.xinnet.com/domain/api.gb?method=AddSelfDNS http://api.xinnet.com/domain/api.gb?method=AddSelfDNS&charset=utf-8 (utf-8字符集)
dn 域名;1个,包括名字和后缀
ns DNS名称,如ns1.xinnet.com中的ns1
ip IP地址
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("AddSelfDNS"+client+password+dn+ns) password: 代理使用API的密码
例如:dn=abc.com&ds=ns1&ip=202.108.32.110&client=agent123&checksum=xxxxx
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果:
ret 返回结果 0错误 100成功
err 错误信息

信息编码:
auth-failure 认证失败
ns-invalid 无效的dns
ns-null dns为空
name-null 域名为空
name-invalid 无效的域名
name-notexist 域名不存在或者域名不属于该代理
client-null 代理编号为空
client-invalid 无效的代理编号
checksum-null 加密摘要为空
ip-null IP为空
ip-invalid 无效的IP地址
db-failure 数据库错误
domain-auth-Failed 域名不是该代理所有

例如:ret=0&err=auth-failure

成功: ret=100&dn=abc.com&ns=ns1
失败: ret=0&dn=null&ns=null&client=null

3.10 查询本域名下的DNS
POST 地址: http://api.xinnet.com/domain/api.gb?method=GetSelfDNS http://api.xinnet.com/domain/api.gb?method=GetSelfDNS&charset=utf-8 (utf-8字符集)
dn 域名;1个,包括名字和后缀
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("GetSelfDNS"+client+password+dn) password: 代理使用API的密码
例如:dn=abc.com&client=agent123&checksum=xxxxx
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果:
ret 返回结果 0错误 100成功
err 错误信息

信息编码:
auth-failure 认证失败
name-null 域名为空
name-invalid 无效的域名
name-notexist 域名不存在或者域名不属于该代理
client-null 代理编号为空
client-invalid 无效的代理编号
checksum-null 加密摘要为空
domain-auth-Failed 域名不是该代理所有

例如:ret=0&err=auth-failure

成功: ret=100&dn=abc.com&ns1=ns1.abc.com&ip1=10.10.10.10&ns2=ns2.abc.com&ip2=20.20.20.20
失败: ret=0&dn=null&client=null

3.11 修改本域名下的DNS
POST 地址: http://api.xinnet.com/domain/api.gb?method=ModSelfDNS http://api.xinnet.com/domain/api.gb?method=ModSelfDNS&charset=utf-8 (utf-8字符集)
dn 域名;1个,包括名字和后缀
ns DNS名称,如ns1.xinnet.com中的ns1
ip IP地址
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("ModSelfDNS"+client+password+dn+ns) password: 代理使用API的密码
例如:dn=abc.com&ns=ns1&ip=202.108.32.110&client=agent123&checksum=xxxxx
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果:
ret 返回结果 0错误 100成功
err 错误信息

信息编码:
auth-failure 认证失败
ns-invalid 无效的dns
ns-null dns为空
name-null 域名为空
name-invalid 无效的域名
name-notexist 域名不存在或者域名不属于该代理
client-null 代理编号为空
client-invalid 无效的代理编号
checksum-null 加密摘要为空
ip-null IP为空
ip-invalid 无效的IP地址
domain-auth-Failed 域名不是该代理所有

例如:ret=0&err=auth-failure

成功: ret=100&dn=abc.com&ns=ns1.abc.com&ip=10.20.30.40
失败: ret=0&dn=null&client=null

3.12 删除本域名下的DNS
POST 地址: http://api.xinnet.com/domain/api.gb?method=DelSelfDNS http://api.xinnet.com/domain/api.gb?method=DelSelfDNS&charset=utf-8 (utf-8字符集)
dn 域名;1个,包括名字和后缀
ns DNS名称,如ns1.xinnet.com中的ns1
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("AddSelfDNS"+client+password+dn+ns) password: 代理使用API的密码
例如:dn=abc.com&ns=ns1&client=agent123&checksum=xxxxx
POST 数据,必须进行URL编码
验证:client和POST的来源IP必须与该代理填写的地址一致

返回结果:
ret 返回结果 0错误 100成功
err 错误信息

信息编码:
auth-failure 认证失败
ns-invalid 无效的dns
ns-null dns为空
name-null 域名为空
name-invalid 无效的域名
name-notexist 域名不存在或者域名不属于该代理
client-null 代理编号为空
client-invalid 无效的代理编号
checksum-null 加密摘要为空
domain-auth-Failed 域名不是该代理所有

例如:ret=0&err=auth-failure

成功: ret=100&dn=abc.com&ns1=ns1
失败: ret=0&dn=null&client=null

3.13 解析记录查询接口:
POST 地址: http://api.xinnet.com/domain/api.gb?method=DomainDNSQuery http://api.xinnet.com/domain/api.gb?method=DomainDNSQuery&charset=utf-8 (utf-8字符

集)
 描述:按照格式提供的域名和记录类型,返回当前域名在DNS库中对应的记录;
 参数说明:
name:域名名称;
type:解析记录的类型;
 发送信息格式:
查询NS记录:name=abc.com&type=NS
 返回信息参数说明:
ret:返回值(100代表成功,110代表没有符合条件的记录);
num:记录数量;
name:域名;
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("DomainDNSQuery"+client+password+name) password: 代理使用API的密码
recordnamen:记录名;(其中“n”代表第多少条记录,n>=1,以下意义均同此!);
type:域名解析记录类型(参数值为“prime-records”表示需要在domains表中添加初始解析记

录,ns,a,cname,mx,txt,url);
contentn:解析内容
ttln:生存时间;
prion:优先级;
reason:错误信息(操作成功则不会发送此参数!);
domain-auth-Failed 域名不是该代理所有
 返回格式(参数前后顺序可以随意):
有记录的:

ret=100&num=2&name=abc.com&type=NS&recordname1=abc.com&recordname2=abc.com&content1=ns.xinnetdns.com&conten

t2=ns.xinnet.cn&ttl1=3600&ttl2=3600
没有记录的:ret=110&reason=没有符合条件的记录

3.14 解析记录添加接口:
POST 地址: http://api.xinnet.com/domain/api.gb?method=DomainDNSAdd http://api.xinnet.com/domain/api.gb?method=DomainDNSAdd&charset=utf-8 (utf-8字符

集)
 描述:按照给定内容和格式,添加域名相关的解析记录;需要先判定提供的域名是否已经在domains表中存在对应

记录,否则,执行最初始的添加解析记录操作。
 参数说明:
name:域名名称;
recordname:记录名;
type:域名解析记录类型(参数值为“prime-records”表示需要在domains表中添加初始解析记

录,ns,a,cname,mx,txt,url);
content:解析内容;
ttl:生存时间;
prio:优先级(默认为“0”);
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("DomainDNSAdd"+client+password+name) password: 代理使用API的密码
 发送信息格式:
添加最初记录:name=abc.com&type=prime-records
添加NS记录(默认优先级设置):

name=abc.com&recordname=abc.com&type=NS&content=ns.xinnet.cn&ttl=3600&prio=0
添加A记录(默认优先级设置):

name=abc.com&recordname=www.abc.com&type=A&content=199.198.197.196&ttl=3600&prio=0
添加MX纪录(设定优先级):

name=abc.com&recordname=mail.abc.com&type=MX&content=mail.xinnet.com&ttl=3600&prio=5
 返回信息参数说明:
ret:返回值(100执行成功;120已有此记录;130参数内容有错误;140添加记录失败);
reason:错误信息(操作成功则不会发送此参数!);
domain-auth-Failed 域名不是该代理所有
 返回格式:
添加成功:ret=100
添加失败:ret=120&reason=已有此记录

3.15 解析记录修改接口:
POST 地址: http://api.xinnet.com/domain/api.gb?method=DomainDNSMod http://api.xinnet.com/domain/api.gb?method=DomainDNSMod&charset=utf-8 (utf-8字符

集)
 描述:按照给定信息内容,修改对应的解析记录;
 参数说明:
name:域名名称;
recordname:记录名;
type:域名解析记录类型(参数值为“prime-records”表示需要在domains表中添加初始解析记

录,ns,a,cname,mx,txt,url);
content:新的解析内容;
oldcontent:原有解析内容;
ttl:生存时间;
prio:优先级(可选择不提供此参数,默认为空);
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("DomainDNSMod"+client+password+name) password: 代理使用API的密码
 发送信息格式:
修改NS记录(无优先级设置):name=abc.com& recordname=abc.com&type=NS&content=ns.xinnet.cn

&oldcontent=ns1.xinnetdns.com&ttl=3600
说明:
格式1表明的是将原有纪录内容ns1.xinnetdns.com更新为ns.xinnet.cn
修改A记录(有优先级设置):

name=abc.com&recordname=www.abc.com&type=A&content=199.198.197.196&oldcontent=123.0.0.1&ttl=3600&prio=5
说明:
格式2表明要将原有的IP地址123.0.0.1更改为新IP地址199.198.197.196
 返回信息参数说明:
ret:返回值(100执行成功;125此记录不存在;130参数内容有错误;160修改记录失败);
reason:错误信息(操作成功则不会发送此参数!);
domain-auth-Failed 域名不是该代理所有
 返回格式:
添加成功:ret=100
添加失败:ret=130&reason=参数内容有错误

3.16 解析记录删除接口:
POST 地址: http://api.xinnet.com/domain/api.gb?method=DomainDNSDel http://api.xinnet.com/domain/api.gb?method=DomainDNSDel&charset=utf-8 (utf-8字符

集)
 描述:按照给定信息内容,删除对应的解析记录。
 参数描述:
name:域名名称;
recordname:记录名;
content:解析纪录内容;
type:域名解析记录类型(参数值为“prime-records”表示需要在domains表中添加初始解析记

录,ns,a,cname,mx,txt,url);
client 代理号;1个
checksum MD5加密摘要
checksum=MD5("DomainDNSDel"+client+password+name) password: 代理使用API的密码
 发送信息格式:
删除全部类型的解析记录: name=abc.com&type=all-records
删除A记录: name=abc.com&recordname=www.abc.com&type=A&content=123.0.0.1
删除单个NS纪录: Name=abc.com&recordname=abc.com&type=NS&content=ns1.xinnet.cn
 返回信息参数说明:
ret:返回值(100执行成功;125此记录不存在;130参数内容有错误;160删除记录失败);
reason:错误信息(操作成功则不会发送此参数!);
domain-auth-Failed 域名不是该代理所有
 返回格式:
添加成功:ret=100
添加失败:ret=160&reason=删除记录失败

特别注意事项说明:
1、client和POST的来源IP必须与该代理填写的地址一致
2、checksum=MD5("Register"+client+password+dn+aemail+unit2)

dn 域名;1个,包括名字和后缀
client 代理号;1个
aemail 管理联系人电子邮件地址[必须]

验证:
client和POST的来源IP必须与该代理填写的地址一致
checksum=MD5("Register"+client+password+dn+aemail+uname2)

"Register" 为字符串常量,表示接口名称。其他没有引号表示为POST参数变量
password 为代理专区中设置的认证密码
client 为客户号
dn 为域名
aemail 为管理联系人电子邮件
unit2 为注册单位英文名称

源码下载:/Files/taven/XinNetApiBase.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: