Модуль робокасса

Автор NightTray, 05 октября 2015, 14:51:28

« назад - далее »

NightTray

Ошибок: 2
robokassa (разбор ошибки в /modules/robokassa/robokassa.php),
robokassa (класс отсутствует в /modules/robokassa/robokassa.php)

Модуль как скачал так и поставил, все работает, покупка и т.д. все в порядке, но ошибка в админке очень настараживает, кажется что в один момент cломается, каждый день захожу и смотрю на код в поисках проблемы, помогите пожалуйста, я конечно не программист, но чуть чуть php знаю, все классы на месте что не так?

<?php

class robokassa extends PaymentModule
{
   private
$_html = '';
   private
$_postErrors = array();

   public function
__construct()
   {
       
$this->name = 'robokassa';        
       
$this->tab = 'Payment';
       
$this->version = 1.4;
       
       
$this->currencies = true;
       
$this->currencies_mode = 'radio';
       
       
$config = Configuration::getMultiple(array('RB_MERCHANT_LOGIN', 'RB_PASSWORD1', 'RB_PASSWORD2'));    
       if (isset(
$config['RB_MERCHANT_LOGIN']))
           
$this->rb_merchant_login = $config['RB_MERCHANT_LOGIN'];
if (isset($config['RB_PASSWORD1']))
           
$this->rb_password1 = $config['RB_PASSWORD1'];
if (isset($config['RB_PASSWORD2']))
           
$this->rb_password2 = $config['RB_PASSWORD2'];
           
       
parent::__construct();
       
       
/* The parent construct is required for translations */
       
$this->page = basename(__FILE__, '.php');
       
$this->displayName = 'RoboKassa';
       
$this->description = $this->l('Accept payments with RoboKassa');
       
$this->confirmUninstall = $this->l('Are you sure you want to delete your details ?');
       
       if (!isset(
$this->rb_merchant_login))
           
$this->warning = $this->l('Your RoboKassa account must be set correctly (set merchant login)');
   }        

   function
install()
   {        
       if (!
parent::install() OR !$this->registerHook('payment') OR !$this->registerHook('paymentReturn'))
           return
false;
       return
true;
   }
   
   function
uninstall()
   {
       if (!
Configuration::deleteByName('RB_MERCHANT_LOGIN') OR !parent::uninstall())
           return
false;
       return
true;
   }
   
   private function
_postValidation()
   {
       if (isset(
$_POST['btnSubmit']))
       {
           if (empty(
$_POST['rb_merchant_login']))
               
$this->_postErrors[] = $this->l('Merchant Login is required');
           elseif (empty(
$_POST['rb_password1']))
               
$this->_postErrors[] = $this->l('Robokassa password1 is required');
           elseif (empty(
$_POST['rb_password2']))
               
$this->_postErrors[] = $this->l('Robokassa password2 is required');
       }
   }

   private function
_postProcess()
   {
       if (isset(
$_POST['btnSubmit']))
       {
           
Configuration::updateValue('RB_MERCHANT_LOGIN', $_POST['rb_merchant_login']);
           
Configuration::updateValue('RB_PASSWORD1', $_POST['rb_password1']);
           
Configuration::updateValue('RB_PASSWORD2', $_POST['rb_password2']);
       }
       
$this->_html .= '<div class="conf confirm"><img src="../img/admin/ok.gif" alt="'.$this->l('OK').'" /> '.$this->l('Settings updated').'</div>';
   }
   
   private function
_displayRb()
   {
       
$this->_html .= '<img src="../modules/robokassa/robokassa.png" style="float:left; margin-right:15px;"><b>'.$this->l('This module allows you to accept payments by RoboKassa.').'</b><br /><br />
       '
.$this->l('You need to register on the site').' <a href="https://robokassa.ru" target="blank">robokassa.ru</a> <br /><br /><br />';
   }
   
   private function
_displayForm()
   {
       
$this->_html .=
       
'<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
           <fieldset>
           <legend><img src="../img/admin/contact.gif" />'
.$this->l('Contact details').'</legend>
               <table border="0" width="500" cellpadding="0" cellspacing="0" id="form">
                   <tr><td colspan="2">'
.$this->l('Please specify required data').'.<br /><br /></td></tr>
                   <tr><td width="140" style="height: 35px;">'
.$this->l('RoboKassa Merchant Login').'</td><td><input type="text" name="rb_merchant_login" value="'.htmlentities(Tools::getValue('rb_merchant_login', $this->rb_merchant_login), ENT_COMPAT, 'UTF-8').'" style="width: 300px;" /></td></tr>
                   <tr><td width="140" style="height: 35px;">'
.$this->l('RoboKassa Password1').'</td><td><input type="text" name="rb_password1" value="'.htmlentities(Tools::getValue('rb_password1', $this->rb_password1), ENT_COMPAT, 'UTF-8').'" style="width: 300px;" /></td></tr>
                   <tr><td width="140" style="height: 35px;">'
.$this->l('RoboKassa Password2').'</td><td><input type="text" name="rb_password2" value="'.htmlentities(Tools::getValue('rb_password2', $this->rb_password2), ENT_COMPAT, 'UTF-8').'" style="width: 300px;" /></td></tr>
                   <tr><td colspan="2" align="center"><br /><input class="button" name="btnSubmit" value="'
.$this->l('Update settings').'" type="submit" /></td></tr>
               </table>
           </fieldset>
       </form>'
;
   }

   function
getContent()
   {
       
$this->_html = '<h2>'.$this->displayName.'</h2>';

       if (!empty(
$_POST))
       {
           
$this->_postValidation();
           if (!
sizeof($this->_postErrors))
               
$this->_postProcess();
           else
               foreach (
$this->_postErrors AS $err)
                   
$this->_html .= '<div class="alert error">'. $err .'</div>';
       }
       else
           
$this->_html .= '<br />';

       
$this->_displayRb();
       
$this->_displayForm();

       return
$this->_html;
   }

   function
hookPayment($params)
   {
       global
$smarty;
       
       
$delivery = new Address(intval($params['cart']->id_address_delivery));
       
$invoice = new Address(intval($params['cart']->id_address_invoice));
       
$customer = new Customer(intval($params['cart']->id_customer));                
               
       
$currency      = $this->getCurrency();
       
$amount        = number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency), 2, '.', '');
       
$order_id      = $params['cart']->id;
       
$description   = 'Оплата товаров на сайте '.$_SERVER['SERVER_NAME'];              
       
$rb_password1    = Configuration::get('RB_PASSWORD1');
       
$rb_mrh_login  = Configuration::get('RB_MERCHANT_LOGIN');
       
$rb_sign       = md5("$rb_mrh_login:$amount:$order_id:$rb_password1");

               
       
$smarty->assign(array(
           
'robokassaUrl'          => 'https://merchant.roboxchange.com/Index.aspx',
           
//'robokassaUrl'          => 'http://test.robokassa.ru/Index.aspx',
           
'rb_payment_amount'     => $amount,
           
'rb_payment_id'         => $order_id,
           
'rb_payment_desc'       => $description,
           
'rb_mrh_login'          => $rb_mrh_login,
           
'rb_sign'               => $rb_sign,
           
'this_path'             => $this->_path,
           
'this_path_ssl'         => Configuration::get('PS_FO_PROTOCOL').$_SERVER['HTTP_HOST'].__PS_BASE_URI__."modules/{$this->name}/"));

       return
$this->display(__FILE__, 'robokassa.tpl');
   }
   
   public function
getL($key)
   {
       
$translations = array(
           
'success'=> 'Robokassa transaction is carried out successfully.',
           
'fail'=> 'Robokassa transaction is refused.'
       
);
       return
$translations[$key];
   }

   public function
hookPaymentReturn($params)
   {
       if (!
$this->active)
           return ;

       return
$this->display(__FILE__, 'confirmation.tpl');
   }
   
}

?>

mistral

Показ ошибок включите, чтобы строку знать в которой ошибка.

NightTray

#2
После изменения AdminProductsController, сайт поменялся стал 1.6.1.1 хотя я его обновлял до этой версии неделю назад ничего не менялось, пропал вообще модуль робокассы хотя в модулях есть, сейчас переставил модуль, но не видит перевозчиков, они есть но пишет в данном регионе не обслуживает ни 1 перевозчик, разбираюсь теперь с новыми проблемам... 

Все решилось снял галку "Я хочу использовать расширенную систему управления запасами для этого товара" видимо он после обновы по дефолту настройки сделал частично, странно, но теперь нет ошибки робокассы и т.д. Он как-будто в старой версии был даже обнову игнорил, а как я всковырнул тот файлик в контроллере он очнулся.