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/system/classes/payment/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/payment/SepaAccountCheck.inc.php
<?php
/* --------------------------------------------------------------
  SepaAccountCheck.inc.php 2014-08-29 gambio
  Gambio GmbH
  http://www.gambio.de
  Copyright (c) 2014 Gambio GmbH
  Released under the GNU General Public License (Version 2)
  [http://www.gnu.org/licenses/gpl-2.0.html]
  --------------------------------------------------------------

  based on:
  (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
  (c) 2002-2003 osCommerce(sepa_validation.php,v 1.17 2003/02/18 18:33:15); www.oscommerce.com
  (c) 2003	 nextcommerce (sepa_validation.php,v 1.4 2003/08/1); www.nextcommerce.org
  (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: sepa_validation.php 899 2006-04-29 02:40:57Z mz $)
  (c) 2004 - 2006 fmce.de
  (c) 2004 - 2006 discus24.de
  (c) 2004 - 2006 Frank Maroke

  Released under the GNU General Public License

  -----------------------------------------------------------------------------------------

  Third Party contributions:

  OSC German Sepa v0.85a       	Autor:	Dominik Guder <osc@guder.org>
  Extensioncode: 							Marcel Bossert-Schwab <info@opensourcecommerce.de> (mbs)
  New methods 2005 - 2006: 				Frank Maroke (FrankM) <info@fmce.de>

  Released under the GNU General Public License

  --------------------------------------------------------------------------------------- */

class SepaAccountCheck
{
	/* Folgende Returncodes werden übergeben                                      */
	/*                                                                            */
	/* 0 -> Kontonummer & BLZ OK                                                  */
	/* 1 -> Kontonummer & BLZ passen nicht                                        */
	/* 2 -> Für diese Kontonummer ist kein Prüfziffernverfahren definiert         */
	/* 3 -> Dieses Prüfziffernverfahren ist noch nicht implementiert              */
	/* 4 -> Diese Kontonummer ist technisch nicht prüfbar                         */
	/* 5 -> BLZ nicht gefunden                                                    */
	/* 10 -> no account holder                                                    */
	/* 11 -> no iban															  */
	/* 12 -> no iban check digits											      */
	/* 13 -> incorrect iban												          */
	/* 14 -> no bic										                          */
	/* 15 -> incorrect bic							                              */
	/* 16 -> no bankname				                                          */
	/* 128 -> interner Fehler,der zeigt, das eine Methode nicht implementiert ist */
	/*                                                                           */
	var $owner;
	var $iban;
	var $bic;
	var $bankname;
	var $prz;


	// Diese function gibt die Bankinformationen aus der csv-Datei zurück*/
	protected function csv_query($p_blz)
	{
		$c_data_array = -1;
		$t_blz_file = DIR_WS_INCLUDES . 'data/blz.csv';
		if(file_exists($t_blz_file))
		{
			$t_blz_data = file_get_contents($t_blz_file);
			if(strlen(trim($t_blz_data)))
			{
				$t_position_start = strpos($t_blz_data, $p_blz);
				if($t_position_start !== false)
				{
					$t_position_end = strpos($t_blz_data, "\n", $t_position_start);
					if ($t_position_end !== false)
					{
						$t_data_string = trim(substr($t_blz_data, $t_position_start, $t_position_end-$t_position_start));
						$t_data_array = explode(';', $t_data_string);
						$c_data_array = array(
							'blz' => $t_data_array[0],
							'bankname' => $t_data_array[1],
							'bic' => $t_data_array[2],
							'prz' => $t_data_array[3]);
					}
				}
			}
		}

		if($c_data_array == -1)
		{
			$c_data_array = $this->db_query($p_blz);
		}
		return $c_data_array;
	}

