Documentação já olhada, até mesmo antes de tentar criar o módulo, mas mesmo assim eu não consegui.
Tentei pegar algo aqui do Módulo do WHMSonic, mas sem sucesso.
<?php
// API Version v2.0.5 - 21-12-2012
function whmsonic_ConfigOptions() {
$configarray = array(
"Client Type" => array( "Type" => "dropdown", "Options" => "External,internal","Description" => "Notice: If Internal selected, please set the custom form field under the Custom Fields link, the client must enter cPanel username on the order page, that is also mean the client has already cPanel hosting account on the server. This option will not setup cPanel account! It will setup only radio under the provided cpanel user account."),
"Max Listeners Limit" => array( "Type" => "text", "Size" => "3", ),
"Max BitRate Limit" => array( "Type" => "dropdown", "Options" => "64,128,24,32,48,96"),
"AutoDJ Feature" => array( "Type" => "yesno", "Description" => "If yes, the user will access to AutoDJ features in their cPanel WHMSonic." ),
"Hosting Space" => array( "Type" => "text", "Size" => "25","Description" => "Hosting space is required by external clients only if autodj option is enabled to upload music files. Please enter a limit, ex: 100 = 100MB. Enter only numbers in this field." ),
"Bandwidth Limit" => array( "Type" => "text", "Size" => "25", ),
);
return $configarray;
}
function whmsonic_CreateAccount($params) {
// Get The Package Information
$ctype = $params["configoption1"]; // Client Type
$listeners = $params["configoption2"]; // Max Listeners Limit
$radioip = $params["serverip"];
$bitrate = $params["configoption3"]; // BitRate Limit
$autodj = $params["configoption4"]; // AutoDJ Access - on/off
$hspace = $params["configoption5"]; // Hosting Limit
$bandwidth = $params["configoption6"]; // Bandwidth Limit
// Get The General Information
$serverp = $params["serverpassword"]; // Target Server root password
$connection = $params["serverip"];
$auth = "root:$serverp";
$orderid = $params["serviceid"];
if ($params["serversecure"]=="on") {$serverport="2087"; $ht="https";} else {$serverport="2086"; $ht="http";} // SSL Connection fix
// Get The Client Information
$client_email = $params["clientsdetails"]["email"];
$client_name = $params["clientsdetails"]["firstname"];
if ($params["configoption1"]=="internal") {
$radiousername = $params["customfields"]["cpanel username"];
} else {
// External user, create a custom WHMSonic username & password.
$chars = "abcdefghijkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
$exu = '' ;
while ($i <= 4) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$exu = $exu . $tmp;
$i++;}
$radiousername = "sc_$exu";}
$chars2 = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars2, $num, 1);
$pass = $pass . $tmp;
$i++;
}
// GO
// Update WHMCS db for the username, required for other actions.
$hostpass = encrypt($pass);
$query3 = "UPDATE tblhosting SET username='$radiousername', password='$hostpass' WHERE id='".$params["accountid"]."'";
$result3=mysql_query($query3);
// Update WHMCS db for the username, required for other actions.
$url = "$ht://$connection:$serverport/whmsonic/modules/api.php?";
$data = "cmd=setup&ctype=$ctype&ip=$radioip&bitrate=$bitrate&autodj=$autodj&bw=$bandwidth&limit=$listeners&cemail=$client_email&cname=$client_name&rad_username=$radiousername&pass=$pass&hspace=$hspace";
$ch = curl_init();
curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 59);
curl_setopt($ch, CURLOPT_URL, $url);
$retval = curl_exec($ch);
if (curl_errno($ch)) {
$retval = "CURL Error: ".curl_errno($ch)." - ".curl_error($ch)." - Please check the radioIP in the package module configuration and check the root password in the servers settings of WHMCS.";
}
curl_close($ch);
if ($retval=="Complete") {
$result = "success";
} else {
if (strpos($retval,"Login Attempt Failed!") == true) {$result = "WHMSonic server($radioip) WHM root login failed! The root password is incorrect. Please check your WHMSonic server/connection settings in your script.";
} else {
$result = "$retval";
}}
return $result;
}
function whmsonic_TerminateAccount($params) {
// Details
$connection = $params["serverip"];
$rad_username= $params["username"];
$serverp = $params["serverpassword"]; // Target Server root password
$auth = "root:$serverp";
if ($params["serversecure"]=="on") {$serverport="2087"; $ht="https";} else {$serverport="2086"; $ht="http";} // SSL Connection fix
$url = "$ht://$connection:$serverport/whmsonic/modules/api.php?";
$data = "cmd=terminate&rad_username=$rad_username";
$ch = curl_init();
curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 59);
curl_setopt($ch, CURLOPT_URL, $url);
$retval = curl_exec($ch);
if (curl_errno($ch)) {
$retval = "CURL Error: ".curl_errno($ch)." - ".curl_error($ch);
}
curl_close($ch);
if ($retval=="Complete") {
$result = "success";
} else {
$result = "<br>$retval";
}
return $result;
}
function whmsonic_SuspendAccount($params) {
// Details
$connection = $params["serverip"];
$rad_username= $params["username"];
$serverp = $params["serverpassword"]; // Target Server root password
$auth = "root:$serverp";
if ($params["serversecure"]=="on") {$serverport="2087"; $ht="https";} else {$serverport="2086"; $ht="http";} // SSL Connection fix
$url = "$ht://$connection:$serverport/whmsonic/modules/api.php?";
$data = "cmd=suspend&rad_username=$rad_username";
$ch = curl_init();
curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 59);
curl_setopt($ch, CURLOPT_URL, $url);
$retval = curl_exec($ch);
if (curl_errno($ch)) {
$retval = "CURL Error: ".curl_errno($ch)." - ".curl_error($ch);
}
curl_close($ch);
if ($retval=="Complete") {
$result = "success";
} else {
$result = "<br>$retval";
}
return $result;
}
function whmsonic_UnsuspendAccount($params) {
// Details
$connection = $params["serverip"];
$rad_username= $params["username"];
$serverp = $params["serverpassword"]; // Target Server root password
$auth = "root:$serverp";
if ($params["serversecure"]=="on") {$serverport="2087"; $ht="https";} else {$serverport="2086"; $ht="http";} // SSL Connection fix
$url = "$ht://$connection:$serverport/whmsonic/modules/api.php?";
$data = "cmd=unsuspend&rad_username=$rad_username";
$ch = curl_init();
curl_setopt($ch, CURLAUTH_BASIC, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 59);
curl_setopt($ch, CURLOPT_URL, $url);
$retval = curl_exec($ch);
if (curl_errno($ch)) {
$retval = "CURL Error: ".curl_errno($ch)." - ".curl_error($ch);
}
curl_close($ch);
if ($retval=="Complete") {
$result = "success";
} else {
$result = "<br>$retval";
}
return $result;
}
function whmsonic_ClientArea($params) {
$connection = $params["serverip"];
$code = "<form action=http://$connection/cpanel/ method=post target=_blank><input type=hidden name=ip value=$licenseip><input type=submit value=\"WHMSonic Login\"></form>";
return $code;
}
function whmsonic_AdminLink($params) {
$connection = $params["serverip"];
$code = "<form action=http://$connection:2086/whmsonic/main.php method=post target=_blank><input type=hidden name=username value=\"".$params["serverusername"]."\"><input type=hidden name=password value=\"".$params["serverpassword"]."\"><input type=submit value=\"WHMSonic Root\"></form>";
return $code;
}
?>