WHMCS 注册器模块问题

问题描述 投票:0回答:1

实际上,我们正在使用 WHMCS 电子邮件通知模块来销售没有集成注册商的 ccTLD。在这种情况下,每当用户注册域名或保存名称服务器时,电子邮件通知都会向我们发送通知,并且我们根据该电子邮件通知执行该操作。

但是,它不会将名称服务器保存在数据库中,因此用户在名称服务器字段上看到空白,这使得用户对名称服务器更新感到困惑。我们正在尝试通过将名称服务器存储在 WHMCS 数据库中并根据需要获取这些域来解决这个问题。

WHMCS 注册商模块示例: https://github.com/WHMCS/sample-registrar-module/blob/master/modules/registrars/registrarmodule/registrarmodule.php

电子邮件通知模块:(这是我们用于 ccTLD 域名注册的模块,我尝试通过添加粗体代码来保存 NS)

<?php

function email_getConfigArray() {
    $configarray = array(
     "FriendlyName" => array("Type" => "System", "Value"=>"Email Notifications"),
     "Description" => array("Type" => "System", "Value"=>"This module can be used for any TLDs that have no integrated registrar"),
     "EmailAddress" => array( "Type" => "text", "Size" => "40", "Description" => "Enter the email address notifications should be sent to", ),
    );
    return $configarray;
}

function email_GetNameservers($params) {
    return array('ns1'=>'');
}

/**
 * Sends the passed nameservers to the defined email address
 * @param array $params The built array of data to save the nameservers
 */
function email_SaveNameservers($params) {
    global $CONFIG;
    $command = "Save Nameservers";
    $message = <<<EMAIL
Domain: {$params["sld"]}.{$params["tld"]}<br>
Registration Period: {$params["regperiod"]}<br>
Nameserver 1: {$params["ns1"]}<br>
Nameserver 2: {$params["ns2"]}<br>
Nameserver 3: {$params["ns3"]}<br>
Nameserver 4: {$params["ns4"]}<br>
Nameserver 5: {$params["ns5"]}<br>
EMAIL;
    $headers = "MIME-Version: 1.0\r\n";
    $headers.= "Content-type: text/html; charset=" . $CONFIG['Charset'] . "\r\n";
    $headers.= "From: " . $CONFIG["CompanyName"] . " <" . $CONFIG["Email"] . ">\r\n";
    mail($params["EmailAddress"], $command, $message, $headers);
    
    $servername = "localhost";
    $username = "yvqvnhmz_whmc536";
    $password = "3s63)(95pS";
    $dbname = "yvqvnhmz_whmc536";
    
$conn = mysqli_connect($servername, $username, $password, $dbname);

$sql = "INSERT INTO tbldomains (domain, ns1, ns2)
VALUES ('{$params["sld"]}.{$params["tld"]}', '{$params["ns1"]}', '{$params["ns2"]}')";

mysqli_close($conn);

}

function email_RegisterDomain($params) {
    global $CONFIG;
    $command = "Register Domain";
    $message = "Domain: ".$params["sld"].".".$params["tld"]."<br>Registration Period: ".$params["regperiod"]."<br>Nameserver 1: ".$params["ns1"]."<br>Nameserver 2: ".$params["ns2"]."<br>Nameserver 3: ".$params["ns3"]."<br>Nameserver 4: ".$params["ns4"]."<br>RegistrantFirstName: ".$params["firstname"]."<br>RegistrantLastName: ".$params["lastname"]."<br>RegistrantOrganizationName: ".$params["companyname"]."<br>RegistrantAddress1: ".$params["address1"]."<br>RegistrantAddress2: ".$params["address2"]."<br>RegistrantCity: ".$params["city"]."<br>RegistrantStateProvince: ".$params["state"]."<br>RegistrantCountry: ".$params["country"]."<br>RegistrantPostalCode: ".$params["postcode"]."<br>RegistrantPhone: ".$params["phonenumber"]."<br>RegistrantEmailAddress: ".$params["email"]."<br>AdminFirstName: ".$params["adminfirstname"]."<br>AdminLastName: ".$params["adminlastname"]."<br>AdminOrganizationName: ".$params["admincompanyname"]."<br>AdminAddress1: ".$params["adminaddress1"]."<br>AdminAddress2: ".$params["adminaddress2"]."<br>AdminCity: ".$params["admincity"]."<br>AdminStateProvince: ".$params["adminstate"]."<br>AdminCountry: ".$params["admincountry"]."<br>AdminPostalCode: ".$params["adminpostcode"]."<br>AdminPhone: ".$params["adminphonenumber"]."<br>AdminEmailAddress: ".$params["adminemail"]."";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: ".$CONFIG["CompanyName"]." <".$CONFIG["Email"].">\r\n";
    mail($params["EmailAddress"],$command,$message,$headers);
}

function email_TransferDomain($params) {
    global $CONFIG; 
    $command = "Transfer Domain";
    $message = "Domain: ".$params["sld"].".".$params["tld"]."<br>Registration Period: ".$params["regperiod"]."<br>Transfer Secret: ".$params["transfersecret"]."<br>RegistrantFirstName: ".$params["firstname"]."<br>RegistrantLastName: ".$params["lastname"]."<br>RegistrantOrganizationName: ".$params["companyname"]."<br>RegistrantAddress1: ".$params["address1"]."<br>RegistrantAddress2: ".$params["address2"]."<br>RegistrantCity: ".$params["city"]."<br>RegistrantStateProvince: ".$params["state"]."<br>RegistrantCountry: ".$params["country"]."<br>RegistrantPostalCode: ".$params["postcode"]."<br>RegistrantPhone: ".$params["phonenumber"]."<br>RegistrantEmailAddress: ".$params["email"]."";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: ".$CONFIG["CompanyName"]." <".$CONFIG["Email"].">\r\n";
    mail($params["EmailAddress"],$command,$message,$headers);
}

function email_RenewDomain($params) {
    global $CONFIG;
    $command = "Renew Domain";
    $message = "Domain: ".$params["sld"].".".$params["tld"]."<br>Registration Period: ".$params["regperiod"]."";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: ".$CONFIG["CompanyName"]." <".$CONFIG["Email"].">\r\n";
    mail($params["EmailAddress"],$command,$message,$headers);
}
php whmcs
1个回答
0
投票

WHMCS 从未实际存储名称服务器值,而是通过注册商模块的连接 API 集成传递这些值,在该集成中它将远程到达注册商,而注册商负责存储这些数据。

您需要创建一个可由您的注册器模块查询的后端来提供这些值。 WHMCS 本身通过使用分配给域的注册器模块查询远程注册器来填充这些值。

© www.soinside.com 2019 - 2024. All rights reserved.