public function sendHttp($url, $connectTimeout = "", $timeout) { // verify that the URL uses a supported protocol. if (strpos($url, "http://") === 0 || strpos($url, "https://") === 0) { //Construct the payload to POST to the url. $data = $this->getRequestXml(); // create a new cURL resource $ch = curl_init($url); // set URL and other appropriate options curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // Execute the request. $result = curl_exec($ch); $succeeded = curl_errno($ch) == 0 ? true : false; // close cURL resource, and free up system resources curl_close($ch); // If Communication was not successful set error result, otherwise if (!$succeeded) { $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8030, CENTINEL_ERROR_CODE_8030_DESC); } // Assert that we received an expected Centinel Message in reponse. if (strpos($result, "<CardinalMPI>") === false) { $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8010, CENTINEL_ERROR_CODE_8010_DESC); } } else { $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8000, CENTINEL_ERROR_CODE_8000_DESC); } $parser = new XMLParser(); $parser->deserializeXml($result); $this->response = $parser->deserializedResponse; }