Spade

Mini Shell

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

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

index.html000064400000000054151157040360006542 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>virtualmerchant.php000064400000022736151157040360010501
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 plgHikashoppaymentVirtualmerchant extends hikashopPaymentPlugin
{
	var $multiple = true;
	var $name = 'virtualmerchant';
	var $pluginConfig = array(
		'merchant_id' => array('ATOS_MERCHANT_ID',
'input'),
		'user_id' => array('HKASHOP_USER_ID',
'input'),
		'pin' => array('PIN', 'input'),
		'currency' => array('CURRENCY',
'list',array(
			'AED','KZT','ANG','LBP','ARS','LKR','AUS','LTL','AWG','LVL',
			'AZN','LYD','BBD','MAD','BDT','MKD','BGN','MUR','BHD','MWK',
			'BMD','MXN','BRL','MYR','BSD','NAD','BWP','NGN','CAD','NOK',
			'CDF','NPR','CHF','NZD','CLP','OMR','CNY','PEN','COP','PHP',
			'CRC','PKR','CZK','PLN','DKK','QAR','DOP','RON','DZD','RSD',
			'EEK','RUB','EGP','SAR','ETB','SEK','EUR','SGD','FJD','SYP',
			'GBP','THB','GTQ','TND','HKD','TRY','HRK','TTD','HTG','TWD',
			'HUF','UAH','IDR','USD','ILS','VEF','INR','VND','IRR','XAF',
			'ISK','XCD','JMD','XOF','JOD','XPF','JPY','ZAR','KES','ZMK',
			'KRW','ZWL','KWD','ZMW')
		),
		'ask_ccv' => array('CARD_VALIDATION_CODE',
'boolean','0'),
		'use_avs' => array('Add AVS information',
'boolean','0'),
		'debug' => array('DEBUG',
'boolean','0'),
		'sandbox' => array('SANDBOX',
'boolean','0'),
		'test_mode' => array('TEST_MODE',
'boolean','0'),
		'multi_currency' => array('Multi-currency
support', '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;
		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 Virtual Merchant 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');
			return false;
		}

		$this->ccLoad();

		$amount =
number_format($order->cart->full_total->prices[0]->price_value_with_tax,2,'.','');

		$vars = '<txn>'.
			'<ssl_merchant_id>'.$this->payment_params->merchant_id.'</ssl_merchant_id>'.
			'<ssl_user_id>'.$this->payment_params->user_id.'</ssl_user_id>'.
			'<ssl_pin>'.$this->payment_params->pin.'</ssl_pin>'.
			'<ssl_test_mode>'.((@$this->payment_params->test_mode)?'True':'False').'</ssl_test_mode>'.
			'<ssl_transaction_type>CCSALE</ssl_transaction_type>'.
			'<ssl_show_form >False</ssl_show_form >'.
			'<ssl_card_number>'.str_replace(array('<','>'),array('&lt;','&gt;'),$this->cc_number).'</ssl_card_number>'.
			'<ssl_exp_date>'.$this->cc_month.$this->cc_year.'</ssl_exp_date>'.
			'<ssl_amount>'.$amount.'</ssl_amount>'.
			'<ssl_salestax>0.00</ssl_salestax>'.
			'<ssl_cvv2cvc2_indicator>'.(($this->payment_params->ask_ccv)?'1':'0').'</ssl_cvv2cvc2_indicator>'.
			'<ssl_cvv2cvc2>'.str_replace(array('<','>'),array('&lt;','&gt;'),$this->cc_CCV).'</ssl_cvv2cvc2>'.
			'<ssl_customer_code>'.$this->user->user_id.'</ssl_customer_code>'.
			'<ssl_first_name>'.str_replace(array('<','>'),array('&lt;','&gt;'),$order->cart->billing_address->address_firstname).'</ssl_first_name>'.
			'<ssl_last_name>'.str_replace(array('<','>'),array('&lt;','&gt;'),$order->cart->billing_address->address_lastname).'</ssl_last_name>';

		if(!empty($this->payment_params->multi_currency))
			$vars .=
'<ssl_transaction_currency>'.$this->currency->currency_code.'</ssl_transaction_currency>';

		if(!empty($order->order_ip))
			$vars .=
'<ssl_cardholder_ip>'.$order->order_ip.'</ssl_cardholder_ip>';

		if($this->payment_params->use_avs) {
			$addr1 = @$order->cart->billing_address->address_street;
			if(strlen(urlencode($addr1)) > 20) {
				$vars .=
'<ssl_avs_address>'.substr(str_replace(array('<','>'),array('&lt;','&gt;'),$addr1),0,20).'</ssl_avs_address>'.
					'<ssl_address2>'.substr(str_replace(array('<','>'),array('&lt;','&gt;'),$addr1),20,30).'</ssl_address2>';
			} else {
				$vars .=
'<ssl_avs_address>'.str_replace(array('<','>'),array('&lt;','&gt;'),$addr1).'</ssl_avs_address>';
			}
			$vars .=
'<ssl_city>'.str_replace(array('<','>'),array('&lt;','&gt;'),@$order->cart->billing_address->address_city).'</ssl_city>'.
				'<ssl_state>'.str_replace(array('<','>'),array('&lt;','&gt;'),@$order->cart->billing_address->address_state->zone_name).'</ssl_state>'.
				'<ssl_avs_zip>'.str_replace(array('<','>'),array('&lt;','&gt;'),@$order->cart->billing_address->address_post_code).'</ssl_avs_zip>'.
				'<ssl_country>'.str_replace(array('<','>'),array('&lt;','&gt;'),@$order->cart->billing_address->address_country->zone_name_english).'</ssl_country>';
		}

		$vars .=
'<ssl_email>'.str_replace(array('<','>'),array('&lt;','&gt;'),$this->user->user_email).'</ssl_email>'.
		'</txn>';

		if( $this->payment_params->debug ) {
			echo htmlentities(str_replace(
					array($this->cc_number, $this->cc_CCV),
					array('**************', '***'),
				$vars)) . "\n\n\n";
		}

		$session = curl_init();
		curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($session, CURLOPT_SSL_VERIFYHOST, false);
		defined('CURL_SSLVERSION_TLSv1_2') ||
define('CURL_SSLVERSION_TLSv1_2', 6);
		curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
		curl_setopt($session, CURLOPT_POST,           1);
		curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($session, CURLOPT_VERBOSE,        1);
		curl_setopt($session, CURLOPT_FOLLOWLOCATION, 0);
		curl_setopt($session, CURLOPT_FAILONERROR,    true);

		$httpsHikashop = str_replace('http://','https://',
HIKASHOP_LIVE);
		if($this->payment_params->sandbox) {
			$url =
'api.demo.convergepay.com/VirtualMerchantDemo/processxml.do';
		} else {
			$url = 'api.convergepay.com/VirtualMerchant/processxml.do';
		}

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

		$ret = curl_exec($session);
		$error = curl_errno($session);

		curl_close($session);

		if( !$error ) {


			$p0 = strpos($ret,'<txn>');
			if($p0 !== false ) { $ret = substr($ret, $p0); }
			$data =
str_replace(array('<txn>','</txn>'),
'', trim($ret));
			$ret = array();
			while ($data) {
				$p0 = strpos($data, '<');
				$p1 = strpos($data, '>');
				if($p0 === false || $p1 === false) {
					break;
				}
				$key = substr($data, $p0+1, $p1-1);
				$data = substr($data, $p0+1);
				if(substr($key,-1) == '/') {
					$ret[$key] = '';
				} else {
					$l = strlen($key);
					$p1 = strpos($data, '</'.$key.'>');
					if($p1 !== false) {
						$ret[$key] = substr($data, $l+1, $p1-$l-1);
						$data = substr($data, $p1+$l+3);
					}
				}
			}

			if( $this->payment_params->debug ) {
				echo print_r($ret, true)."\n\n\n";
			}

			if( isset($ret['ssl_result']) ) {

				if( $ret['ssl_result'] == '0' ) {

					$dbg = ob_get_clean();
					if( !empty($dbg) ) $dbg .= "\r\n";
					ob_start();

					$history = new stdClass();
					$email = new stdClass();

					$history->notified = 0;
					$history->amount = $amount .
$this->payment_params->currency;
					$history->data = $dbg . 'Authorization Code: ' .
$ret['ssl_approval_code'] . "\r\n" . 'Transaction
ID: ' . $ret['ssl_txn_id'];

					$order_status = $this->payment_params->verified_status;

					$url =
HIKASHOP_LIVE.'administrator/index.php?option=com_hikashop&ctrl=order&task=listing';
					$order_text =
"\r\n".JText::sprintf('NOTIFICATION_OF_ORDER_ON_WEBSITE','',HIKASHOP_LIVE);
					$order_text .=
"\r\n".str_replace('<br/>',"\r\n",JText::sprintf('ACCESS_ORDER_WITH_LINK',$url));
					$email->subject =
JText::sprintf('PAYMENT_NOTIFICATION','VirtualMerchant','Accepted');
					$email->body =
str_replace('<br/>',"\r\n",JText::sprintf('PAYMENT_NOTIFICATION_STATUS','VirtualMerchant','Accepted')).'
'.JText::sprintf('ORDER_STATUS_CHANGED',
hikashop_orderStatus($order_status))."\r\n\r\n".$order_text;

					$this->modifyOrder($order,$order_status,$history,$email);
				} else {
					if(empty($ret['errorMessage'])){
						$ret['errorMessage'] = 'An error occurred with the
payment';
					}
					$this->app->enqueueMessage('Error Code #' .
$ret['errorCode'] . ': ' .
$ret['errorMessage']);
					$do = false;
				}
			} else {
				$this->app->enqueueMessage('An error occurred.');
				$do = false;
			}
			$this->ccClear();
		} else {
			$this->app->enqueueMessage('An error occurred. '.
$error);
			$do = false;
		}
		return true;
	}

	function onAfterOrderConfirm(&$order,&$methods,$method_id){
		parent::onAfterOrderConfirm($order, $methods, $method_id);

		$this->removeCart = true;

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

	function getPaymentDefaultValues(&$element) {
		$element->payment_name='VirtualMerchant (Elavon)';
		$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->invalid_status='cancelled';
		$element->payment_params->pending_status='created';
		$element->payment_params->verified_status='confirmed';
	}
}
virtualmerchant.xml000064400000002336151157040360010504 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="hikashoppayment">
	<name>Hikashop Virtual Merchant (Elavon) 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 virtualmerchant
payment system</description>
	<files>
		<filename
plugin="virtualmerchant">virtualmerchant.php</filename>
		<filename>virtualmerchant_thanks.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>
virtualmerchant_thanks.php000064400000001474151157040360012045
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_virtualmerchant_thankyou"
id="hikashop_virtualmerchant_thankyou">
	<span id="hikashop_virtualmerchant_thankyou_message"
class="hikashop_virtualmerchant_thankyou_message">
		<?php echo JText::_('THANK_YOU_FOR_PURCHASE');
		if(!empty($return_url)){
			echo '<br/><a
href="'.$return_url.'">'.JText::_('GO_BACK_TO_SHOP').'</a>';
		}?>
	</span>
</div>
<?php
if(!empty($return_url)){
	$doc =& JFactory::getDocument();
	$doc->addScriptDeclaration("window.hikashop.ready( function()
{window.location='".$return_url."'});");
}