WHMCS面板如何对接西部数码的域名接口开发域名管理功能
文 / @WordPress主题
WHMCS域名接口存放于modules/registrars目录下,以开发西数域名接口为例,新建一个west263文件夹,对应文件名便是west263.php,文件内的函数名前缀必须为west263_,也就是文件夹、文件、函数名前缀必须一致。
一个域名接口的代码看上去如下:
<?php /** * 配置项 * WHMCS管理员可以在域名注册接口页面设置这些信息 */ function west263_getConfigArray() { $configarray = array( "Username" => array( "Type" => "text", // 文本框 "Size" => "20", "Description" => "Enter your username here", ), "Password" => array( "Type" => "password", // 密码框 "Size" => "20", "Description" => "Enter your password here", ), "Usessl" => array ( "FriendlyName" => "Enable SSL", "Type" => "yesno", // 复选框 "Description" => "Tick to use secure connections", ), "Package" => array ( "FriendlyName" => "Package Name", "Type" => "dropdown", // 下拉框 "Options" => "Starter,Advanced,Ultimate", "Description" => "Sample Dropdown", "Default" => "Advanced", ), "Disk" => array ( "FriendlyName" => "Disk Space", "Type" => "radio", // 单选框 "Options" => "100MB,200MB,300MB", "Description" => "Radio Options Demo", "Default" => "200MB", ), "Comments" => array ( "FriendlyName" => "Notes", "Type" => "textarea", // 多行文本输入框 "Rows" => "3", "Cols" => "50", "Description" => "Description goes here", "Default" => "Enter notes here", ), ); return $configarray; } // 获取西数DNS function west263_GetNameservers($params) { // 输入你的代码 $values["ns1"] = $nameserver1; $values["ns2"] = $nameserver2; $values["ns3"] = $nameserver3; $values["ns4"] = $nameserver4; $values["error"] = $error; // 返回DNS,如果获取西数DNS失败,就返回错误信息 return $values; } /** * 保存DNS修改 * 用户在WHMCS修改DNS后接口需要更新西数那边的设置 */ function west263_SaveNameservers($params) { $nameserver1 = $params['ns1']; $nameserver2 = $params['ns2']; $nameserver3 = $params['ns3']; $nameserver4 = $params['ns4']; $nameserver5 = $params['ns5']; // 输入你的代码 $values["error"] = $error; return $values; } /** * 获取域名锁定状态 * 获取西数域名锁定状态,以更新WHMCS中的域名状态 */ function west263_GetRegistrarLock($params) { // 输入你的代码 if ($lock=="1") { $lockstatus="locked"; } else { $lockstatus="unlocked"; } return $lockstatus; } /** * 保存域名锁定状态 * 将WHMCS这边的域名状态修改保存至西数 */ function west263_SaveRegistrarLock($params) { if ($params["lockenabled"]) { $lockstatus="locked"; } else { $lockstatus="unlocked"; } // 输入你的代码 $values["error"] = $error; return $values; } // 获取邮件转发 function west263_GetEmailForwarding($params) { // 输入你的代码 foreach ($result AS $value) { $values[$counter]["prefix"] = $value["prefix"]; $values[$counter]["forwardto"] = $value["forwardto"]; } return $values; } // 保存邮件转发 function west263_SaveEmailForwarding($params) { foreach ($params["prefix"] AS $key=>$value) { $forwardarray[$key]["prefix"] = $params["prefix"][$key]; $forwardarray[$key]["forwardto"] = $params["forwardto"][$key] } // 输入你的代码 } // 获取西数DNS解析记录 function west263_GetDNS($params) { // 输入你的代码 $hostrecords = array(); $hostrecords[] = array( "hostname" => "ns1", "type" => "A", "address" => "192.168.0.1", ); $hostrecords[] = array( "hostname" => "ns2", "type" => "A", "address" => "192.168.0.2", ); return $hostrecords; } // 保存DNS解析记录修改 function west263_SaveDNS($params) { foreach ($params["dnsrecords"] AS $key=>$values) { $hostname = $values["hostname"]; // 主机名 $type = $values["type"]; // 记录类型 $address = $values["address"]; // 解析值 // 输入你的代码 } $values["error"] = $error; return $values; } // 注册域名 function west263_RegisterDomain($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 域名转入 function west263_TransferDomain($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 域名续费 function west263_RenewDomain($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 获取联系人信息 function west263_GetContactDetails($params) { // 输入你的代码 return $values; } // 保存联系人信息 function west263_SaveContactDetails($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 获取转出密码 function west263_GetEPPCode($params) { // 输入你的代码 $values["eppcode"] = $eppcode; $values["error"] = $error; return $values; } // 注册域名服务器 function west263_RegisterNameserver($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 修改域名服务器 function west263_ModifyNameserver($params) { // 输入你的代码 $values["error"] = $error; return $values; } // 删除域名服务器 function west263_DeleteNameserver($params) { // 输入你的代码 $values["error"] = $error; return $values; } ?>
看上去函数比较多,但实际上需要用到的没几个,比较重要的几个函数是:
- west263_getConfigArray:接口配置项,主要用于设置西数API用户名、安全邮箱、API密码,需要的类型仅text和password两种,在以上代码中例举了所有支持的类型。
- west263_RegisterDomain:注册域名功能
- west263_RenewDomain:域名续费
- west263_GetNameservers:获取西数DNS
- west263_SaveNameservers:保存DNS设置到西数
- west263_GetDNS:获取西数解析记录
- west263_SaveDNS:保存解析记录到西数
注意每个函数的$params参数,可提供许多有用的信息:
获取在west263_getConfigArray中定义的变量,为了避免与系统默认变量名冲突,我首字母大写了。
$username = $params["Username"]; $password = $params["Password"];
域名名称与后缀:
$sld = $params['sld']; //域名名称 $tld = $params['tld']; //域名后缀,注意不带前面的点
完整的域名为:
$domain = $params['sld'] . '.' . $params['tld'];
或:
$domain = $params['domain'];
注册人信息:
$RegistrantFirstName = $params["firstname"]; // 名字 $RegistrantLastName = $params["lastname"]; // 姓 $RegistrantAddress1 = $params["address1"]; // 地址1 $RegistrantAddress2 = $params["address2"]; // 地址2 $RegistrantCity = $params["city"]; // 城市 $RegistrantStateProvince = $params["state"]; // 省 $RegistrantPostalCode = $params["postcode"]; //邮编 $RegistrantCountry = $params["country"]; //国家 $RegistrantEmailAddress = $params["email"]; // 邮箱 $RegistrantPhone = $params["phonenumber"]; // 电话号码
最后,我们考虑到一些域名注册商提供独立控制面板,并且可以通过API登录,这样就可以在WHMCS这边少写很多代码,直接让用户一键登录面板管理域名。
//客户区显示的内容 function west263_ClientArea($params) { $code = '你要在客户区输出的代码'; return $code; }

相关文章
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02