Jump to content
Sign in to follow this  
mastura

display api get data into table form

Recommended Posts

Hi.. I have been working on this for 4 days now and still not able to find a right solution.
i have the get client data using api to display it in other platform but it displays in array form. Since i am new to coding,
I need it to display in table form . How am i able to do it ?
please help me

here the code applied:

// API Connection Details
$whmcsUrl = "https://domain.com/";

// For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair.
// Learn more at http://docs.whmcs.com/API_Authentication_Credentials
// Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used.
$username = "xxxxxxxxxxxxxxxxxxxxxxx";
$password = "yyyyyyyyyyyyyyyyyyyyyyyyy";

// Set post values
$postfields = array(
    'username' => $username,
    'password' => $password,
    'action' => 'GetClients',
    'responsetype' => 'json',
);

// Call the API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
$response = curl_exec($ch);
if (curl_error($ch)) {
    die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch));
}
curl_close($ch);

// Decode response
$jsonData = json_decode($response, true);

// Dump array structure for inspection
var_dump($jsonData);?>

 

Here is the result: 
image.thumb.png.2e8964ea4f53b556f5ea8ce1a993ae20.png

 

Please help me solve this..Thank you

Share this post


Link to post
Share on other sites
<?

// API Connection Details
$whmcsUrl = "https://domain.com/";

// For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair.
// Learn more at http://docs.whmcs.com/API_Authentication_Credentials
// Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used.
$username = "xxxxxxxxxxxxxxxxxxxxxxx";
$password = "yyyyyyyyyyyyyyyyyyyyyyyyy";

// Set post values
$postfields = array(
    'username' => $username,
    'password' => $password,
    'action' => 'GetClients',
    'responsetype' => 'json',
);

// Call the API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
$response = curl_exec($ch);
if (curl_error($ch)) {
    die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch));
}
curl_close($ch);

// Decode response
$jsonData = json_decode($response, true);

// EDITED BELOW THIS LINE

$table .= <<<HTML
Showing <strong>{$jsonData['numreturned']}</strong> of <strong>{$jsonData['totalresults']}</strong> clients<hr>
<table>
	<tr>
		<th>Client Name</th>
		<th>Email</th>
		<th>Status</th>
	</tr>
HTML;

foreach ($jsonData['clients']['client'] as $v)
{
	$table .= <<<HTML
	<tr>
		<td>{$v['firstname']} {$v['firstname']} {$v['companyname']}</td>
		<td>{$v['email']}</td>
		<td>{$v['status']}</td>
	</tr>
HTML;
}
	
$table .= <<<HTML
</table>
HTML;

echo $table;

This will produce the following:

1833518820_Screenshot2019-05-0901_53_16.png.8a8df9506ebe1e013a20b163833a9023.png

Anyway this is not how you should that. I gave you just an example.

 

Share this post


Link to post
Share on other sites
55 minutes ago, Kian said:

<?

// API Connection Details
$whmcsUrl = "https://domain.com/";

// For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair.
// Learn more at http://docs.whmcs.com/API_Authentication_Credentials
// Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used.
$username = "xxxxxxxxxxxxxxxxxxxxxxx";
$password = "yyyyyyyyyyyyyyyyyyyyyyyyy";

// Set post values
$postfields = array(
    'username' => $username,
    'password' => $password,
    'action' => 'GetClients',
    'responsetype' => 'json',
);

// Call the API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
$response = curl_exec($ch);
if (curl_error($ch)) {
    die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch));
}
curl_close($ch);

// Decode response
$jsonData = json_decode($response, true);

// EDITED BELOW THIS LINE

$table .= <<<HTML
Showing <strong>{$jsonData['numreturned']}</strong> of <strong>{$jsonData['totalresults']}</strong> clients<hr>
<table>
	<tr>
		<th>Client Name</th>
		<th>Email</th>
		<th>Status</th>
	</tr>
HTML;

foreach ($jsonData['clients']['client'] as $v)
{
	$table .= <<<HTML
	<tr>
		<td>{$v['firstname']} {$v['firstname']} {$v['companyname']}</td>
		<td>{$v['email']}</td>
		<td>{$v['status']}</td>
	</tr>
HTML;
}
	
