コード例 #1
0
 public function doRequest($url, $params = array())
 {
     $client = new Zend_Http_Client(trim($url), array());
     if (array_key_exists('raw', $params)) {
         $client->setRawData(json_encode($params['raw']), 'application/json');
     } else {
         $client->setParameterPost($params);
     }
     if (extension_loaded('curl')) {
         $adapter = new Zend_Http_Client_Adapter_Curl();
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, true);
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
         $client->setAdapter($adapter);
     }
     $response = $client->request('POST');
     $res = $response->getBody();
     if ($response->isError()) {
         $this->log("Request fail. Http code : " . $response->getStatus() . ' Message : ' . $res, 'ERROR');
         $this->log("Request data : " . print_r($params, 1), 'ERROR');
         if (array_key_exists('raw', $params)) {
             return $response;
         }
     }
     if (array_key_exists('raw', $params)) {
         return json_decode($res, true);
     }
     $result = null;
     parse_str($res, $result);
     return $result;
 }
コード例 #2
0
ファイル: Observer.php プロジェクト: FranchuCorraliza/magento
 /**
  * Delete content of media/js and media/css folders to refresh with updated compressed/minified js/css content
  * If disabled, the updates are done each time an original file is updated. Can be resource overload on live website.
  * 
  * @param Mage_Core_Model_Observer $observer
  */
 public function regenerateMediaFiles($observer)
 {
     if (Mage::getStoreConfigFlag('uioptimization/general/cronupdate') && (Mage::getStoreConfigFlag('uioptimization/csscompression/enabled') || Mage::getStoreConfigFlag('uioptimization/jscompression/enabled'))) {
         // Clean up media/css and media/js folders and recreate the folders if necessary
         try {
             Mage::getModel('core/design_package')->cleanMergedJsCss();
             Mage::dispatchEvent('clean_media_cache_after');
         } catch (Exception $e) {
             Mage::logException($e);
             return;
         }
         $stores = Mage::app()->getStores();
         foreach ($stores as $id => $v) {
             $url = Zend_Uri_Http::fromString(Mage::app()->getStore($id)->getBaseUrl());
             // Recreate the js and css compressed file by using the normal process
             try {
                 $curl = new Zend_Http_Client_Adapter_Curl();
                 $curl->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
                 $curl->setCurlOption(CURLOPT_SSL_VERIFYHOST, 1);
                 $curl->connect($url->getHost(), $url->getPort(), Mage_Core_Model_Store::isCurrentlySecure());
                 $curl->write(Zend_Http_Client::GET, $url);
                 $curl->close();
                 Mage::log('[Diglin_UIOptimization_Model_Observer] Update media js/css content for the different stores', ZEND_LOG::DEBUG);
             } catch (Exception $e) {
                 Mage::logException($e);
                 return;
             }
         }
     }
 }
コード例 #3
0
 public function __construct()
 {
     $curl = new Zend_Http_Client_Adapter_Curl();
     $curl->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
     $curl->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
     $client = new Zend_Http_Client(null, array('adapter' => $curl));
     parent::__construct(null, $client);
 }
コード例 #4
0
 /**
  * Constructor
  * 
  * @param array $options
  */
 public function __construct(array $options)
 {
     $this->setOptions($options);
     // Force the curl adapter if it's available
     if (extension_loaded('curl')) {
         $adapter = new Zend_Http_Client_Adapter_Curl();
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
         //$adapter->setCurlOption(CURLOPT_VERBOSE, false);
         $this->getHttpClient()->setAdapter($adapter);
     }
     $this->getHttpClient()->setConfig(array('timeout' => 15));
 }
