/** * Sends a request to the Avatax server * * @param int $storeId * @return mixed */ protected function _send($storeId) { /** @var OnePica_AvaTax_Model_Config $config */ $config = Mage::getSingleton('avatax/config')->init($storeId); $connection = $config->getTaxConnection(); $result = null; $message = null; try { $result = $connection->getTax($this->_request); } catch (Exception $exception) { $message = new Message(); $message->setSummary($exception->getMessage()); } if (!isset($result) || !is_object($result) || !$result->getResultCode()) { $actualResult = $result; $result = new Varien_Object(); $result->setResultCode(SeverityLevel::$Exception)->setActualResult($actualResult)->setMessages(array($message)); } $this->_log(OnePica_AvaTax_Model_Source_Logtype::GET_TAX, $this->_request, $result, $storeId, $config->getParams()); if ($result->getResultCode() != SeverityLevel::$Success) { self::$_hasError = true; if (Mage::helper('avatax')->fullStopOnError($storeId)) { Mage::helper('avatax')->addErrorMessage($storeId); } } else { Mage::helper('avatax')->removeErrorMessage(); } return $result; }
/** * Sends a request to the Avatax server * * @param int $storeId * @return mixed */ protected function _send($storeId) { /** @var OnePica_AvaTax_Model_Config $config */ $config = $this->getServiceConfig(); $connection = $config->getTaxConnection(); $result = null; $message = null; try { $result = $connection->getTax($this->_request); } catch (Exception $exception) { $message = new Message(); $message->setSummary($exception->getMessage()); } if (!isset($result) || !is_object($result) || !$result->getResultCode()) { $actualResult = $result; $result = new Varien_Object(); $result->setResultCode(SeverityLevel::$Exception)->setActualResult($actualResult)->setMessages(array($message)); } $this->_log(OnePica_AvaTax_Model_Source_Avatax_Logtype::GET_TAX, $this->_request, $result, $storeId, $config->getParams()); return $result; }
/** * Tries to ping AvaTax service with provided credentials * * @param int $storeId * @return bool|array */ public function ping($storeId = null) { /** @var OnePica_AvaTax_Model_Config $config */ $config = $this->getServiceConfig(); $connection = $config->getTaxConnection(); $result = null; $message = null; try { $result = $connection->ping(); } catch (Exception $exception) { $message = $exception->getMessage(); } if (!isset($result) || !is_object($result) || !$result->getResultCode()) { $actualResult = $result; $result = new Varien_Object(); $result->setResultCode(SeverityLevel::$Exception); $result->setActualResult($actualResult); $result->setMessage($message); } $this->_log(OnePica_AvaTax_Model_Source_Avatax_Logtype::PING, new stdClass(), $result, $storeId, $config->getParams()); return $result->getResultCode() == SeverityLevel::$Success ? true : $result->getMessage(); }
/** * Post request to gateway and return response * * @param Varien_Object $request * @return Varien_Object */ protected function _postRequest(Varien_Object $request) { $debugData = array('request' => $request->getData()); $client = new Varien_Http_Client(); $result = new Varien_Object(); $_config = array('maxredirects' => 5, 'timeout' => 30); $_isProxy = $this->getConfigData('use_proxy', false); if ($_isProxy) { $_config['proxy'] = $this->getConfigData('proxy_host') . ':' . $this->getConfigData('proxy_port'); //http://proxy.shr.secureserver.net:3128', $_config['httpproxytunnel'] = true; $_config['proxytype'] = CURLPROXY_HTTP; } $client->setUri($this->_getTransactionUrl())->setConfig($_config)->setMethod(Zend_Http_Client::POST)->setParameterPost($request->getData())->setHeaders('X-VPS-VIT-CLIENT-CERTIFICATION-ID: 33baf5893fc2123d8b191d2d011b7fdc')->setHeaders('X-VPS-Request-ID: ' . $request->getRequestId())->setHeaders('X-VPS-CLIENT-TIMEOUT: ' . $this->_clientTimeout); try { /** * we are sending request to payflow pro without url encoding * so we set up _urlEncodeBody flag to false */ $response = $client->setUrlEncodeBody(false)->request(); } catch (Exception $e) { $result->setResponseCode(-1)->setResponseReasonCode($e->getCode())->setResponseReasonText($e->getMessage()); $debugData['result'] = $result->getData(); $this->_debug($debugData); throw $e; } $response = strstr($response->getBody(), 'RESULT'); $valArray = explode('&', $response); foreach ($valArray as $val) { $valArray2 = explode('=', $val); $result->setData(strtolower($valArray2[0]), $valArray2[1]); } $result->setResultCode($result->getResult())->setRespmsg($result->getRespmsg()); $debugData['result'] = $result->getData(); $this->_debug($debugData); return $result; }
/** * Convert exception to result * * @param Exception $e * @return Varien_Object */ protected function _convertExceptionToResult($e) { $result = new Varien_Object(); $result->setResultCode(SeverityLevel::$Exception)->setError($e->getMessage()); return $result; }