public static function execute($parameters) { $curl = curl_init($parameters['server']['scheme'] . '://' . $parameters['server']['host'] . $parameters['server']['path'] . (isset($parameters['server']['query']) ? '?' . $parameters['server']['query'] : '')); $curl_options = array(CURLOPT_PORT => $parameters['server']['port'], CURLOPT_HEADER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_FORBID_REUSE => true, CURLOPT_FRESH_CONNECT => true, CURLOPT_FOLLOWLOCATION => false); if (!empty($parameters['header'])) { $curl_options[CURLOPT_HTTPHEADER] = $parameters['header']; } if (!empty($parameters['certificate'])) { $curl_options[CURLOPT_SSLCERT] = $parameters['certificate']; } if ($parameters['method'] == 'post') { $curl_options[CURLOPT_POST] = true; $curl_options[CURLOPT_POSTFIELDS] = $parameters['parameters']; } curl_setopt_array($curl, $curl_options); $result = curl_exec($curl); $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); list($headers, $body) = explode("\r\n\r\n", $result, 2); if ($http_code == 301 || $http_code == 302) { if (!isset($parameters['redir_counter']) || $parameters['redir_counter'] < 6) { if (!isset($parameters['redir_counter'])) { $parameters['redir_counter'] = 0; } $matches = array(); preg_match('/(Location:|URI:)(.*?)\\n/i', $headers, $matches); $redir_url = trim(array_pop($matches)); $parameters['redir_counter']++; $redir_params = array('url' => $redir_url, 'method' => $parameters['method'], 'redir_counter', $parameters['redir_counter']); $body = \osCommerce\OM\Core\HttpRequest::getResponse($redir_params, 'Curl'); } } return $body; }
public static function execute() { $OSCOM_Cache = Registry::get('Cache'); $result = array('entries' => array()); if ($OSCOM_Cache->read('coreupdate-availablepackages', 360)) { $versions = $OSCOM_Cache->getCache(); } else { $versions = HttpRequest::getResponse(array('url' => 'http://www.oscommerce.com/version/online_merchant/3', 'method' => 'get')); $OSCOM_Cache->write($versions); } $versions_array = explode("\n", $versions); $counter = 0; foreach ($versions_array as $v) { $v_info = explode('|', $v); if (version_compare(OSCOM::getVersion(), $v_info[0], '<')) { $result['entries'][] = array('key' => $counter, 'version' => $v_info[0], 'date' => DateTime::getShort(DateTime::fromUnixTimestamp(DateTime::getTimestamp($v_info[1], 'Ymd'))), 'announcement' => $v_info[2], 'update_package' => isset($v_info[3]) ? $v_info[3] : null); $counter++; } } usort($result['entries'], function ($a, $b) { return version_compare($a['version'], $b['version'], '>'); }); $result['total'] = count($result['entries']); return $result; }
public static function execute($version = null) { if (empty($version)) { $link = CoreUpdate::getAvailablePackageInfo('update_package'); } else { $versions = CoreUpdate::getAvailablePackages(); foreach ($versions['entries'] as $v) { if ($v['version'] == $version) { $link = $v['update_package']; break; } } } $response = HttpRequest::getResponse(array('url' => $link, 'parameters' => 'check=true')); return file_put_contents(OSCOM::BASE_DIRECTORY . 'Work/CoreUpdate/update.phar', $response); }
protected function doExpressCheckoutPayment($parameters) { if (MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_TRANSACTION_SERVER == 'Live') { $api_url = 'https://api-3t.paypal.com/nvp'; } else { $api_url = 'https://api-3t.sandbox.paypal.com/nvp'; } $params = array('VERSION' => $this->_api_version, 'METHOD' => 'DoExpressCheckoutPayment', 'PAYMENTACTION' => MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_TRANSACTION_METHOD == 'Sale' || strlen(MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_API_USERNAME) < 1 ? 'Sale' : 'Authorization', 'BUTTONSOURCE' => 'osCommerce30_Default_EC'); if (strlen(MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_API_USERNAME) > 0) { $params['USER'] = MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_API_USERNAME; $params['PWD'] = MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_API_PASSWORD; $params['SIGNATURE'] = MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_API_SIGNATURE; } else { $params['SUBJECT'] = MODULE_PAYMENT_PAYPAL_EXPRESS_CHECKOUT_SELLER_ACCOUNT; } if (is_array($parameters) && !empty($parameters)) { $params = array_merge($params, $parameters); } $post_string = ''; foreach ($params as $key => $value) { $post_string .= $key . '=' . urlencode(utf8_encode(trim($value))) . '&'; } $post_string = substr($post_string, 0, -1); $response = HttpRequest::getResponse(array('url' => $api_url, 'parameters' => $post_string)); $response_array = array(); parse_str($response, $response_array); if ($response_array['ACK'] != 'Success' && $response_array['ACK'] != 'SuccessWithWarning') { $this->sendDebugEmail(); } return $response_array; }