コード例 #5
0
ファイル: Service.php プロジェクト: sagmahajan/aswan_release
 public function __construct()
 {
     $curl = new Zend_Http_Client_Adapter_Curl();
     $curl->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
     $curl->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
     /*$curl->setCurlOption(CURLOPT_FOLLOWLOCATION,true);
       $curl->setCurlOption(CURLOPT_PROTOCOLS,array(
           CURLPROTO_HTTP | CURLPROTO_HTTPS
       ));
       $curl->setCurlOption(CURLOPT_REDIR_PROTOCOLS,array(
           CURLPROTO_HTTP | CURLPROTO_HTTPS
       ));
       $curl->setCurlOption(CURLOPT_MAXREDIRS,30);*/
     $client = new Zend_Http_Client(null, array('adapter' => $curl));
     parent::__construct(null, $client);
 }
コード例 #6
0
 /**
  * Get Zend_Http_Client with curl based adapter if
  * there is no openssl extension and curl extension is loaded
  * Returns Zend_Http_Client with default adapter otherwise
  * (so if there is a openssl extension, or non of ssl extension is loaded)
  *
  * @param bool $curlAllowAnyCertificate Should curl allow to connect using ssl without checking peer's certificate and host
  * @return Zend_Http_Client
  */
 public static function factoryGetZendHttpClient($curlAllowAnyCertificate = false)
 {
     $oZendHttpClient = new Zend_Http_Client();
     $aSslExtensions = self::getAvailableSSLExtensions();
     // get empty array if false
     $aSslExtensions = $aSslExtensions ? $aSslExtensions : array();
     $hasCurl = in_array('curl', $aSslExtensions);
     $hasOpenssl = in_array('openssl', $aSslExtensions);
     if ($hasCurl && !$hasOpenssl) {
         $oAdapter = new Zend_Http_Client_Adapter_Curl();
         $oAdapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
         // This CA file is also used in OA_XML_RPC_Client
         $oAdapter->setCurlOption(CURLOPT_CAINFO, MAX_PATH . '/etc/curl-ca-bundle.crt');
         if ($curlAllowAnyCertificate) {
             // Change curl option to turn off checking peer's host
             $oAdapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
         }
         $oZendHttpClient->setAdapter($oAdapter);
     }
     return $oZendHttpClient;
 }
コード例 #7
0
 protected function _getAdapter()
 {
     $email = $this->getHelper()->getAdminEmail();
     $apiKey = $this->getHelper()->getAdminApiKey();
     if (!$email && !$apiKey) {
         $this->throwException($this->getHelper()->__('Error Freshdesk email or API key'));
     }
     if ($apiKey) {
         $username = $apiKey;
         $password = self::DEFAULT_PASSWORD;
     } else {
         $username = $email;
         $password = $this->getHelper()->getPassword();
         if (!$password) {
             $this->throwException($this->getHelper()->__('Error Freshdesk password'));
         }
     }
     $adapter = new Zend_Http_Client_Adapter_Curl();
     $adapter->setCurlOption(CURLOPT_POST, true);
     $adapter->setCurlOption(CURLOPT_USERPWD, $username . ':' . $password);
     $adapter->setCurlOption(CURLOPT_RETURNTRANSFER, true);
     $adapter->setCurlOption(CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 0);
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, 0);
     return $adapter;
 }
コード例 #8
0
 /**
  * @param Enlight_Config $config
  * @see https://github.com/paypal/sdk-core-php
  * @return Zend_Http_Client_Adapter_Curl|Zend_Http_Client_Adapter_Socket
  */
 public static function createAdapterFromConfig($config)
 {
     $curl = $config->get('paypalCurl', true);
     $sslVersion = $config->get('paypalSslVersion', 0);
     $timeout = $config->get('paypalTimeout') ?: 60;
     $userAgent = 'Shopware/' . Shopware::VERSION;
     if ($curl && extension_loaded('curl')) {
         $adapter = new Zend_Http_Client_Adapter_Curl();
         $adapter->setConfig(array('useragent' => $userAgent, 'timeout' => $timeout));
         if (!empty($config->paypalSandbox)) {
             $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
             $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
         }
         $adapter->setCurlOption(CURLOPT_TIMEOUT, $timeout);
         $adapter->setCurlOption(CURLOPT_SSLVERSION, $sslVersion);
         //$adapter->setCurlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
         //$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, 1);
         //$adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
     } else {
         $adapter = new Zend_Http_Client_Adapter_Socket();
         $adapter->setConfig(array('useragent' => $userAgent, 'timeout' => $timeout, 'ssltransport' => $sslVersion > 3 || $sslVersion == 1 ? 'tls' : 'ssl'));
     }
     return $adapter;
 }