	// Diese function gibt die Bankinformationen aus der Datenbank zur�ck*/
	protected function db_query($p_blz)
	{
		$c_data_array = -1;
		$t_result = xtc_db_query("SELECT 
									* 
								FROM 
									banktransfer_blz 
								WHERE 
									blz = '" . xtc_db_input($p_blz) . "'");
		if(xtc_db_num_rows($t_result) == 1)
		{
			$c_data_array = xtc_db_fetch_array($t_result);
		}
		return $c_data_array;
	}

	// Diese function gibt die Bankinformationen aus der Datenbank zurück*/
	protected function query($p_blz)
	{
		if(defined('MODULE_PAYMENT_SEPA_DATABASE_BLZ') && MODULE_PAYMENT_SEPA_DATABASE_BLZ === 'true')
		{
			$t_data = $this->db_query($p_blz);
		}
		else
		{
			$t_data = $this->csv_query($p_blz);
		}
		return $t_data;
	}

	// IBAN check
	function check_iban($p_iban)
	{
		$t_iban = str_replace(' ', '', $p_iban);
		// RETURN if no data check
		if(MODULE_PAYMENT_SEPA_DATACHECK == 'false')
		{
			return $t_iban;
		}
		if(substr($t_iban, 2, 2) == '00')
		{
			// no check digit
			return '1';
		}
		
		$t_iban_1 = substr($t_iban, 4)
				. strval(ord($t_iban{0}) - 55)
				. strval(ord($t_iban{1}) - 55)
				. substr($t_iban, 2, 2);

		for($i = 0; $i < strlen($t_iban_1); $i++)
		{
			if(ord($t_iban_1{$i}) > 64 && ord($t_iban_1{$i}) < 91)
			{
				$t_iban_1 = substr($t_iban_1, 0, $i) . strval(ord($t_iban_1{$i}) - 55) . substr($t_iban_1, $i + 1);
			}
		}
		$t_iban_rest = 0;
		for($pos = 0; $pos < strlen($t_iban_1); $pos+=7)
		{
			$part = strval($t_iban_rest) . substr($t_iban_1, $pos, 7);
			$t_iban_rest = intval($part) % 97;
		}

		if($t_iban_rest == 1)
		{
			// return valid iban
			return $t_iban;
		}
		else
		{
			// invalid iban
			return '2';
		}
	}

	function CheckAccount($p_owner, $p_iban, $p_bic, $p_bankname)
	{
		// check owner
		if(trim($p_owner) == '')
		{
			// no owner
			return 10;
		}
		
		// check iban
		if(trim($p_iban) == '')
		{
			// no iban
			return 11;
		}
		$p_iban = strtoupper(str_replace(' ', '', $p_iban));
		$c_iban = $this->check_iban($p_iban);
		if($c_iban == '1')
		{
			// no iban check digits
			return 12;
		}
		if($c_iban == '2')
		{
			// incorrect iban
			return 13;
		}

		$this->owner = trim($p_owner);
		$this->iban = $c_iban;
		$this->bic = str_replace(' ', '', trim($p_bic));
		$this->bankname = trim($p_bankname);
		
		$t_language_code = substr($c_iban, 0, 2);
		if($t_language_code != 'DE')
		{
			// check bic
			if($this->bic == '')
			{
				// no bic
				return 14;
			}
			if(strlen($this->bic) != 8 && strlen($this->bic) != 11 && MODULE_PAYMENT_SEPA_DATACHECK == 'true')
			{
				// incorrect bic
				return 15;
			}
		}
		
		$t_result = 0;
		if($t_language_code == 'DE' && MODULE_PAYMENT_SEPA_DATACHECK == 'true')
		{
			// get konto nr from iban
			$t_kto_nr = substr($c_iban, 12, 10);
			// get blz from iban
			$t_blz = substr($c_iban, 4, 8); //$c_iban DE12 12345678

			/*     Beginn Implementierung */
			$adata = $this->query($t_blz);
			if($adata == -1)
			{
				$t_result = 5; // BLZ nicht gefunden;
				$this->prz = -1;
			}
			else
			{
				$this->bankname = $adata['bankname'];
				if(trim($adata['bic']) != '')
				{
					$this->bic = $adata['bic'];
				}
				$this->prz = str_pad($adata['prz'], 2, "0", STR_PAD_LEFT);

				$t_prz = $adata['prz'];

				$coo_blz_validation = MainFactory::create_object('BLZValidation');

				switch($t_prz)
				{
					case "52" : $t_result = $coo_blz_validation->Mark52($t_kto_nr, $t_blz);
						break;
					case "53" : $t_result = $coo_blz_validation->Mark53($t_kto_nr, $t_blz);
						break;
					/* --- Added FrankM 20060112 --- */
					case "B6" : $t_result = $coo_blz_validation->MarkB6($t_kto_nr, $t_blz);
						break;
					case "C0" : $t_result = $coo_blz_validation->MarkC0($t_kto_nr, $t_blz);
						break;
					default:
						$t_result = $coo_blz_validation->call_method("Mark$t_prz", $t_kto_nr);
				}
			}
		}
		// check bic
		if(trim($this->bic) == '')
		{
			// no bic
			return 14;
		}
		if(strlen($this->bic) != 8 && strlen($this->bic) != 11 && MODULE_PAYMENT_SEPA_DATACHECK == 'true')
		{
			// incorrect bic
			return 15;
		}
		if(trim($this->bankname) == '')
		{
			return 16;  /* Keinen Banknamen angegeben */
		}
		return $t_result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit