Current Path :
/
home
/
zrcdevco
/
public_html
/
zrcprod
/
plugins
/
hikashoppayment
/
ceca
/
Or
Select Your Path :
Upload File :
New :
File
Dir
/home/zrcdevco/public_html/zrcprod/plugins/hikashoppayment/ceca/ceca.php
<?php /** * @package HikaShop for Joomla! * @version 2.3.2 * @author hikashop.com * @copyright (C) 2010-2014 HIKARI SOFTWARE. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php defined('_JEXEC') or die('Restricted access'); ?><?php class plgHikashoppaymentCeca extends JPlugin { var $accepted_currencies = array( 'EUR' ); var $debugData = array(); function onPaymentDisplay(&$order,&$methods,&$usable_methods){ if(!empty($methods)){ foreach($methods as $method){ if($method->payment_type!='ceca' || !$method->enabled){ continue; } if(!empty($method->payment_zone_namekey)){ $zoneClass=hikashop_get('class.zone'); $zones = $zoneClass->getOrderZones($order); if(!in_array($method->payment_zone_namekey,$zones)){ return true; } } $currencyClass = hikashop_get('class.currency'); $null=null; $currency_id = intval(@$order->total->prices[0]->price_currency_id); $currency = $currencyClass->getCurrencies($currency_id,$null); if(!empty($currency) && !in_array(@$currency[$currency_id]->currency_code,$this->accepted_currencies)){ return true; } $usable_methods[$method->ordering]=$method; } } return true; } function onPaymentSave(&$cart,&$rates,&$payment_id){ $usable = array(); $this->onPaymentDisplay($cart,$rates,$usable); $payment_id = (int) $payment_id; foreach($usable as $usable_method){ if($usable_method->payment_id==$payment_id){ return $usable_method; } } return false; } function onAfterOrderConfirm(&$order,&$methods,$method_id){ $method =& $methods[$method_id]; $tax_total = ''; $discount_total = ''; $currencyClass = hikashop_get('class.currency'); $currencies=null; $currencies = $currencyClass->getCurrencies($order->order_currency_id,$currencies); $currency=$currencies[$order->order_currency_id]; $user = hikashop_loadUser(true); $app = JFactory::getApplication(); $cart = hikashop_get('class.cart'); if(!HIKASHOP_J30) JHTML::_('behavior.mootools'); else JHTML::_('behavior.framework'); $app =& JFactory::getApplication(); $name = $method->payment_type.'_end.php'; $path = JPATH_THEMES.DS.$app->getTemplate().DS.'hikashoppayment'.DS.$name; if(!file_exists($path)){ if(version_compare(JVERSION,'1.6','<')){ $path = JPATH_PLUGINS .DS.'hikashoppayment'.DS.$name; }else{ $path = JPATH_PLUGINS .DS.'hikashoppayment'.DS.$method->payment_type.DS.$name; } if(!file_exists($path)){ return true; } } $vars["Num_operacion"]=$order->order_id; $vars["Importe"] = round($order->cart->full_total->prices[0]->price_value_with_tax, (int)$currency->currency_locale['int_frac_digits']) * 100; $vars["MerchantID"]=$method->payment_params->merchant_id; $vars["AcquirerBIN"]=$method->payment_params->acquirer_bin; $vars["TerminalID"]=$method->payment_params->terminal_id; $vars["ClaveEncryp"]=$method->payment_params->clave_encryp; $lang = JFactory::getLanguage(); $locale=strtoupper(substr($lang->get('tag'),0,2)); if(!in_array($locale,array('EN', 'DE', 'ES', 'FR', 'IT', 'NL', 'PT'))) $locale = 'ES'; $vars["Idioma"]=$locale; $vars["URL_OK"] = HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=checkout&task=notify¬if_payment=ceca&done=ok&order_id='.$order->order_id.'&lang='.strtolower($locale); $vars["URL_NOK"] = HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=checkout&task=notify¬if_payment=ceca&done=nok&order_id='.$order->order_id.'&lang='.strtolower($locale); require($path); $this->removeCart = true; return true; } function onPaymentNotification(&$statuses){ $pluginsClass = hikashop_get('class.plugins'); $elements = $pluginsClass->getMethods('payment','ceca'); if(empty($elements)) return false; $element = reset($elements); $done = JRequest::getString("done"); $requestOrderId = JRequest::getString("order_id"); $fp = fopen("recibido.txt","a"); if ($done == "ok") { $msg = JText::_('ORDER_IS_COMPLETE').'<br/>'. JText::_('THANK_YOU_FOR_PURCHASE'); return $msg; } elseif ($done == "nok") { $msg = JText::_('TRANSACTION_PROCESSING_ERROR').'<br/>'; return $msg; } else { if ($element->payment_params->comunicacion_online_ok) { $vars = array(); $data = array(); $filter = JFilterInput::getInstance(); fwrite($fp, "VARIABLES QUE RECIBO DEL POST \t " . PHP_EOL); foreach($_POST as $key => $value){ $key = $filter->clean($key); $value = JRequest::getString($key); $vars[$key]=$value; fwrite($fp, "Clave y valor: $key \t $value" . PHP_EOL); } $Clave=$element->payment_params->clave_encryp; $MerchantID=$element->payment_params->merchant_id; $AcquirerBIN=$element->payment_params->acquirer_bin; $TerminalID=$element->payment_params->terminal_id; $Num_operacion=$vars["Num_operacion"]; $Importe=$vars['Importe']; $TipoMoneda=$vars["TipoMoneda"]; $Exponente=$vars["Exponente"]; $Referencia=$vars["Referencia"]; $Firma = sha1($Clave.$MerchantID.$AcquirerBIN.$TerminalID.$Num_operacion.$Importe.$TipoMoneda.$Exponente.$Referencia); fwrite($fp, "VARIABLES QUE USO PARA FIRMAR \t " . PHP_EOL); fwrite($fp, "Clave: $Clave \t " . PHP_EOL); fwrite($fp, "MerchantID: $MerchantID \t " . PHP_EOL); fwrite($fp, "AcquirerBIN: $AcquirerBIN \t " . PHP_EOL); fwrite($fp, "TerminalID: $TerminalID \t " . PHP_EOL); fwrite($fp, "Num_operacion: $Num_operacion \t " . PHP_EOL); fwrite($fp, "Importe: $Importe \t " . PHP_EOL); fwrite($fp, "TipoMoneda: $TipoMoneda \t " . PHP_EOL); fwrite($fp, "Exponente: $Exponente \t " . PHP_EOL); fwrite($fp, "Referencia: $Referencia \t $texto" . PHP_EOL); fwrite($fp, "Firma: $Firma \t " . PHP_EOL); $validaFirma = false; if ($Firma==$vars["Firma"]) { fwrite($fp, "ES BUENA $Firma \t ". PHP_EOL); $validaFirma = true; } else { fwrite($fp, "ES MALA: $Firma \t " . PHP_EOL); $validaFirma = false; } $validaPrecio = false; $orderClass = hikashop_get('class.order'); $dbOrder = $orderClass->get((int)@$vars['Num_operacion']); $currencyClass = hikashop_get('class.currency'); $currencies=null; $currencies = $currencyClass->getCurrencies($dbOrder->order_currency_id,$currencies); $currency=$currencies[$dbOrder->order_currency_id]; $ImporteEntrada=(int)@$vars['Importe']; $ImporteBD = round($dbOrder->order_full_price, (int)$currency->currency_locale['int_frac_digits']) * 100; if ($ImporteEntrada == $ImporteBD){ $validaPrecio = true; } else { $validaPrecio = false; } if ($validaFirma && $validaPrecio) { $order = new stdClass(); $order->order_id = @$dbOrder->order_id; if(!empty($dbOrder)){ $order->old_status->order_status=$dbOrder->order_status; fwrite($fp, "CAMBIANDO ESTADOS \t " . PHP_EOL); fwrite($fp, "ORDER ID: $order->order_id \t " . PHP_EOL); } $order->history->history_reason=JText::sprintf('AUTOMATIC_PAYMENT_NOTIFICATION'); $order->history->history_notified=0; $order->history->history_amount=@$vars['Importe']; $order->history->history_payment_id = $element->payment_id; $order->history->history_payment_method =$element->payment_type; $order->history->history_data = ob_get_clean(); $order->history->history_type = 'payment'; $order->order_status = $element->payment_params->verified_status; fwrite($fp, "Verificado: $order->order_status \t " . PHP_EOL); $orderClass->save($order); } if ($element->payment_params->respuesta_requerida) { $respuesta= '$*$OKY$*$'; return $respuesta; } fclose($fp); } } return true; } function onPaymentConfiguration(&$element){ $this->ceca = JRequest::getCmd('name','ceca'); if(empty($element)){ $element = new stdClass(); $element->payment_name='CECA'; $element->payment_description='Puede pagar con tarjeta con este método de pago'; $element->payment_images='MasterCard,VISA,Credit_card,American_Express'; $element->payment_type=$this->ceca; $element->payment_params= new stdClass(); $list=null; $element->payment_params->verified_status='confirmed'; $element = array($element); } $lang = &JFactory::getLanguage(); $locale=strtoupper(substr($lang->get('tag'),0,2)); $key = key($element); $element[$key]->payment_params->status_url = HIKASHOP_LIVE.'index.php?option=com_hikashop&ctrl=checkout&task=notify¬if_payment=ceca&lang='.strtolower($locale); $this->toolbar = array( 'save', 'apply', 'cancel', '|', array('name' => 'pophelp', 'target' =>'payment-bluepaid-form') ); hikashop_setTitle('Ceca','plugin','plugins&plugin_type=payment&task=edit&name='.$this->ceca); $app = JFactory::getApplication(); $app->setUserState( HIKASHOP_COMPONENT.'.payment_plugin_type', $this->ceca); $this->address = hikashop_get('type.address'); $this->category = hikashop_get('type.categorysub'); $this->category->type = 'status'; } function onPaymentConfigurationSave(&$element){ return true; } }