403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/callback/rsmartsepa/library/raa/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/callback/rsmartsepa/library/raa/AbstractClient.php
<?php
/* --------------------------------------------------------------
  AbstractClient.php 2015-01-07 nik
  Smart Payment Solutions GmbH
  http://www.smart-payment-solutions.de/
  Copyright (c) 2015 Smart Payment Solutions GmbH
  Released under the GNU General Public License (Version 2)
  [http://www.gnu.org/licenses/gpl-2.0.html]
  --------------------------------------------------------------
 */

/**
 * This class contains basic functionallity like creating QR-code images,
 * creating HMAC data and executing POST requests.
 */
abstract class Raa_AbstractClient implements Raa_TerminalClient {

	const HMAC_HASH_FUNCTION = 'sha256';

	const HTTP_RESPONSE_HEADER = 'header';
	const HTTP_RESPONSE_HTTP_CODE = 'http_code';
	const HTTP_RESPONSE_BODY = 'body';

	protected $termInfo;

	/**
	 * @see Raa_TerminalClient::createTransactionDataEmpty()
	 */
	public function createTransactionDataEmpty() {
		return new Raa_TransactionData();
	}

	/**
	 * @see Raa_TerminalClient::createTransactionDataAmount()
	 */
	public function createTransactionDataAmount(
			$amount, $currencyCode, $localTxId, $desc) {
		return new Raa_TransactionDataAmount($amount, $currencyCode, $localTxId, $desc);
	}

	/**
	 * @see Raa_TerminalClient::getDefaultTerminalInfo()
	 */
	public function getDefaultTerminalInfo() {
		if (isset($this->termInfo)) {
			$ti = $this->termInfo;
			return new Raa_TerminalInfo(
					$ti->providerId, $ti->countryId, $ti->sellerId, $ti->salesPointId,
					$ti->applicationId, $ti->description, $ti->sellerName);
		}
		return null;
	}

	/**
	 * Create a HMAC.
	 *
	 * @param string $data The data from which the HMAC should be created.
	 * @param $key The key for the HMAC calculation.
	 * @return string The calculated base64 encoded HMAC.
	 */
	public static function createHmac($data, $key) {
		return base64_encode(
				pack("H*", hash_hmac(
						Raa_AbstractClient::HMAC_HASH_FUNCTION, $data, base64_decode($key))));
	}

	public static function createAuthHeaderField($terminalInfo, $hmac) {
		return Raa_AbstractClient::createHeaderAuthId() . ' '
				. Raa_AbstractClient::createIdHmacString($terminalInfo, $hmac);
	}

	public static function createHeaderAuthId() {
		return 'HMAC_' . strtoupper(Raa_AbstractClient::HMAC_HASH_FUNCTION);
	}

	public static function createIdHmacString($terminalInfo, $hmac) {
		return $terminalInfo->sellerId . ',' . $terminalInfo->applicationId . ':' . $hmac;
	}

	/*
	 * curl -H "Content-Type:application/json" -H "Accept:application/json"
	 * -X POST -d '$data' $url
	 */
	protected function createPostRequest($url, $data, array $header = null) {
		if (!isset($header)) {
			$header = array();
		}
		$header[] = 'Content-Type: application/json';
		$header[] = 'Accept: application/json';

		if (defined("RAA_DEBUG")) {
			$strURL = isset($url) ? print_r($url, true) : 'null';
			$strDATA = isset($data) ? print_r($data, true) : 'null';
			$strHEADER = isset($header) ? print_r($header, true) : 'null';
			$buffer = 'URL:<br/>===============<br/>' . $strURL .
								'<br/>HEADER:<br/>===============<br/>' . $strHEADER .
								'<br/>DATA:<br/>===============<br/>' . $strDATA;
			TerminalSdkLibrary::log('debug', 'Raa_AbstractClient->createPostRequest(SEND)', $buffer);
		}

		$request = curl_init($url);
		curl_setopt($request, CURLOPT_POST, 1);
		curl_setopt($request, CURLOPT_HTTPHEADER, $header);
		curl_setopt($request, CURLOPT_POSTFIELDS, $data);
		curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
		//========================================================
		// for testing
		if (defined("RAA_TESTING_AVOID_CERT_ERROR")) {
			if (defined("RAA_TESTING_CERT_FILE")) {
				curl_setopt($request, CURLOPT_CAINFO, RAA_TESTING_CERT_FILE);
			} else {
				curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
				curl_setopt($request, CURLOPT_SSL_VERIFYHOST, false);
			}
		}
		//--------------------------------------------------------
		return $request;
	}

