/** * Get publisher id * * @param string $email Email * * @return string */ public function getPublisherId($email) { $publisherId = null; $sellerName = \XLite\Core\Config::getInstance()->Company->company_name; $data = array('sellerName' => $sellerName, 'emailAddress' => $email, 'bnCode' => static::BN_CODE); $request = new \XLite\Core\HTTP\Request(static::END_POINT); if (function_exists('curl_version')) { $request->setAdditionalOption(\CURLOPT_SSLVERSION, 1); $curlVersion = curl_version(); if ($curlVersion && $curlVersion['ssl_version'] && 0 !== strpos($curlVersion['ssl_version'], 'NSS')) { $request->setAdditionalOption(\CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); } } $request->body = json_encode($data); $request->verb = 'POST'; $timeStamp = LC_START_TIME . '000'; $authorization = 'FPA ' . static::CLIENT_KEY; $authorization .= ':' . sha1(static::SHARED_SECRET . $timeStamp); $authorization .= ':' . $timeStamp; $request->setHeader('Authorization', $authorization); $request->setHeader('Accept', 'application/json'); $request->setHeader('Content-Type', 'application/json'); $response = $request->sendRequest(); \XLite\Module\CDev\Paypal\Main::addLog('getPublisherId', $response->body); if (201 == $response->code) { $responseData = json_decode($response->body, true); if ($responseData && isset($responseData['publisherId'])) { $publisherId = $responseData['publisherId']; } } return $publisherId; }
/** * Defines if the clean urls can be enabled on the current server environment * * @return boolean */ public function canEnableCleanURL() { $urlToCheck = \XLite::getInstance()->getShopURL() . \XLite::CLEAN_URL_CHECK_QUERY; $request = new \XLite\Core\HTTP\Request($urlToCheck); $request->setAdditionalOption(\CURLOPT_SSL_VERIFYPEER, false); $request->setAdditionalOption(\CURLOPT_SSL_VERIFYHOST, false); $this->curlResponse = $request->sendRequest(); return !$this->isCleanURLEnabled() && $this->curlResponse && in_array($this->curlResponse->code, array(200, 301, 302)); }
/** * Return prepared request object * * @param string $action Action name * @param array $data Request data OPTIONAL * * @return \XLite\Core\HTTP\Request */ protected function getRequest($action, array $data = array()) { $url = $this->getMarketplaceActionURL($action); $data += $this->getRequestCommonData(); $request = new \XLite\Core\HTTP\Request($url); $request->body = $data; if (function_exists('curl_version')) { $request->setAdditionalOption(\CURLOPT_SSLVERSION, 1); $curlVersion = curl_version(); if ($curlVersion && $curlVersion['ssl_version'] && 0 !== strpos($curlVersion['ssl_version'], 'NSS')) { $request->setAdditionalOption(\CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); } } if (in_array($action, static::getLongActions())) { $request->requestTimeout = static::REQUEST_LONG_TTL; } else { $request->requestTimeout = static::REQUEST_TTL; } $this->logInfo($action, 'The "{{url}}" URL requested', array('url' => $url), $data); return $request; }
/** * Returns new request object * * @param string $type Request type * @param array $params Request params * * @return \XLite\Core\HTTP\Request */ protected function createRequest($type, $params) { $this->response = null; $request = new \XLite\Core\HTTP\Request($this->createUrl($type, $params)); if (function_exists('curl_version')) { $request->setAdditionalOption(\CURLOPT_SSLVERSION, 1); $curlVersion = curl_version(); if ($curlVersion && $curlVersion['ssl_version'] && 0 !== strpos($curlVersion['ssl_version'], 'NSS')) { $request->setAdditionalOption(\CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); } } $request->body = $this->prepareParams($type, $params); $request->verb = 'POST'; $request = $this->prepareRequest($request, $type, $params); return $request; }
/** * Get IPN verification status * * @return boolean TRUE if verification status is received */ protected function getIPNVerification() { $ipnRequest = new \XLite\Core\HTTP\Request($this->getIPNURL()); if (function_exists('curl_version')) { $ipnRequest->setAdditionalOption(\CURLOPT_SSLVERSION, 1); $curlVersion = curl_version(); if ($curlVersion && $curlVersion['ssl_version'] && 0 !== strpos($curlVersion['ssl_version'], 'NSS')) { $ipnRequest->setAdditionalOption(\CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); } } $ipnRequest->body = \XLite\Core\Request::getInstance()->getData(); $ipnResult = $ipnRequest->sendRequest(); if ($ipnResult) { \XLite\Module\CDev\Paypal\Main::addLog('getIPNVerification()', $ipnResult->body); $result = 0 < preg_match('/VERIFIED/i', $ipnResult->body) ? self::IPN_VERIFIED : self::IPN_DECLINED; } else { $result = self::IPN_REQUEST_ERROR; } return $result; }