$table .= <<<HTML
</table>
HTML;

echo $table;

This will produce the following:

1833518820_Screenshot2019-05-0901_53_16.png.8a8df9506ebe1e013a20b163833a9023.png

Anyway this is not how you should that. I gave you just an example.

 

heyy..thank you so much ..this works wonder..

but why there is an error/notices prompted at the top of the table?
how do i assign the table variable?

Share this post


Link to post
Share on other sites
 
 
 
2
20 minutes ago, mastura said:

heyy..thank you so much ..this works wonder..

but why there is an error/notices prompted at the top of the table?
how do i assign the table variable?

 

capture.JPG

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Alfarouq Alkhayari
      Hello
       
      I'm trying to update client with the API but I'm getting this error

      "{"result":"error","message":"Identity is required"}"

      The admin user of the API has API Access and Manage API Credentials roles.
      The IP of the server has been added to API IP Access Restriction and the Whitelist 
       
      $ch = curl_init();
                  curl_setopt($ch, CURLOPT_URL, 'https://xxxxxxxxxxx/includes/api.php');
                  curl_setopt($ch, CURLOPT_POST, 1);
                  curl_setopt($ch, CURLOPT_POSTFIELDS,
                      http_build_query(
                          array(
                              'action' => 'UpdateClient',
                              'identifier' => $api_identifier,
                              'secret' => $api_secret,
                              'clientid' => 3,
                              'customfields' => base64_encode(serialize( [
                                  "CR/ID copy" => 'https://xxxxxxxxx.xxx/uploads/?file=xxxxxx',
                              ] )),
                              'responsetype' => 'json',
                          )
                      )
                  );
                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                  $response = curl_exec($ch);
                  curl_close($ch);
       
       
      Thanks.
    • By Waqas Saeed
      I have dreamscape registrar module in my WHMCS. unfortunately, am not able to understand the causes of the following error.  the hosting server is OK with SOAP and have no issues with rest of the SOAP running. I have also spoke to registrar but they are also unable to understand rectify the error. the url is publicly accessible and has no issues with it. 
      Could someone has the similar issue ?
       
       Registrar Error Failed to get domain details: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://soap.secureapi.com.au/wsdl/API-2.0.wsdl' : failed to load external entity "http://soap.secureapi.com.au/wsdl/API-2.0.wsdl"  
    • By Scorpiatus
      Hi there!
      Is there a way to access the variables of a payment gateway?
      With "GetModuleConfigurationParameters" I get the names of the parameters, but not their variables or content.
      If you can help me, that would be great !!
      Thanks in advance!
    • By edherroj
      Hello everyone,
      Real quick, I installed Namecheap API and configured WHMCS to auto register domains  after payment are received.
      I did several test registrations with some fails and other successful. I’m now getting live registrations from my existing customers and payments go smoothly with no issues, customer even receives the purchase invoice and domain registration confirmation, but on Namecheap side things are really  weird.
      Checking on the modules log I see the ‘response’ for the actual transaction and apparently the API is not using the correct command or method to create and register the domains. It just checks for the domain.
      And I say really weird because if I perform a manual registration of the same domain my customer is trying to buy, the registration goes though and it’s updated on my Namecheap account as well. I have to do it a couple of times until it works.
       
      Any suggestions on how to fix this problem or maybe documentation I can check. I contacted Namecheap support team several times but all the say is that the API is using the wrong command and that I should update the code 😞
      Thank you,
      - ED
       
    • By amedeo
      Hi,
      I wrote an PHP utility for importing domains from an old administrative panel. The utility creates new order then confirm it. We were using nicIT for .it domains and ascio for the others tld; all worked fine, A few days ago we added internetbs and now when trying to create the order for .com domains (still managed by ascio) the AddOrder API returns a null response although the order is created and left in 'pending' status. With .it domains still works fine.
      Any idea ? is it possible to get a sort of log where to look for the reason the API call does not work properly ?
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated