php function call api
<?php // NOTE: This function requires cURL to be available to PHP. function lyyti_apiCall($call_string, $http_method = 'GET', $payload = null) { // Generate the signature based on the API keys $public_key = 'apitesti'; $private_key = 'asdasdasd123'; $timestamp = time(); $signature = hash_hmac( 'sha256', base64_encode($public_key.','.$timestamp.','.$call_string), $private_key ); // Set the required HTTP headers $http_headers = array( 'Accept: application/json; charset=utf-8', 'Authorization: LYYTI-API-V2 public_key='.$public_key.', timestamp='.$timestamp.', signature='.$signature ); // Initialize the cURL connection $curl = curl_init('https://api.lyyti.com/v2/'.$call_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Handle HTTP method and payload if ($http_method != 'GET' && isset($payload)) { if ($http_method == 'PATCH') { $http_headers[] = 'Content-Type: application/merge-patch+json'; } else { $http_headers[] = 'Content-Type: application/json; charset=utf-8'; } if ($http_method == 'POST') { curl_setopt($curl, CURLOPT_POST, true); } else { curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $http_method); } curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($payload)); } // Set the HTTP headers and execute the call curl_setopt($curl, CURLOPT_HTTPHEADER, $http_headers); $result_json = curl_exec($curl); // Check for errors if ($curl_errno = curl_errno($curl)) { return array('curl_error' => array('errno' => $curl_errno, 'message' => curl_strerror($curl_errno))); } curl_close($curl); // Turn the resulting JSON into a PHP associative array and return it $result_array = json_decode($result_json, $assoc = true); return $result_array; } ?>