コード例 #9
0
ファイル: Dropbox.php プロジェクト: CE-Webmaster/CE-Hub
 /**
  * @return Zend_Http_Client_Adapter_Curl
  */
 protected function _getAdapter()
 {
     $adapter = new Zend_Http_Client_Adapter_Curl();
     #$adapter->setCurlOption(CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, 2);
     $adapter->setCurlOption(CURLOPT_SSLVERSION, 1);
     $sslCiphersuiteList = $this->getSslCiphersuiteList();
     if (null !== $sslCiphersuiteList) {
         $this->set(CURLOPT_SSL_CIPHER_LIST, $sslCiphersuiteList);
     }
     $this->set(CURLOPT_CAINFO, Mage::getBaseDir('lib') . '/mpbackup/dropbox/certs/trusted-certs.crt');
     $this->set(CURLOPT_CAPATH, Mage::getBaseDir('lib') . '/mpbackup/dropbox/certs/');
     if (defined('CURLOPT_PROTOCOLS')) {
         $this->set(CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
     }
     if (defined('CURLOPT_REDIR_PROTOCOLS')) {
         $this->set(CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTPS);
     }
     return $adapter;
 }
コード例 #10
0
ファイル: CurlTest.php プロジェクト: vicfryzel/zf
 public function testSetCurlOptions()
 {
     $adapter = new Zend_Http_Client_Adapter_Curl();
     $adapter->setCurlOption('foo', 'bar')->setCurlOption('bar', 'baz');
     $this->assertEquals(array('curloptions' => array('foo' => 'bar', 'bar' => 'baz')), $this->readAttribute($adapter, '_config'));
 }
コード例 #11
0
ファイル: HeidelBooking.php プロジェクト: nhp/shopware-4
  /**
	 * Do request method
	 *
	 * @param string $url
	 * @param array $params
	 * @return array
	 */
	public function doRequest($url, $params=array(), $doParse = true)/*{{{*/
	{
		$client = new Zend_Http_Client($url, array(
			'useragent' => 'Shopware/' . Shopware()->Config()->Version
		));
		$client->setParameterPost($params);
		if (extension_loaded('curl')) {
			$adapter = new Zend_Http_Client_Adapter_Curl();
			$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
			$adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
			$client->setAdapter($adapter);
		}
		$respone = $client->request('POST');
		$respone = $respone->getBody();

		//$respone = file_get_contents($url . '?' . http_build_query($params, '', '&'));

		$result = null;
    //$respone = str_replace('%2B' , ' ', $respone);
    if ($doParse){
      parse_str($respone, $result);
    } else {
      $result = $respone;
    }
		return $result;
	}/*}}}*/
コード例 #12
0
ファイル: Client.php プロジェクト: nhp/shopware-4
 /**
  * Constructor method
  * 
  * Expects a configuration parameter.
  *
  * @param Enlight_Config $config
  */
 public function __construct($config)
 {
     if(!empty($config->paypalSandbox)) {
         $url = self::URL_SANDBOX;
     } else {
         $url = self::URL_LIVE;
     }
     $this->apiUsername = $config->get('paypalUsername');
     $this->apiPassword = $config->get('paypalPassword');
     $this->apiSignature = $config->get('paypalSignature');
     $this->apiVersion = $config->get('paypalVersion');
     parent::__construct($url, array(
         'useragent' => 'Shopware/' . Shopware()->Config()->Version,
         'timeout' => 5,
     ));
     if (extension_loaded('curl')) {
         $adapter = new Zend_Http_Client_Adapter_Curl();
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
         $adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
         $this->setAdapter($adapter);
     }
 }
コード例 #13
0
ファイル: TicketListener.php プロジェクト: nhp/shopware-4
    /**
     * Returns xml rpc client
     *
     * @return Zend_XmlRpc_Client
     */
    protected function getClient()
    {
    	if($this->client === null) {
    		$this->client = new Zend_XmlRpc_Client($this->serverAddress);
    		if (extension_loaded('curl')) {
				$adapter = new Zend_Http_Client_Adapter_Curl();
				$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
				$adapter->setCurlOption(CURLOPT_SSL_VERIFYHOST, false);
				$this->client->getHttpClient()->setAdapter($adapter);
			}
    	}
        return $this->client;
    }
コード例 #14
0
ファイル: dibs_pw_api.php プロジェクト: jacekelgda/Magento
 /** DIBS API TOOLS END **/
 public function callDibsApi($payment, $amount, $action)
 {
     // We must have HMAC code for every transaction
     if (!($hmacCode = $this->helper_dibs_tools_conf('HMAC'))) {
         Mage::throwException('Error with HMAC code, please check HMAC code in module config');
     }
     // Create and set params for Http curl client
     $httpClient = new Zend_Http_Client();
     $adapter = new Zend_Http_Client_Adapter_Curl();
     $adapter->setCurlOption(CURLOPT_SSLVERSION, 3);
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
     $httpClient->setHeaders(array('Content-Type: text/json'));
     $httpClient->setUri(self::BASE_TRANSACTION_URL . "/{$action}");
     $httpClient->setMethod(Zend_Http_Client::POST);
     $httpClient->setAdapter($adapter);
     // prepare data for request
     $data = array('merchantId' => $this->helper_dibs_tools_conf('mid'), 'amount' => self::api_dibs_round($amount), 'transactionId' => self::getTransactionId($payment->getOrder()->getRealOrderId()));
     // We don't need to include amount in a MAC
     // calculation in a case of Cancel transaction
     if ($action == 'CancelTransaction') {
         unset($data['amount']);
     }
     $data['MAC'] = $this->api_dibs_calcMAC($data, $hmacCode);
     $httpClient->setParameterPost('json', Zend_Json::encode($data));
     // Do request and handle results
     try {
         $response = $httpClient->request();
         $phpNative = Zend_Json::decode($response->getBody());
         $status = $phpNative['status'];
         $message = $phpNative['declineReason'];
     } catch (Exception $e) {
         $message = ":  " . $e->getMessage();
     }
     return array('status' => $status, 'transaction_id' => $data['transactionId'], 'message' => $message);
 }
コード例 #15
0
ファイル: Melli.php プロジェクト: iamtartan/epayment
 public function doVerifyTransaction(array $options = array())
 {
     $this->setOptions($options);
     $this->_checkRequiredOptions(array('reservationnumber', 'merchantcode', 'amount', 'key'));
     $signedData = $this->_signRequest();
     $adapter = new Zend_Http_Client_Adapter_Curl();
     $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
     $client = new Zend_Http_Client(APPLICATION_ENV == 'production' ? $this->_VERIFY : $this->_TEST_VERIFY, array('adapter' => $adapter));
     $client->setMethod(Zend_Http_Client::POST);
     $client->setParameterPost('x_fp_hash', $signedData);
     $client->setParameterPost('x_login', $this->merchantcode);
     $client->setParameterPost('x_amount', $this->amount);
     $client->setParameterPost('x_currency_code', self::CURRENCY);
     $client->setParameterPost('x_fp_sequence', $this->reservationnumber);
     $client->setParameterPost('x_fp_timestamp', $this->x_fp_timestamp);
     $client->setParameterPost('x_description', "ADP");
     $result = $client->request();
     $body = $result->getBody();
     $contents = explode("\r\n", $body);
     preg_match_all('|(?<key>\\w+)=(?<value>\\w+)?&?|', $contents[0], $response);
     $response = array_combine($response['key'], $response['value']);
     if ($this->_validateHash($response) && $response['x_response_code'] == '1') {
         return 1;
     } else {
         return 0;
     }
 }