This API makes certain that license key is valid or not.


To request to server you need to send specific parameters are a, b, api_Key, license_key, post_token and signature. The value of ’a‘ must be "license" and ‘b’ equal "verify".

We send this parameter as "postData" array to server.

$apiKey = '338e7963ffd9137deb18dd002b7deff9';
$apiSecret = '3dabbf055f4fb283724b6664fcd34a8c';
$apiURL = '';
$licenseKey = '74382066405804';

$postData = array(
'a' => 'license',
'b' => 'verify',
'api_key' => apiKey,
'license_key' => licenseKey,
'post_token' => md5(rand(1,500).time()),

Then sort postData descending sort.


Then concatenate all postData element and put them in signature.

foreach($postData as $key => $val) {
if((!is_string($val) && !is_numeric($val))) continue;
$signature .= $val;

An MD5 hash apiSecre and signature, The two values are concatenated and then hashed using the MD5 algorithm, then put MD5 result in signature and add it to postData.

$postData['signature'] = md5($apiSecret.$signature);

A-"function_exists " Function send request to server and determine property of request using curl library .

$request = curl_init($apiURL);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $postData);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($request, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($request, CURLOPT_TIMEOUT, 120);
$responseData = curl_exec($request);
$responseHttpCode = curl_getinfo($request, CURLINFO_HTTP_CODE);


1- if request hasn’t done successfully, mean response code not equal 200 this short message will appears to you.

if(!stristr($httpHeaders[0], '200'))
echo "API Request Failed, HTTP / Error: $httpHeaders[0]";

2- If responseData is empty or not string, this message will appears to you.

echo 'API Request Failed';

3-If responseData is empty or not array or "msg" key of responseData is empty or "type" key of responseData is empty, this message will appear.

if(empty($responseData) || !is_array($responseData) || empty($responseData['msg']) || empty($responseData['type']))
echo 'Invalid Response Data Syntax';

4-If value of "type" element in responseData isn’t equal success or responseData "exception" is empty .the response is "type" and "msg" value.

if($responseData['type'] !== 'success' || empty($responseData['exception'])) {
echo ucfirst($responseData['type']) . ' : ' . $responseData['msg'];

5-New parameter "signature Plus" used to ensure that this responce from license server,if "signature Plus" is equal server "signaturePlus",the responce is as below.

$signaturePlus = md5($postData['signature'].$apiSecret);
if($responseData['signature_plus'] !== $signaturePlus) {
echo 'Response received, an invalid signature plus detected, message not coming from license Server';

6-If type of "responseData" is equal success .the output as show below.

if($responseData['type'] == 'success') {
echo "License verification done, License key is Valid, Active and NOT Expired";
echo "\r\n \r\n";
echo "Response Data in JSON";
echo "\r\n \r\n";
echo json_encode($responseData);
echo "\r\n \r\n";


License verification done, License key is Valid, Active and NOT Expired

Response Data in JSON
{"msg":"License verification done","type":"success","signature_plus":"47380f9ad83470610c843bc01d86094a"}