Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/j3/plugins/hikashoppayment/payplug/lib/payplug/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/j3/plugins/hikashoppayment/payplug/lib/payplug/Payplug.php

<?php
/**
 * @package	HikaShop for Joomla!
 * @version	4.4.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php

class Payplug {

	const VERSION = "0.9";

	private static $parameters;

	public static function getConfig() {
			return self::$parameters;
	}

	public static function loadParameters($email, $password, $is_test=false)
{
		$answer;
		$configUrl =
'https://www.payplug.fr/portal/ecommerce/autoconfig';
		if ($is_test === true) {
			$configUrl =
'https://www.payplug.fr/portal/test/ecommerce/autoconfig';
		}
		$curlErrNo;
		$curlErrMsg;
		$httpCode;
		$httpMsg;
		$parameters;
		$process = curl_init($configUrl);

		curl_setopt($process, CURLOPT_HEADER, true);
		curl_setopt($process, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($process, CURLOPT_SSLVERSION,
defined('CURL_SSLVERSION_TLSv1') ? CURL_SSLVERSION_TLSv1 : 1);
		curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true);
		curl_setopt($process, CURLOPT_SSL_VERIFYHOST, true);
		curl_setopt($process, CURLOPT_USERPWD, $email . ':' .
$password);

		$answer = curl_exec($process);
		$headerSize = curl_getinfo($process, CURLINFO_HEADER_SIZE);
		$httpCode = curl_getinfo($process, CURLINFO_HTTP_CODE);

		$body = substr($answer, $headerSize);
		$headers = substr($answer, 0, $headerSize);
		$headers = explode("\r\n", $headers);

		$httpMsg = explode(" ", $headers[0], 3);

		$httpMsg = @$httpMsg[2];
		$curlErrNo = curl_errno($process);
		$curlErrMsg = curl_error($process);
		curl_close($process);

		if ($curlErrNo == 0) {
			$body = json_decode($body);

			if ($httpCode == 200) {
				$parameters = new Parameters(
					$body->currencies,
					$body->amount_max,
					$body->amount_min,
					$body->url,
					$body->payplugPublicKey,
					$body->yourPrivateKey
				);
			}
			elseif ($httpCode == 401) {
				throw new InvalidCredentialsException();
			}
			else {
				throw new NetworkException("HTTP error ($httpCode) :
$httpMsg", $httpCode);
			}
		}
		else {
			throw new NetworkException("CURL error ($curlErrNo) :
$curlErrMsg", $curlErrNo);
		}

		return $parameters;
	}

	public static function setConfig($parameters) {
		self::$parameters = $parameters;
	}

	public static function setConfigFromFile($path) {
		self::$parameters = Parameters::loadFromFile($path);
	}
}