本文整理汇总了PHP中Varien_Http_Adapter_Curl::getErrno方法的典型用法代码示例。如果您正苦于以下问题:PHP Varien_Http_Adapter_Curl::getErrno方法的具体用法?PHP Varien_Http_Adapter_Curl::getErrno怎么用?PHP Varien_Http_Adapter_Curl::getErrno使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Varien_Http_Adapter_Curl
的用法示例。
在下文中一共展示了Varien_Http_Adapter_Curl::getErrno方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _call
/**
* Make a call to Payment Bridge service with given request parameters
*
* @param array $request
* @return array
* @throws Mage_Core_Exception
*/
protected function _call(array $request)
{
$response = null;
$debugData = array('request' => $request);
try {
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getPbridgeEndpoint(), '1.1', array(), $this->_prepareRequestParams($request));
$response = $http->read();
$http->close();
} catch (Exception $e) {
$debugData['result'] = array('error' => $e->getMessage(), 'code' => $e->getCode());
$this->_debug($debugData);
throw $e;
}
$this->_debug($response);
if ($response) {
$response = preg_split('/^\\r?$/m', $response, 2);
$response = Mage::helper('core')->jsonDecode(trim($response[1]));
$debugData['result'] = $response;
$this->_debug($debugData);
if ($http->getErrno()) {
Mage::logException(new Exception(sprintf('Payment Bridge CURL connection error #%s: %s', $http->getErrno(), $http->getError())));
Mage::throwException(Mage::helper('enterprise_pbridge')->__('Unable to communicate with Payment Bridge service.'));
}
if (isset($response['status']) && $response['status'] == 'Success') {
$this->_response = $response;
return true;
}
}
$this->_handleError($response);
$this->_response = $response;
return false;
}
示例2: call
/**
* Do the API call
*
* @param string $methodName
* @param array $request
* @return array
* @throws Mage_Core_Exception
*/
public function call($methodName, array $request)
{
$request = $this->_addMethodToRequest($methodName, $request);
$eachCallRequest = $this->_prepareEachCallRequest($methodName);
if ($this->getUseCertAuthentication()) {
if ($key = array_search('SIGNATURE', $eachCallRequest)) {
unset($eachCallRequest[$key]);
}
}
$request = $this->_exportToRequest($eachCallRequest, $request);
$debugData = array('url' => $this->getApiEndpoint(), $methodName => $request);
try {
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30, 'verifypeer' => $this->_config->verifyPeer);
if ($this->getUseProxy()) {
$config['proxy'] = $this->getProxyHost() . ':' . $this->getProxyPort();
}
if ($this->getUseCertAuthentication()) {
$config['ssl_cert'] = $this->getApiCertificate();
}
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiEndpoint(), '1.1', $this->_headers, $this->_buildQuery($request));
$response = $http->read();
} catch (Exception $e) {
$debugData['http_error'] = array('error' => $e->getMessage(), 'code' => $e->getCode());
$this->_debug($debugData);
throw $e;
}
$response = preg_split('/^\\r?$/m', $response);
$response = trim(end($response));
$response = $this->_deformatNVP($response);
$debugData['response'] = $response;
$this->_debug($debugData);
$response = $this->_postProcessResponse($response);
// handle transport error
if ($http->getErrno()) {
Mage::logException(new Exception(sprintf('PayPal NVP CURL connection error #%s: %s', $http->getErrno(), $http->getError())));
$http->close();
Mage::throwException(Mage::helper('paypal')->__('Unable to communicate with the PayPal gateway.'));
}
// cUrl resource must be closed after checking it for errors
$http->close();
if (!$this->_validateResponse($methodName, $response)) {
Mage::logException(new Exception(Mage::helper('paypal')->__("PayPal response hasn't required fields.")));
Mage::throwException(Mage::helper('paypal')->__('There was an error processing your order. Please contact us or try again later.'));
}
$this->_callErrors = array();
if ($this->_isCallSuccessful($response)) {
if ($this->_rawResponseNeeded) {
$this->setRawSuccessResponseData($response);
}
return $response;
}
$this->_handleCallErrors($response);
return $response;
}
示例3: _post
/**
* Post a request, note that for a HTTPS URL no port is required
*
* @param string $url
* @param string $path
* @param array $params
* @return mixed
*/
protected function _post($url, $timeout, $dataToSend)
{
$config = array('timeout' => 30);
$this->_http->setConfig($config);
$this->_http->write(Zend_Http_Client::POST, $url, '1.1', array(), $dataToSend);
$response = $this->_http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($this->_http->getErrno()) {
$this->_http->close();
$this->setError($this->_http->getErrno() . ':' . $this->_http->getError());
return false;
}
$this->_http->close();
return $response;
}
示例4: makeHttpPostRequest
/**
* Send a HTTP Post request
*
* @param string $url
* @param array $data = array
* @return false|string
*/
public function makeHttpPostRequest($url, array $data = array())
{
if (!$this->hasValidCurlMethods()) {
foreach ($data as $key => $value) {
$data[$key] = urlencode($key) . '=' . urlencode($value);
}
$body = implode('&', $data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_USERAGENT, self::CURL_USERAGENT);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (strpos($url, 'https://') !== false) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
$response = curl_exec($ch);
if (curl_errno($ch) || curl_error($ch)) {
throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', curl_errno($ch), curl_error($ch)));
}
curl_close($ch);
return $response;
}
$curl = new Varien_Http_Adapter_Curl();
$curl->setConfig(array('verifypeer' => strpos($url, 'https://') !== false, 'header' => true, 'timeout' => 15, 'referrer' => Mage::helper('wordpress')->getBaseUrl('wp-login.php')));
$curl->addOption(CURLOPT_FOLLOWLOCATION, false);
$curl->addOption(CURLOPT_USERAGENT, self::CURL_USERAGENT);
$curl->addOption(CURLOPT_REFERER, true);
$curl->write(Zend_Http_Client::POST, $url, '1.1', array('Expect:'), $data);
$response = $curl->read();
if ($curl->getErrno() || $curl->getError()) {
throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', $curl->getErrno(), $curl->getError()));
}
$curl->close();
return $response;
}
示例5: makeHttpPostRequest
/**
* Send a HTTP Post request
*
* @param string $url
* @param array $data = array
* @return false|string
*/
public function makeHttpPostRequest($url, array $data = array())
{
if (!$this->hasValidCurlMethods()) {
return $this->_makeLegacyHttpPostRequest($url, $data);
}
$curl = new Varien_Http_Adapter_Curl();
$curl->setConfig(array('verifypeer' => strpos($url, 'https://') !== false, 'header' => true, 'timeout' => 15, 'referrer' => Mage::helper('wordpress')->getBaseUrl('wp-login.php')));
$curl->addOption(CURLOPT_FOLLOWLOCATION, false);
$curl->addOption(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$curl->write(Zend_Http_Client::POST, $url, '1.1', array(), $data);
$response = $curl->read();
if ($curl->getErrno() || $curl->getError()) {
throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', $curl->getErrno(), $curl->getError()));
}
$curl->close();
return $response;
}
示例6: call
/**
* Function to perform the API call to PayPal using API signature
*
* @param $methodName string is name of API method.
* @param $nvpArr array NVP params array
* @return array|boolean an associtive array containing the response from the server or false in case of error.
*/
public function call($methodName, array $nvpArr)
{
$nvpArr = array_merge(array('METHOD' => $methodName, 'VERSION' => $this->getVersion(), 'USER' => $this->getApiUserName(), 'PWD' => $this->getApiPassword(), 'SIGNATURE' => $this->getApiSignature()), $nvpArr);
$nvpReq = '';
foreach ($nvpArr as $k => $v) {
$nvpReq .= '&' . $k . '=' . urlencode($v);
}
$nvpReq = substr($nvpReq, 1);
if ($this->getDebug()) {
$debug = Mage::getModel('paypal/api_debug')->setApiEndpoint($this->getApiEndpoint())->setRequestBody($nvpReq)->save();
}
$http = new Varien_Http_Adapter_Curl();
$config = array();
if ($this->getUseProxy()) {
$config['proxy'] = $this->getProxyHost() . ':' . $this->getProxyPort();
}
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiEndpoint(), '1.1', array(), $nvpReq);
$response = $http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($this->getDebug()) {
$debug->setResponseBody($response)->save();
}
$nvpReqArray = $this->deformatNVP($nvpReq);
$this->getSession()->setNvpReqArray($nvpReqArray);
if ($http->getErrno()) {
$http->close();
$this->setError(array('type' => 'CURL', 'code' => $http->getErrno(), 'message' => $http->getError()));
$this->setRedirectUrl($this->getApiErrorUrl());
return false;
}
$http->close();
//converting NVPResponse to an Associative Array
$nvpResArray = $this->deformatNVP($response);
$this->getSession()->setLastCallMethod($methodName)->setResHash($nvpResArray);
$ack = strtoupper($nvpResArray['ACK']);
if ($ack == 'SUCCESS') {
$this->unsError();
return $nvpResArray;
}
$errorArr = array('type' => 'API', 'ack' => $ack);
if (isset($nvpResArray['VERSION'])) {
$errorArr['version'] = $nvpResArray['VERSION'];
}
if (isset($nvpResArray['CORRELATIONID'])) {
$errorArr['correlation_id'] = $nvpResArray['CORRELATIONID'];
}
for ($i = 0; isset($nvpResArray['L_SHORTMESSAGE' . $i]); $i++) {
$errorArr['code'] = $nvpResArray['L_ERRORCODE' . $i];
$errorArr['short_message'] = $nvpResArray['L_SHORTMESSAGE' . $i];
$errorArr['long_message'] = $nvpResArray['L_LONGMESSAGE' . $i];
}
$this->setError($errorArr);
$this->setRedirectUrl($this->getApiErrorUrl());
return false;
}
示例7: postRequest
public function postRequest(array $proArr)
{
$proArr = array_merge(array('PARTNER' => $this->getPartner(), 'USER' => $this->getApiUser(), 'VENDOR' => $this->getApiVendor(), 'PWD' => $this->getApiPassword(), 'TRXTYPE' => $this->getTrxtype(), 'REQUEST_ID' => $this->_generateRequestId()), $proArr);
$proReq = '';
foreach ($proArr as $k => $v) {
//payflow gateway doesn't allow urlencoding.
//$proReq .= '&'.$k.'='.urlencode($v);
$proReq .= '&' . $k . '=' . $v;
}
$proReq = substr($proReq, 1);
if ($this->getDebug()) {
$debug = Mage::getModel('paypaluk/api_debug')->setRequestBody($proReq)->save();
}
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiUrl(), '1.1', array(), $proReq);
$response = $http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($this->getDebug()) {
$debug->setResponseBody($response)->save();
}
if ($http->getErrno()) {
$http->close();
$this->setError(array('type' => 'CURL', 'code' => $http->getErrno(), 'message' => $http->getError()));
$this->setRedirectUrl($this->getApiErrorUrl());
return false;
}
$http->close();
$result = Mage::getModel('paypaluk/api_result');
$valArray = $this->deformatNVP($response);
foreach ($valArray as $k => $v) {
$result->setData(strtolower($k), $v);
}
$result->setResultCode($result->getResult())->setRespmsg($result->getRespmsg());
/*
$client = new Varien_Http_Client();
$uri = $this->getApiUrl();
$client->setUri($uri)
->setConfig(array(
'maxredirects'=>5,
'timeout'=>30,
))
->setMethod(Zend_Http_Client::POST)
->setParameterPost($proArr)
->setHeaders('X-VPS-VIT-CLIENT-CERTIFICATION-ID: 33baf5893fc2123d8b191d2d011b7fdc')
->setHeaders('X-VPS-Request-ID: ' . $this->_generateRequestId())
->setHeaders('X-VPS-CLIENT-TIMEOUT: ' . $this->_clientTimeout)
->setUrlEncodeBody(false);
$result = Mage::getModel('paypaluk/api_result');
try {
$response = $client->request();
$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());
if ($this->getDebug()) {
$debug->setResponseBody($response)
->save();
}
} catch (Exception $e) {
$result->setResultCode(-1)
->setRespmsg($e->getMessage());
}
*/
return $result;
}
示例8: _call
protected function _call(Varien_Object $payment)
{
if ($this->getDebug()) {
$writer = new Zend_Log_Writer_Stream($this->getLogPath());
$logger = new Zend_Log($writer);
$logger->info("entering _call()");
}
// Generate any needed values
// Create expiry dat in format "MM/YY"
$date_expiry = str_pad($payment->getCcExpMonth(), 2, '0', STR_PAD_LEFT) . '/' . substr($payment->getCcExpYear(), 2, 2);
$transaction_id = $payment->getOrder()->getIncrementId();
$messageTimestamp = date('YdmHis000000+000', time());
if ($this->getDebug()) {
$logger->info(var_export($payment->getOrder()->getData(), true));
}
// Build the XML request
$doc = new SimpleXMLElement('<NABTransactMessage></NABTransactMessage>');
$messageInfo = $doc->addChild('MessageInfo');
$messageInfo->addChild('messageID', substr(md5($transaction_id . $messageTimestamp), 0, 30));
$messageInfo->addChild('messageTimestamp', htmlentities($messageTimestamp));
$messageInfo->addChild('timeoutValue', htmlentities('60'));
$messageInfo->addChild('apiVersion', htmlentities('xml-4.2'));
$merchantInfo = $doc->addChild('MerchantInfo');
$merchantInfo->addChild('merchantID', htmlentities($this->getUsername()));
$merchantInfo->addChild('password', htmlentities($this->getPassword()));
$doc->addChild('RequestType', 'Payment');
// Currently Nab only allows one transaction per request
$txnList = $doc->addChild('Payment')->addChild('TxnList');
$txnList->addAttribute('count', '1');
//htmlentities($transaction_id)
$txn = $txnList->addChild('Txn');
$txn->addAttribute('ID', '1');
// Currently must be set to "1"
$txn->addChild('txnType', '0');
// Set to "0" for payment
$txn->addChild('txnSource', '23');
// Set to "23" for SecureXML
$txn->addChild('amount', htmlentities($this->getAmount() * 100));
// In cents
$txn->addChild('currency', htmlentities($payment->getOrder()->getBaseCurrencyCode()));
$txn->addChild('purchaseOrderNo', htmlentities($transaction_id));
$cc = $txn->addChild('CreditCardInfo');
$cc->addChild('cardNumber', htmlentities($payment->getCcNumber()));
$cc->addChild('cvv', htmlentities($payment->getCcCid()));
$cc->addChild('expiryDate', htmlentities($date_expiry));
$xml = $doc->asXML();
// DEBUG
if ($this->getDebug()) {
$logger->info($xml);
}
// Send the data via HTTP POST and get the response
$http = new Varien_Http_Adapter_Curl();
$http->setConfig(array('timeout' => 30));
$http->write(Zend_Http_Client::POST, $this->getGatewayUrl(), '1.1', array(), $xml);
$response = $http->read();
if ($http->getErrno()) {
$http->close();
$this->setError(array('message' => $http->getError()));
return false;
}
// DEBUG
if ($this->getDebug()) {
$logger->info($response);
}
$http->close();
// Strip out header tags
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
// Parse the XML object
$xmlObj = simplexml_load_string($response);
// Build an associative array with returned values
$result = array();
$result['Status'] = array();
$result['Payment'] = array('TxnList' => array('Txn' => array()));
$xpath = $xmlObj->xpath('/NABTransactMessage/Status/statusCode');
$result['Status']['statusCode'] = $xpath !== false && isset($xpath[0]) ? (string) $xpath[0] : '';
$xpath = $xmlObj->xpath('/NABTransactMessage/Status/statusDescription');
$result['Status']['statusDescription'] = $xpath !== false && isset($xpath[0]) ? (string) $xpath[0] : '';
$xpath = $xmlObj->xpath('/NABTransactMessage/Payment/TxnList/Txn/approved');
$result['Payment']['TxnList']['Txn']['approved'] = $xpath !== false && isset($xpath[0]) ? (string) $xpath[0] : '';
$xpath = $xmlObj->xpath('/NABTransactMessage/Payment/TxnList/Txn/responseCode');
$result['Payment']['TxnList']['Txn']['responseCode'] = $xpath !== false && isset($xpath[0]) ? (string) $xpath[0] : '';
$xpath = $xmlObj->xpath('/NABTransactMessage/Payment/TxnList/Txn/responseText');
$result['Payment']['TxnList']['Txn']['responseText'] = $xpath !== false && isset($xpath[0]) ? (string) $xpath[0] : '';
return $result;
}
示例9: _callCapture
/**
*
*/
protected function _callCapture(Varien_Object $payment)
{
if ($this->getDebug()) {
$writer = new Zend_Log_Writer_Stream($this->getLogPath());
$logger = new Zend_Log($writer);
$logger->info('entering _call()');
$logger->info('identificacao: ' . $this->getConfigData('codigo_gateway'));
$logger->info('modulo: ' . $this->_modulo);
$logger->info('ambiente: ' . $this->getConfigData('ambiente'));
$logger->info('tid: ' . $payment->getCcTransId());
}
// Generate any needed values
$nvpArr = array('identificacao' => $this->getConfigData('codigo_gateway'), 'operacao' => 'Captura', 'modulo' => $this->_modulo, 'ambiente' => $this->getConfigData('ambiente'), 'tid' => $payment->getCcTransId());
if ($this->getDebug()) {
$logger->info(var_export($payment->getOrder()->getData(), TRUE));
}
$nvpReq = '';
foreach ($nvpArr as $k => $v) {
$nvpReq .= '&' . $k . '=' . urlencode($v);
}
$nvpReq = substr($nvpReq, 1);
// DEBUG
if ($this->getDebug()) {
$logger->info($nvpReq);
}
// Send the data via HTTP POST and get the response
$http = new Varien_Http_Adapter_Curl();
$http->setConfig(array('timeout' => 30));
$http->write(Zend_Http_Client::POST, $this->getGatewayUrl(), '1.1', array(), $nvpReq);
$response = $http->read();
if ($http->getErrno()) {
$http->close();
$this->setError(array('message' => $http->getError()));
return false;
}
// DEBUG
if ($this->getDebug()) {
$logger->info($response);
}
$http->close();
// Strip out header tags
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
// Parse the XML object
$xmlObj = simplexml_load_string($response);
// Build an associative array with returned values
$result = array();
$xpath = $xmlObj->xpath('/ars');
$result['ars'] = $xpath !== FALSE ? $xpath[0] : '';
$xpath = $xmlObj->xpath('/tid');
$result['tid'] = $xpath !== FALSE ? $xpath[0] : '';
$xpath = $xmlObj->xpath('/lr');
$result['lr'] = $xpath !== FALSE ? $xpath[0] : '';
$xpath = $xmlObj->xpath('/cap');
$result['cap'] = $xpath !== FALSE ? $xpath[0] : '';
$xpath = $xmlObj->xpath('/free');
$result['free'] = $xpath !== FALSE ? $xpath[0] : '';
return $result;
}
示例10: call
/**
* Do the API call
*
* @param string $methodName
* @param array $request
* @return array
* @throws Mage_Core_Exception
*/
public function call($methodName, array $request)
{
$request['method'] = $methodName;
$request = $this->_exportToRequest($this->_eachCallRequest, $request);
if ($this->getDebug()) {
$requestDebug = $request;
foreach ($this->_debugReplacePrivateDataKeys as $key) {
if (isset($request[$key])) {
$requestDebug[$key] = '***';
}
}
$debug = Mage::getModel('paypal/api_debug')->setApiEndpoint($this->getApiEndpoint())->setRequestBody(var_export($requestDebug, 1))->save();
}
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
if ($this->getUseProxy()) {
$config['proxy'] = $this->getProxyHost() . ':' . $this->getProxyPort();
}
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiEndpoint(), '1.1', array(), http_build_query($request));
$response = $http->read();
$http->close();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
$response = $this->_deformatNVP($response);
if ($this->getDebug()) {
$debug->setResponseBody(var_export($response, 1))->save();
}
// handle transport error
if ($http->getErrno()) {
Mage::logException(new Exception(sprintf('PayPal NVP CURL connection error #%s: %s', $http->getErrno(), $http->getError())));
Mage::throwException(Mage::helper('paypal')->__('Unable to communicate with PayPal gateway.'));
}
$ack = strtoupper($response['ACK']);
$this->_callWarnings = array();
if ($ack == 'SUCCESS' || $ack == 'SUCCESSWITHWARNING') {
// collect warnings
if ($ack == 'SUCCESSWITHWARNING') {
for ($i = 0; isset($response["L_ERRORCODE{$i}"]); $i++) {
$this->_callWarnings[] = $response["L_ERRORCODE{$i}"];
}
}
return $response;
}
// handle logical errors
$errors = array();
for ($i = 0; isset($response["L_ERRORCODE{$i}"]); $i++) {
$longMessage = isset($response["L_LONGMESSAGE{$i}"]) ? preg_replace('/\\.$/', '', $response["L_LONGMESSAGE{$i}"]) : '';
$shortMessage = preg_replace('/\\.$/', '', $response["L_SHORTMESSAGE{$i}"]);
$errors[] = $longMessage ? sprintf('%s (#%s: %s).', $longMessage, $response["L_ERRORCODE{$i}"], $shortMessage) : sprintf('#%s: %s.', $response["L_ERRORCODE{$i}"], $shortMessage);
}
if ($errors) {
$errors = implode(' ', $errors);
$e = new Exception(sprintf('PayPal NVP gateway errors: %s Corellation ID: %s. Version: %s.', $errors, isset($response['CORRELATIONID']) ? $response['CORRELATIONID'] : '', isset($response['VERSION']) ? $response['VERSION'] : ''));
Mage::logException($e);
Mage::throwException(Mage::helper('paypal')->__('PayPal geteway rejected request. %s', $errors));
}
return $response;
}
示例11: call
/**
* Do the API call
*
* @param string $methodName
* @param array $request
* @return array
* @throws Mage_Core_Exception
*/
public function call($methodName, array $request)
{
$request = $this->_addMethodToRequest($methodName, $request);
$eachCallRequest = $this->_prepareEachCallRequest($methodName);
$request = $this->_exportToRequest($eachCallRequest, $request);
$debugData = array('url' => $this->getApiEndpoint(), $methodName => $request);
try {
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
if ($this->getUseProxy()) {
$config['proxy'] = $this->getProxyHost() . ':' . $this->getProxyPort();
}
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiEndpoint(), '1.1', array(), $this->_buildQuery($request));
$response = $http->read();
} catch (Exception $e) {
$debugData['http_error'] = array('error' => $e->getMessage(), 'code' => $e->getCode());
$this->_debug($debugData);
throw $e;
}
$http->close();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
$response = $this->_deformatNVP($response);
$debugData['response'] = $response;
$this->_debug($debugData);
// handle transport error
if ($http->getErrno()) {
Mage::logException(new Exception(sprintf('PayPal NVP CURL connection error #%s: %s', $http->getErrno(), $http->getError())));
Mage::throwException(Mage::helper('paypal')->__('Unable to communicate with the PayPal gateway.'));
}
$this->_callErrors = array();
if ($this->_isCallSuccessful($response)) {
if ($this->_rawResponseNeeded) {
$this->setRawSuccessResponseData($response);
}
return $response;
}
$this->_handleCallErrors($response);
return $response;
}
示例12: call
/**
* Send params to gateway
*
* @param string $xml
* @return bool | array
*/
public function call($xml)
{
if ($this->getDebug()) {
$debug = AO::getModel('eway/api_debug')->setRequestBody($xml)->save();
}
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiGatewayUrl(), '1.1', array(), $xml);
$response = $http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($this->getDebug()) {
$debug->setResponseBody($response)->save();
}
if ($http->getErrno()) {
$http->close();
$this->setError(array('message' => $http->getError()));
return false;
}
$http->close();
$parsedResArr = $this->parseXmlResponse($response);
if ($parsedResArr['ewayTrxnStatus'] == 'True') {
$this->unsError();
return $parsedResArr;
}
if (isset($parsedResArr['ewayTrxnError'])) {
$this->setError(array('message' => $parsedResArr['ewayTrxnError']));
}
return false;
}
示例13: call
/**
* Making a call to gateway
*
* @param string $requestStr
* @return bool | array
*/
public function call($requestStr)
{
if ($this->getDebugFlag()) {
$debug = Mage::getModel('paybox/api_debug')->setRequestBody($requestStr)->save();
}
$recall = true;
$recallCounter = 0;
while ($recall && $recallCounter < 3) {
$recall = false;
$this->unsError();
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getPayboxUrl($recallCounter), '1.1', array(), $requestStr);
$response = $http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($http->getErrno()) {
$http->close();
if ($this->getDebugFlag()) {
$debug->setResponseBody($response)->save();
}
$this->setError(array('message' => $http->getError()));
return false;
}
$http->close();
$parsedResArr = $this->parseResponseStr($response);
//primary gateway is down, need to recall to backup gateway
if ($parsedResArr['CODEREPONSE'] == '00001' || $parsedResArr['CODEREPONSE'] == '00097' || $parsedResArr['CODEREPONSE'] == '00098') {
$recallCounter++;
$recall = true;
}
}
if ($this->getDebugFlag()) {
$debug->setResponseBody($response)->save();
}
//if backup gateway was down too
if ($recall) {
$this->setError(array('message' => Mage::helper('paybox')->__('Paybox payment gateway is not available right now')));
return false;
}
if ($parsedResArr['CODEREPONSE'] == '00000') {
return $parsedResArr;
}
if (isset($parsedResArr['COMMENTAIRE'])) {
$this->setError(array('message' => $parsedResArr['CODEREPONSE'] . ':' . $parsedResArr['COMMENTAIRE']));
}
return false;
}
示例14: call
/**
* Do the API call
*
* @param string $methodName
* @param array $request
* @return array
* @throws Mage_Core_Exception
*/
public function call($methodName, array $request)
{
$request = $this->_addMethodToRequest($methodName, $request);
$request = $this->_exportToRequest($this->_eachCallRequest, $request);
if ($this->getDebug()) {
$requestDebug = $request;
foreach ($this->_debugReplacePrivateDataKeys as $key) {
if (isset($request[$key])) {
$requestDebug[$key] = '***';
}
}
$debug = Mage::getModel('paypal/api_debug')->setApiEndpoint($this->getApiEndpoint())->setRequestBody(var_export($requestDebug, 1))->save();
}
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => 30);
if ($this->getUseProxy()) {
$config['proxy'] = $this->getProxyHost() . ':' . $this->getProxyPort();
}
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $this->getApiEndpoint(), '1.1', array(), $this->_buildQuery($request));
$response = $http->read();
$http->close();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
$response = $this->_deformatNVP($response);
if ($this->getDebug()) {
$debug->setResponseBody(var_export($response, 1))->save();
}
// handle transport error
if ($http->getErrno()) {
Mage::logException(new Exception(sprintf('PayPal NVP CURL connection error #%s: %s', $http->getErrno(), $http->getError())));
Mage::throwException(Mage::helper('paypal')->__('Unable to communicate with PayPal gateway.'));
}
if ($this->_isCallSuccessful($response)) {
return $response;
}
$this->_handleCallErrors($response);
return $response;
}
示例15: call
/**
* Send parameters to eWay gateway.
*
* @param string $xml
* @param string $url
* @return array|false
*/
protected function call($xml, $url)
{
$http = new Varien_Http_Adapter_Curl();
$config = array('timeout' => Fontis_EwayAu_Helper_Data::DEFAULT_TIMEOUT);
$http->setConfig($config);
$http->write(Zend_Http_Client::POST, $url, Zend_Http_Client::HTTP_1, array(), $xml);
$response = $http->read();
$response = preg_split('/^\\r?$/m', $response, 2);
$response = trim($response[1]);
if ($http->getErrno()) {
$http->close();
$this->setError(array('message' => $http->getErrno() . ' - ' . $http->getError()));
return false;
}
$http->close();
if (($parsedResArr = $this->parseXmlResponse($response)) === false) {
$this->setError(array('message' => 'Invalid response from gateway.'));
return false;
}
if ($parsedResArr['ewayTrxnStatus'] == 'True') {
$this->unsError();
return $parsedResArr;
}
if (isset($parsedResArr['ewayTrxnError'])) {
$this->setError(array('message' => $parsedResArr['ewayTrxnError']));
}
return false;
}