	/*
	 * curl -H "Accept:application/json" -X GET $url
	 */
	protected function createGetRequest($url, array $header = null) {
		if (!isset($header)) {
			$header = array();
		}
		$header[] = 'Accept: application/json';

		if (defined("RAA_DEBUG")) {
			$strURL = isset($url) ? print_r($url, true) : 'null';
			$strHEADER = isset($header) ? print_r($header, true) : 'null';
			$buffer = 'URL:<br/>===============<br/>' . $strURL .
								'<br/>HEADER:<br/>===============<br/>' . $strHEADER;
			TerminalSdkLibrary::log('debug', 'Raa_AbstractClient->createGetRequest(SEND)', $buffer);
		}

		$request = curl_init($url);
		//curl_setopt($request, CURLOPT_HTTPGET, 1); // only needed if the request type changes
		curl_setopt($request, CURLOPT_HTTPHEADER, $header);
		curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
		//========================================================
		// for testing
		if (defined("RAA_TESTING_AVOID_CERT_ERROR")) {
			if (defined("RAA_TESTING_CERT_FILE")) {
				curl_setopt($request, CURLOPT_CAINFO, RAA_TESTING_CERT_FILE);
			} else {
				curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
				curl_setopt($request, CURLOPT_SSL_VERIFYHOST, false);
			}
		}
		//--------------------------------------------------------
		return $request;
	}

	/*
	 * curl -H "Accept:application/json" -X DELETE $url
	 */
	protected function createDeleteRequest($url, array $header = null) {
		if (!isset($header)) {
			$header = array();
		}
		$header[] = 'Accept: application/json';

		if (defined("RAA_DEBUG")) {
			$strURL = isset($url) ? print_r($url, true) : 'null';
			$strHEADER = isset($header) ? print_r($header, true) : 'null';
			$buffer = 'URL:<br/>===============<br/>' . $strURL .
								'<br/>HEADER:<br/>===============<br/>' . $strHEADER;
			TerminalSdkLibrary::log('debug', 'Raa_AbstractClient->createDeleteRequest(SEND)', $buffer);
		}

		$request = curl_init($url);
		curl_setopt($request, CURLOPT_CUSTOMREQUEST, "DELETE");
		curl_setopt($request, CURLOPT_HTTPHEADER, $header);
		curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
		//========================================================
		// for testing
		if (defined("RAA_TESTING_AVOID_CERT_ERROR")) {
			if (defined("RAA_TESTING_CERT_FILE")) {
				curl_setopt($request, CURLOPT_CAINFO, RAA_TESTING_CERT_FILE);
			} else {
				curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
				curl_setopt($request, CURLOPT_SSL_VERIFYHOST, false);
			}
		}
		//--------------------------------------------------------
		return $request;
	}

	protected function doRequest($request) {
		curl_setopt($request, CURLOPT_HEADER, true);

		$response = curl_exec($request);
		$curl_err = curl_error($request);

		if ($curl_err != "") {
			throw new Exception('cURL problem: ' . $curl_err);
		}

		$http_status_code = curl_getinfo($request, CURLINFO_HTTP_CODE);
		$header_size = curl_getinfo($request, CURLINFO_HEADER_SIZE);
		$header = substr($response, 0, $header_size);
		$body = substr( $response, $header_size );

		curl_close($request);

		if (defined("RAA_DEBUG")) {
			$strHEADER = isset($header) ? print_r($header, true) : 'null';
			$strRESULT = isset($body) ? print_r($body, true) : 'null';
			$buffer = 'HEADER:<br/>===============<br/>' . $strHEADER .
					'<br/>RESULT:<br/>===============<br/>' . $strRESULT;
			TerminalSdkLibrary::log('debug', 'Raa_AbstractClient->doRequest(RESULT)', $buffer);
		}

		return array(
				Raa_AbstractClient::HTTP_RESPONSE_HEADER => $header,
				Raa_AbstractClient::HTTP_RESPONSE_HTTP_CODE => $http_status_code,
				Raa_AbstractClient::HTTP_RESPONSE_BODY => $body);
	}

	protected static function getFirstHeader(array $headers, $name) {
		if (!isset($headers)) {
			return null;
		}
		$name_len = strlen($name);
		foreach($headers as $key => $value) {
			if (strncmp($value, $name, $name_len) == 0) {
				return trim(substr($value, $name_len +1));
			}
		}
		return null;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit