2015-02-26 3 views
0

Есть ли способ, которым я могу использовать API WHMCS без отображения WHMCS для клиентов и пользователей. Я хочу, чтобы мои скрипты PHP сначала создавали клиент WHMCS, добавляли заказ для клиента, а затем копировали некоторые файлы в каталог клиента. Но я не хочу, чтобы мои клиенты могли входить в их панель WHMCS или даже иметь возможность видеть WHMCSКак использовать API WHMCS без фактического отображения WHMCS?

ответ

2

WHMCS имеет что-то под названием External API, которое поможет вам.

Адрес documentation. Но для того, что вам нужно лет должны сделать это:

Подключение к API

$url = "http://www.yourdomain.com/includes/api.php"; # URL to WHMCS API file goes here 
$username = "Admin"; # Admin username goes here 
$password = "demoxyz"; # Admin password goes here 

Добавить клиента

$postfields = array(); 
$postfields["username"] = $username; 
$postfields["password"] = md5($password); 
$postfields["action"] = "addclient"; 
$postfields["firstname"] = "Test"; 
$postfields["lastname"] = "User"; 
$postfields["companyname"] = "WHMCS"; 
$postfields["email"] = "[email protected]"; 
$postfields["address1"] = "123 Demo Street"; 
$postfields["city"] = "Demo"; 
$postfields["state"] = "Florida"; 
$postfields["postcode"] = "AB123"; 
$postfields["country"] = "US"; 
$postfields["phonenumber"] = "123456789"; 
$postfields["password2"] = "demo"; 
$postfields["customfields"] = base64_encode(serialize(array("1"=>"Google"))); 
$postfields["currency"] = "1"; 

$query_string = ""; 
foreach ($postfields AS $k=>$v) $query_string .= "$k=".urlencode($v)."&"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$jsondata = curl_exec($ch); 
if (curl_error($ch)) die("Connection Error: ".curl_errno($ch).' - '.curl_error($ch)); 
curl_close($ch); 

$arr = json_decode($jsondata); # Decode JSON String 

print_r($arr); # Output XML Response as Array 

Добавить Орден

$postfields = array(); 
$postfields["username"] = $username; 
$postfields["password"] = md5($password); 
$postfields["action"] = "addorder"; 
$postfields["clientid"] = "1"; 
$postfields["pid"] = "1"; 
$postfields["domain"] = "whmcs.com"; 
$postfields["billingcycle"] = "monthly"; 
$postfields["addons"] = "1,3,9"; 
$postfields["customfields"] = base64_encode(serialize(array("1"=>"Google"))); 
$postfields["domaintype"] = "register"; 
$postfields["regperiod"] = "1"; 
$postfields["paymentmethod"] = "mailin"; 

$query_string = ""; 
foreach ($postfields AS $k=>$v) $query_string .= "$k=".urlencode($v)."&"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$jsondata = curl_exec($ch); 
if (curl_error($ch)) die("Connection Error: ".curl_errno($ch).' - '.curl_error($ch)); 
curl_close($ch); 

$arr = json_decode($jsondata); # Decode JSON String 

print_r($arr); # Output XML Response as Array 

Затем вы можете скопировать файлы в каталог клиента. Надеюсь, поможет!