Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/iveri.tar

index.html000064400000000054151160477630006552 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>iveri.php000064400000023231151160477630006406
0ustar00<?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 plgHikashoppaymentIveri extends hikashopPaymentPlugin
{
	var $accepted_currencies = array('ZAR');
	var $multiple = true;
	var $name = 'iveri';
	var $pluginConfig = array(
		'applicationid' => array('Application ID',
'input'),
		'invoice_prefix' => array('Invoice Prefix',
'input'),
		'domain' => array('Payment Gateway',
'list',array(
			'backoffice.nedsecure.co.za' =>
'backoffice.nedsecure.co.za',
			'backoffice.host.nedsecure.com' =>
'backoffice.host.nedsecure.com',
			'backoffice.ctlnigeria.nedsecure.com' =>
'backoffice.ctlnigeria.nedsecure.com')
		),
		'ask_ccv' => array('Ask for CCV',
'boolean','0'),
		'debug' => array('DEBUG',
'boolean','0'),
		'cancel_url' => array('CANCEL_URL',
'input'),
		'return_url' => array('RETURN_URL',
'input'),
		'invalid_status' => array('INVALID_STATUS',
'orderstatus'),
		'verified_status' => array('VERIFIED_STATUS',
'orderstatus')
	);

	function needCC(&$method) {
		$method->ask_cc = true;
		$method->ask_owner = true;
		if( $method->payment_params->ask_ccv ) {
			$method->ask_ccv = true;
		}
		return true;
	}

	function onBeforeOrderCreate(&$order, &$do) {
		if(parent::onBeforeOrderCreate($order, $do) === true)
			return true;

		if(!function_exists('curl_init')){
			$this->app->enqueueMessage('The iveri payment plugin needs
the CURL library installed but it seems that it is not available on your
server. Please contact your web hosting to set it
up.','error');
			$do = false;
			return false;
		}

		$this->ccLoad();

		$address_type = 'billing_address';
		$address1 = ''; $address2 = ''; $address3 =
'';

		if(!empty($order->cart->$address_type->address_street)) {
			if(strlen($order->cart->$address_type->address_street)>20)
{
				$address1 =
substr($order->cart->$address_type->address_street,0,20);
				$address2 =
@substr($order->cart->$address_type->address_street,20,20);
				$address3 =
@substr($order->cart->$address_type->address_street,40,20);
			}else{
				$address1 = $order->cart->$address_type->address_street;
			}
		}
		$country_code_2 =
@$order->cart->$address_type->address_country->zone_code_3;

		if( isset($order->order_id) )
			$uuid = $order->order_id;
		else
			$uuid = uniqid('');


		$this->appId = '{' .
trim($this->payment_params->applicationid, " {}\t\r\n\0") .
'}';

		$prefix =
empty($this->payment_params->invoice_prefix)?'inv':$this->payment_params->invoice_prefix;

		$amount =
(int)round($order->cart->full_total->prices[0]->price_value_with_tax
* 100);

		$vars = array (
			'Lite_Version' => '2.0',
			'Lite_Merchant_ApplicationId' => $this->appId,
			'Lite_Order_Amount' => $amount,
			'Lite_Order_Terminal' => 'web',
			'Lite_Website_Successful_Url' =>
'http://127.0.0.1/success',
			'Lite_Website_Fail_Url' =>
'http://127.0.0.1/fail',
			'Lite_Website_TryLater_Url' =>
'http://127.0.0.1/trylater',
			'Lite_Website_Error_Url' =>
'http://127.0.0.1/error',

			'Lite_Order_LineItems_Product_1' => 'Your
order',
			'Lite_Order_LineItems_Amount_1' => $amount,
			'Lite_Order_LineItems_Quantity_1' => 1,

			'Lite_ConsumerOrderID_PreFix' => $prefix,
			'Lite_Authorisation' => 'false',

			'Ecom_TransactionComplete' => 'false',
			'Ecom_SchemaVersion' => '',

			'Ecom_Payment_Card_Protocols' => 'iVeri',
			'Ecom_Payment_Card_StartDate_Day' => '00',
			'Ecom_Payment_Card_StartDate_Month' => '04',
			'Ecom_Payment_Card_StartDate_Year' => '2000',
			'Ecom_Payment_Card_ExpDate_Day' => '00',

			'Ecom_BillTo_Postal_Name_First' => substr(
@$order->cart->$address_type->address_firstname, 0, 20),
			'Ecom_BillTo_Postal_Name_Last' => substr(
@$order->cart->$address_type->address_lastname, 0, 20),
			'Ecom_BillTo_Postal_Street_Line1' => $address1,
			'Ecom_BillTo_Postal_Street_Line2' => $address2,
			'Ecom_BillTo_Postal_Street_Line3' => $address3,
			'Ecom_BillTo_Postal_City' => substr(
@$order->cart->$address_type->address_city, 0, 22),
			'Ecom_BillTo_Postal_PostalCode' => substr(
@$order->cart->$address_type->address_post_code, 0, 20),
			'Ecom_BillTo_Postal_CountryCode' =>
@$order->cart->$address_type->address_country->zone_code_2,
			'Ecom_BillTo_Online_Email' =>
substr($this->user->user_email, 0, 40),

			'Ecom_ShipTo_Postal_Name_First' => substr(
@$order->cart->$address_type->address_firstname, 0, 20),
			'Ecom_ShipTo_Postal_Name_Last' => substr(
@$order->cart->$address_type->address_firstname, 0, 20),
			'Ecom_ShipTo_Postal_Street_Line1' => $address1,
			'Ecom_ShipTo_Postal_Street_Line2' => $address2,
			'Ecom_ShipTo_Postal_Street_Line3' => $address3,
			'Ecom_ShipTo_Postal_City' => substr(
@$order->cart->$address_type->address_city, 0, 22),
			'Ecom_ShipTo_Postal_PostalCode' => substr(
@$order->cart->$address_type->address_post_code, 0, 14),
			'Ecom_ShipTo_Postal_CountryCode' =>
@$order->cart->$address_type->address_country->zone_code_2,

			'Ecom_Payment_Card_Name' => $this->cc_owner,
			'Ecom_Payment_Card_Number' => $this->cc_number,
			'Ecom_Payment_Card_Verification' => @$this->cc_CCV,
			'Ecom_Payment_Card_ExpDate_Month' => $this->cc_month,
			'Ecom_Payment_Card_ExpDate_Year' => $this->cc_year,
			'Ecom_ConsumerOrderID' => $uuid,
		);

		$session = curl_init();
		curl_setopt($session, CURLOPT_FRESH_CONNECT,  true);
		curl_setopt($session, CURLOPT_HEADER,         0);
		curl_setopt($session, CURLOPT_POST,           1);
		curl_setopt($session, CURLOPT_FOLLOWLOCATION, 0);
		curl_setopt($session, CURLOPT_FAILONERROR,    true);
		curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($session, CURLOPT_COOKIEFILE,     "");
		curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false);

		$httpsHikashop = str_replace('http://','https://',
HIKASHOP_LIVE);
		$domain = $this->payment_params->domain;
		$url = '/Lite/Transactions/New/Authorise.aspx';

		curl_setopt($session, CURLOPT_URL, 'https://' . $domain .
$url);
		curl_setopt($session, CURLOPT_REFERER, $httpsHikashop);
		curl_setopt($session, CURLOPT_POSTFIELDS, $vars);

		$result = curl_exec($session);
		$error = curl_error($session);

		$inputs = $this->getHiddenInputValues($result, true);

		if( !empty($error) || !isset($inputs['__viewstate']) ) {
			$this->app->enqueueMessage('Error while connecting to the
Payment Gateway.');
			$do = false;
		} else {
			$inputs = $this->getHiddenInputValues($result);

			curl_setopt($session, CURLOPT_REFERER, 'https://' . $domain .
$url);
			curl_setopt($session, CURLOPT_POSTFIELDS, $inputs);

			$result = curl_exec($session);
			$error = curl_error($session);

			$inputs = $this->getHiddenInputValues($result, true);

			if( empty($error) &&
isset($inputs['lite_payment_card_status']) ) {
				$err = $inputs['lite_payment_card_status'];
				if( $err == 0 ) {

					$this->modifyOrder($order,$this->payment_params->verified_status,true,true);

				} else if($err == 1 || $err == 2 || $err == 5 || $err == 9) {
					$this->app->enqueueMessage('The transaction could not be
processed.');
					$do = false;
				} else if($err == 14) {
					$this->app->enqueueMessage('Invalid card number.');
					$do = false;
				} else if($err == 255) {
					$this->app->enqueueMessage('The transaction could not be
processed due incorrect or missing information.');
					$do = false;
				} else {
					$this->app->enqueueMessage('The transaction has been
declined.');
					$do = false;
				}
			} else {
				$this->app->enqueueMessage('An error occurred.');
				$do = false;
			}
		}
		curl_close($session);

		$this->ccClear();
		return true;
	}

	function onAfterOrderConfirm(&$order,&$methods,$method_id){
		$this->removeCart = true;

		return $this->showPage('end');
	}

	function getInputTags(&$content) {
		$results = '';
		preg_match_all('/<input\s.*?>/i', $content, $results);
		return $results;
	}

	function getHiddenInputTags(&$content) {
		$input_tags = $this->getInputTags($content);
		$results = array();
		foreach($input_tags[0] as $tag) {
			if
(preg_match('/type\s*=\s*(\'|")hidden(\'|")/i',
$tag) > 0) {
				array_push($results, $tag);
			}
		}
		return $results;
	}

	function getHiddenInputValues(&$content, $lowerK = false, $lowerV =
false) {
		$tags = $this->getHiddenInputTags($content);
		$nameValues = array();

		foreach ($tags as $tag) {
			$name = trim($this->getAttributeValue('name', $tag));
			if ( empty($name) ) continue;
			if( $lowerK ) $name = strtolower($name);
			$value = trim($this->getAttributeValue('value', $tag));
			if( $lowerV ) $value = strtolower($value);
			$nameValues[$name] = $value;
		}

		return $nameValues;
	}

	function getAttributeValue($name, $tag) {
		$regex1 = '/[\s]' . $name .
'[\s]*=[\s]*["\'][-\]\\_!@#$%^&*()_+=[|}{;:\/?.,\w\s]*(?=["\'])/i';
		$regex2 = '/[\s]' . $name .
'[\s]*=[\s]*["\']/i';

		preg_match_all($regex1, $tag, $matches);
		if (count($matches[0]) != 1) return '';

		return preg_replace($regex2, "", $matches[0][0]);
	}

	function getPaymentDefaultValues(&$element) {
		$element->payment_name = 'IVERI';
		$element->payment_description = 'You can pay by credit card using
this payment method';
		$element->payment_images =
'MasterCard,VISA,Credit_card,American_Express,Discover';

		$element->payment_params->domain =
'backoffice.iveri.co.za';
		$element->payment_params->invoice_prefix = 'inv';
		$element->payment_params->invalid_status = 'cancelled';
		$element->payment_params->pending_status = 'created';
		$element->payment_params->verified_status = 'confirmed';
	}
}
iveri.xml000064400000002237151160477630006422 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="hikashoppayment">
	<name>Hikashop iVeri Payment Plugin</name>
	<creationDate>12 février 2021</creationDate>
	<version>4.4.1</version>
	<author>Obsidev</author>
	<authorEmail>dev@hikashop.com</authorEmail>
	<authorUrl>http://www.hikashop.com</authorUrl>
	<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>
	<description>This plugin enables you to setup your iVeri payment
system</description>
	<files>
		<filename plugin="iveri">iveri.php</filename>
		<filename>iveri_end.php</filename>
	</files>
	<params addpath="/components/com_hikashop/params">
		<param name="pluginoptions" type="pluginoptions"
default="plugin" label="hikashop"
description="HikaShop options" />
	</params>
	<config>
		<fields name="params"
addfieldpath="/components/com_hikashop/fields">
			<fieldset name="basic">
				<field id="pluginoptions" name="pluginoptions"
type="pluginoptions" label="hikashop"
description="HikaShop options" />
			</fieldset>
		</fields>
	</config>
</extension>
iveri_end.php000064400000001553151160477630007237 0ustar00<?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');
?><div class="hikashop_iveri_thankyou"
id="hikashop_iveri_thankyou">
	<span id="hikashop_iveri_thankyou_message"
class="hikashop_iveri_thankyou_message">
		<?php echo JText::_('THANK_YOU_FOR_PURCHASE');
		if(!empty($this->payment_params->return_url)){
			echo '<br/><a
href="'.$this->payment_params->return_url.'">'.JText::_('GO_BACK_TO_SHOP').'</a>';
		}?>
	</span>
</div>
<?php
if(!empty($this->payment_params->return_url)){
	$doc = JFactory::getDocument();
	$doc->addScriptDeclaration("window.hikashop.ready( function()
{window.location='".$this->payment_params->return_url."'});");
}