1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Обсуждение Приват24 + Virtuemart

Тема в разделе "Virtuemart", создана пользователем crimea13, 3 дек 2009.

XEvil 4.0 Релиз Состоялся!
Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. herch

    herch Создатель

    Регистр.:
    17 ноя 2012
    Сообщения:
    11
    Симпатии:
    0
    Вот метод переделки стандартного модуля оплаты под Приват24. Привожу полностью. Совместными усилиями можно сделать нормальный модуль


    Для начала необходимо сходить по адресу http://e.privatbank.ua/title_acquiring.htm и скачать пакет документов по подключению магазина к платежной системе Приватбанка SENTRY

    Создавать плагин будем для платформы Joomla 2.5.6 и Virtuemart 2.0.10

    Что должен делать этот плагин - создать метод оплаты за товар «Кредитной картой» который будет перенаправлять покупателя на сайт платежной системы банка для ввода номера карты, CVV- кода, срока окончания карты и естественно суммы платежа (сумму клиент вводить не будет так как она передается в post-массиве от магазина в банк)

    Итак начнем.

    Чтобы облегчить себе жизнь мы не будем делать все с нуля , а попытаемся приспособить для этой цели плагин который входит в комплект
    установочного пакета Virtuemart – это VM - Payment, Standard из файлов которого мы путем небольшой переделки получим установочные файлы для нашего плагина который назовем privat24.

    1 Скопируем в сторонку файлы плагина Standard

    root/plugins/vmpayment/standard/standard.php
    root/plugins/vmpayment/standard/standard.xml

    где root — это корень Вашего сайта
    переименуем эти файлы в
    privat24.php
    privat24.xml
    соответственно

    2 Создадим еще два файла которые нам понадобятся для ведения лога работы нашего плагина – мы будем заносить в таблицу базы данных значения параметров обмена магазина с банком и банка с магазином – install.sql и uninstall.sql
    Файл install.sql создает в БД магазина дополнительную таблицу #_privat_log где # - префикс вашей БД
    Вот его код:

    CREATE TABLE IF NOT EXISTS `#__privat_log` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `direction` varchar(55) NOT NULL,
    `postnamevalue` longtext ,
    `recorddatetime` datetime,
    PRIMARY KEY (`id`)
    ) DEFAULT CHARACTER SET utf8;

    файл uninstall.sql — нужен для удаления этой таблицы из БД в случае если захочется деинсталлировать плагин

    3 Теперь начнем курочить файлы privat24.xml и privat24.php
    Берем privat24.xml — удаляем в нем все строки и вставляем свои :

    <?xml version="1.0" encoding="utf-8"?>
    <install version="2.5" type="plugin" metod="upgrade" group="vmpayment">
    <name>privat24</name>
    <author>Boot Alexander</author>
    <creationDate>Oct 23, 2012</creationDate>
    <authorEmail>alexboot@spk.in.ua</authorEmail>
    <authorUrl>http://www.spk.in.ua/</authorUrl>
    <version>1.001</version>
    <licence>GNU/GPL http://www.gnu.org/licenses/gpl.html</licence>
    <description>
    <![CDATA[<p>Plugin for Privat24 payment <br />
    (c) 2012 Boot Alexander<br />
    После установки значения параметров соответствуют тестовому режиму. <br />
    Подробности по подключению к банку смотри на http://e.privatbank.ua/title_privat24.htm]]>
    </description>

    <files>
    <filename plugin="privat24">privat24.php</filename>
    <filename>install.sql</filename>
    <filename>uninstall.sql</filename>
    </files>

    <!-- SQL query files to execute on installation -->
    <install>
    <sql>
    <file driver="mysql" charset="utf8">install.sql</file>
    <file driver="mysql">install.sql</file>
    <file driver="mysqli" charset="utf8">install.sql</file>
    <file driver="mysqli">install.sql</file>
    </sql>
    </install>

    <!-- SQL query files to execute on uninstallation -->
    <uninstall>
    <sql>
    <file driver="mysql" charset="utf8">uninstall.sql</file>
    <file driver="mysql">uninstall.sql</file>
    <file driver="mysqli" charset="utf8">uninstall.sql</file>
    <file driver="mysqli">uninstall.sql</file>
    </sql>
    </uninstall>


    <params>
    <param name="Version" type="text" size="32" default="1.0.0" label="Version" description="Версия Sentry" />
    <param name="MerID" type="text" size="32" default="100000000918471" label="MerID" description="Номер Вашего предприяти выданый ПриватБанком при регистрации" />
    <param name="MerPsw" type="password" default="j8O5Eek7" label="MerPsw" description="Пароль выданый ПриватБанком при регистрации" />
    <param name="BankURL" type="text" size="254" default="https://www.verification.privatbank...Application/CheckoutPage_ru/CheckoutPage.aspx" label="BankURL" description="адрес сервера Sentry, на который должен отсылаться запрос по оплате" />
    <param name="merRespURL" type="text" size="254" default="https://www.verification.privatbank.ua/SENTRY/PaymentGateway/Application/wfrmresponse.aspx" label="merRespURL" description="URL, на который система должна перенаправлять клиента с результатом платежа " />
    <param name="merRespURL2" type="text" size="254" default="" label="merRespURL2" description="URL, на который система должна отправлять ответ с результатом платежа напрямую, параллельно отправке через браузер клиента" />
    <param name="AcqID" type="text" size="32" default="414963" label="AcqID" description="AcqID" />
    <param name="PurchaseCurrency" type="text" size="3" default="980" label="PurchaseCurrency" description="980-гривна" />
    <param name="PurchaseCurrencyExponent" type="text" size="2" default="2" label="PurchaseCurrencyExponent" description="экспонента суммы покупки (количество знаков выделяемое под дробную часть)" />
    <param name="SignatureMetod" type="radio" default="SHA1" label="Signature Metod" description="Метод шифрования подписи (SHA1 или MD5), SHA1 по умолчанию">
    <option value="SHA1">SHA1</option>
    <option value="MD5">MD5</option>
    </param>
    <param name="CaptureFlag" type="radio" default="A" label="Signature Metod" description="A или M – флаг указывает на автоматическое(A) или ручное(M) подтверждение транзакции . 'А' - по умолчанию">
    <option value="A">A</option>
    <option value="M">M</option>
    </param>
    </params>
    </install>

    4 Редактируем файл privat24.php
    Для отключения отправки писем админу магазина о факте совершения заказа и покупателю с реквизитами этого заказа ищем код типа
    $order['customer_notified'] = 1;
    и меняем 1 на 0
    $order['customer_notified'] = 0;

    Этого можно не делать если Вы хотите чтобы и письма тоже приходили
    В начало файла примерно после кода
    /**
    * Create the table for this plugin if it does not yet exist.
    * @author Val?rie Isaksen
    */
    public function getVmPluginCreateTableSQL() {
    return $this->createTableSQL('Payment privat24 Table');
    }
    вставляем две своих функции типа
    /*
    Функция получения массива параметров плагина из поля таблицы БД #__virtuemart_paymentmethods
    */
    function getParamsArray($strvar){
    $arr=explode('|',$strvar); // разбиваем строку на отдельне части разделенные символом "|" и запоминаем в массив $arr
    $len = count($arr)-1; // получаем количество параметров

    for ($i=0; $i<$len; $i++) {
    $pos = strpos($arr[$i],'=')+1; // находми позицию с которой начинается значение параметра
    $name[$i] = substr($arr[$i],0,$pos-1);
    $value[$i] = substr($arr[$i],$pos);
    // В значении параметра убираем сомволы '"' и '\'
    $sm = array();
    $sm[0] ='"'; $sm[1]=chr(92);
    $value[$i]= str_replace($sm,"",$value[$i]);
    // ----------------------------------------
    }

    $res = array_combine($name, $value);
    return $res;

    }
    /* Эта функция приведена в "РУКОВОДСТВО по интеграции интернет-магазина
    с модулем проведения платежей SENTRY "
    */

    function hexbin($temp) {
    $data="";
    $len = strlen($temp);
    for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($temp,$i,2)));
    return $data;
    }

    далее после кода
    $html .= $this->getHtmlRow('STANDARD_AMOUNT', $currency->priceDisplay($order['details']['BT']->order_total), "vmorder-done-amount");
    $html .= '</table>' . "\n";

    вставляем свой код который определяет кнопку «Перейти к оплате картой ?»
    В данном случае это html форма , обеспечивающая отображени пресловутой кнопки и передачу параметров в банк методом post (см. документацию скачанную с сайта приватбанка)


    // Получение значений параметров плагина
    $qparams = 'SELECT `payment_params` FROM `#__virtuemart_paymentmethods` WHERE `virtuemart_paymentmethod_id`="' .$order['details']['BT']->virtuemart_paymentmethod_id.'" ';
    $dbparams = JFactory::getDBO();
    $dbparams->setQuery($qparams);
    $params = $dbparams->loadResult();
    $p=$this->getParamsArray($params);

    /* Параметры передаваемые на сервер Приват банка методом post
    1 Version обязательное
    2 MerID обязательное
    3 MerRespURL обязательное
    4 MerRespURL2 опциональное
    5 AcqID обязательное
    6 PurchaseAmt обязательное
    7 PurchaseCurrency обязательное
    8 PurchaseAmt2 опциональное
    9 PurchaseCurrency2 опциональное
    10 AdditionalData опциональное
    11 Reversal опциональное
    12 OrderID обязательное
    13 PurchaseCurrencyExponent обязательное
    14 SignatureMethod опциональное
    15 Signature обязательное
    16 CaptureFlag опциональное
    */


    $Version = $p['Version'];
    $MerID = $p['MerID'] ;
    $MerRespURL = $p['merRespURL'];
    $MerRespURL2 = "";
    $AcqID = $p['AcqID'];

    // $PurchaseAmt = round($order['details']['BT']->order_total,2)*100; //сумма в копейках грн. в боевом режиме раскоментировать
    $PurchaseAmt = 100; // для теста 1 грн в боевом режиме закоментировать
    while( strlen($PurchaseAmt)<12) {$PurchaseAmt="0".$PurchaseAmt;}

    $PurchaseCurrency = $p['PurchaseCurrency'];
    $PurchaseAmt2 = "";
    $PurchaseCurrency2 = "";
    $AdditionalData = "";
    $Reversal = "";

    $OrderID = 'TEST_SPKSHOPTESTMERCHANT_'.date("d/m/y")."_".date("H:i:s")."_".$order['details']['BT']->virtuemart_order_id;//Для теста

    $PurchaseCurrencyExponent = $p['PurchaseCurrencyExponent'];

    $SignatureMethod =$p['SignatureMetod'];
    $str = $p['MerPsw'].$MerID.$AcqID.$OrderID.$PurchaseAmt.$PurchaseCurrency.$PurchaseAmt2.$PurchaseCurrency2.$AdditionalData.$Reversal;
    // var_dump($str);
    $s1 = sha1($str);
    $s1 = $this->hexbin($s1);
    $Signature = base64_encode($s1);
    $CaptureFlag = $p['CaptureFlag'];



    /* Форма передачи данных в банк */
    $html.= '<form id="checkout" name="checkout" method="post" target="_blank"' ;
    $html.= 'action="'.$p['BankURL'].'"';
    $html.='>';
    $html.= '<input id="Version" type="hidden" name="Version" value="'.$Version.'"/>';
    $html.= '<input id="MerID" type="hidden" name="MerID" value="'.$MerID.'"/>';
    $html.= '<input id="MerRespURL" type="hidden" name="MerRespURL" value="'.$MerRespURL.'"/>';
    $html.= '<input id="MerRespURL2" type="hidden" name="MerRespURL2" value="'.$MerRespURL2.'"/>';
    $html.= '<input id="AcqID" type="hidden" name="AcqID" value="'.$AcqID.'"/>';
    $html.= '<input id="PurchaseAmt" type="hidden" name="PurchaseAmt" value="'.$PurchaseAmt.'"/>';
    $html.= '<input id="PurchaseCurrency" type="hidden" name="PurchaseCurrency" value="'.$PurchaseCurrency.'"/>';
    $html.= '<input id="PurchaseAmt2" type="hidden" name="PurchaseAmt2" value="'.$PurchaseAmt2.'"/>';
    $html.= '<input id="PurchaseCurrency2" type="hidden" name="PurchaseCurrency2" value="'.$PurchaseCurrency2.'"/>';
    $html.= '<input id="AdditionalData" type="hidden" name="AdditionalData" value="'.$AdditionalData.'"/>';
    $html.= '<input id="Reversal" type="hidden" name="Reversal" value="'.$Reversal.'"/>';
    $html.= '<input id="OrderID" type="hidden" name="OrderID" value="'.$OrderID.'"/>';
    $html.= '<input id="PurchaseCurrencyExponent" type="hidden" name="PurchaseCurrencyExponent" value="'.$PurchaseCurrencyExponent.'"/>';
    $html.= '<input id="SignatureMethod" type="hidden" name="SignatureMethod" value="'.$SignatureMethod.'"/>';
    $html.= '<input id="Signature" type="hidden" name="Signature" value="'.$Signature.'"/>';
    $html.= '<input id="CaptureFlag" type="hidden" name="CaptureFlag" value="'.$CaptureFlag.'"/>';


    $html.= '<input type="submit" style="background: #FF8040; color: #000000;" value="Перейти к оплате картой ?" />';
    $html.= '</form>';


    // Записываем в базу данных лог переданных в банк post-параметров
    $datetime = date("y/m/d")."_".date("H:i:s");
    $log='';
    $log.='Version='.$Version.'|'.'MerID='.$MerID.'|';
    $log.='MerRespURL='.$MerRespURL.'|'.'MerRespURL2='.$MerRespURL2.'|';
    $log.='AcqID='.$AcqID.'|'.'PurchaseAmt='.$PurchaseAmt.'|'.'PurchaseCurrency='.$PurchaseCurrency.'|';
    $log.='PurchaseAmt2='.$PurchaseAmt2.'|'.'PurchaseCurrency2='.$PurchaseCurrency2.'|';
    $log.='AdditionalData='.$AdditionalData.'|'.'Reversal='.$Reversal.'|'.'OrderID='.$OrderID.'|';
    $log.='PurchaseCurrencyExponent='.$PurchaseCurrencyExponent.'|';
    $log.='$SignatureMethod='.$SignatureMethod.'|'.'Signature='.$Signature.'|'.'CaptureFlag='.$CaptureFlag;



    $qpost = "INSERT INTO `#__privat_log` (`direction`,`postnamevalue`,`recorddatetime`) VALUES('Передача в банк','$log','$datetime')";
    $dbpost = JFactory::getDBO();
    $dbpost->setQuery($qpost);
    $dbpost->query();

    Ну вот собственно и весь процесс создания.
    Обратите внимания на следующее в последнем куске нашего кода
    а)
    // $PurchaseAmt = round($order['details']['BT']->order_total,2)*100; //сумма в копейках грн. в боевом режиме раскоментировать
    $PurchaseAmt = 100; // для теста 1 грн в боевом режиме закоментировать
    б)
    $OrderID = 'TEST_SPKSHOPTESTMERCHANT_'.date("d/m/y")."_".date("H:i:s")."_".$order['details']['BT']->virtuemart_order_id;//Для теста в боевом режиме закоментировать
    // $OrderID = 'SPKSHOP_MERCHANT_'.date("d/m/y")."_".date("H:i:s")."_".$order['details']['BT']->virtuemart_order_id;// в боевом режиме раскоментировать

    Попробуем установить плагин
    ОБЯЗАТЕЛЬНО ДЕЛАЕМ ПОЛНЫЙ БЭКАП САЙТА
    заливаем по ftp файлы privat24.php, privat24.xml, install.sql, unistall.sql в папка root/tmp/
    затем в админке магазина «Расширения»=>«Менеджер расширений»=>«Установить из каталога» устанавливаем плагин
    в менеджере плагинов публикуем его
    в «Компоненты» => «Virtuemart» => «Способы оплаты» создаем способ оплаты «Кредитной картой» и выбираем в поле «способ оплаты » из выпадающего списка наш плагин privat24 . Публикуем

    Все это хорошо скажите Вы , но в этом случае покупатель после проведения платежа на сайте банка не возвращается на страничку в магазине, а
    перенаправляется банком куда-то в недра их сайта на страницу (причем англоязычную) где ему сообщают о результате проведенной транзакции (проще говоря — прошло списание с карты или нет).
    Да это так. Ведь у Вас на магазинном сайте не поднят SSL и нет SSL-сертификата для основных браузеров типа IE, Firefox,Chrome, Opera, Netscape и т. д

    Ну что же связывайтесь с провайдером по этому вопросу платите денег за статик ip и сертификат (мне это обошлось 88 у.е в год). Ну короче не бесплатный гемморой.
    Так вот если вы все таки решите что необходимо обрабатывать ответы банка по транзакциям на сайте магазина то предлагаю следующую схему

    Идем на сайт http://www.nonumber.nl и скачиваем бесплатную версию на мой взгляд очень полезного модуля Modules Anywhere который позволяет вставить вызов произвольного модуля в статью. Устанавливаем его — в результате в редакторе статьи должна появиться кнопка «Вставить модуль»

    Теперь создаем свой модуль обработки ответов банка который состоит из двух файлов
    mod_privat_answer_processing.php и mod_privat_answer_processing.xml

    Модуль этот не имеет параметров , а просто тупо выводит покупателю результат банковской транзакции
    Вот код
    mod_privat_answer_processing.xml :

    <?xml version="1.0" encoding="utf-8"?>
    <extension type="module" version="2.5" method="upgrade">

    <name>mod_privat_answer_processing</name>
    <creationDate>30.10.2012</creationDate>
    <author>Boot Alexander</author>
    <authorEmail>alexboot@spk.in.ua</authorEmail>
    <license>License free</license>
    <version>0.0.1</version>
    <description>
    <![CDATA[<p>Module PrivatBank answer processing <br />
    (c) 2012 Boot Alexander<br />
    Модуль обрабатывает ответ системы проведения платежей SENTRY (Приватбанк) <br />
    который она возвращает методом post на адрес мерчанта указанный в параметре MerRespURL
    (см. "Плагин оплаты через Приватбанк") <br />
    Модуль не имеет параметров <br />
    Подробности по подключению к банку смотри на http://e.privatbank.ua/title_privat24.htm]]>
    </description>
    <files>
    <filename module="mod_privat_answer_processing">mod_privat_answer_processing.php</filename>

    <filename>mod_privat_answer_processing.xml</filename>
    </files>
    </extension>


    А это mod_privat_answer_processing.php

    <?php

    // no direct access
    defined('_JEXEC') or die;

    echo 'Счет номер: '.$_POST["OrderID"].'<br/>'.'<br/>';
    switch($_POST['ReasonCode']) {
    case 1:
    if ($_POST['ReasonCode'] == 1) {
    echo 'Ваш платеж успешно завершен';}
    else break;
    break;

    default:
    if($_POST['ReasonCode'] == 4 or $_POST['ReasonCode'] == 3){
    echo 'Платеж отклонен. Пожалуйста, обратитесь в Ваш банк-эмитент.';break; }

    if($_POST['ReasonCode'] == 2){
    echo 'Платеж отклонен. Пожалуйста, обратитесь в Ваш банк-эмитент.'."<br/>".
    'Проверьте возможные причины: '."<br/>".
    '- неверный ввод реквизитов Вашей карты'."<br/>".
    '- недостаточно средств на счете'."<br/>".
    '- по Вашей карте не разрешены расчеты в Интернет';break;}

    if($_POST['ReasonCode'] == 13){
    echo 'Извините, Ваш платеж отклонен.'."<br/>".
    'В данном Интернет-магазине не возможна оплата по картам'."<br/>".
    'данной платежной системы ';break;}

    if($_POST['ReasonCode'] == 14){
    echo 'При проведении транзакции неверно указана валюта платежа'."<br/>".
    'Валюта платежа отличная от разрешенной для мерчанта.';break;}

    if($_POST['ReasonCode'] == 15){
    echo 'Извините.'."<br/>".
    'Проведение платежей временно недоступно,'."<br/>".
    'попробуйте позже.';break;}

    if($_POST['ReasonCode'] == 18){
    echo 'Ваш платеж отклонен.'."<br/>".
    'Пожалуйста, проверьте правильность ввода'."<br/>".
    'реквизитов Вашей карты.';break;}

    if($_POST['ReasonCode'] == 23){
    echo 'Ваш платеж отклонен.'."<br/>".
    'Пожалуйста, проверьте правильность'."<br/>".
    'ввода реквизитов Вашей карты.';break;}

    if($_POST['ReasonCode'] == 32){
    echo 'Извините.'."<br/>".
    'Проведение платежей временно недоступно,'."<br/>".
    'попробуйте позже.';break;}

    if($_POST['ReasonCode'] == 34){
    echo 'Аутентификация по стандарту 3-D Secure прошла с ошибкой.'."<br/>".
    'Пожалуйста, обратитесь в Ваш банк эмитент.';break;}

    if($_POST['ReasonCode'] == 38){
    echo 'Проведение платежа по Вашей карте в данный момент невозможно.'."<br/>".
    'Возможная причина – по Вашей карте не разрешены расчеты в Интернет.'."<br/>".
    'Пожалуйста, обратитесь в Ваш Банк-Эмитент.';break;}

    if($_POST['ReasonCode'] == 39 or $_POST['ReasonCode'] == 52){
    echo 'Извините.'."<br/>".
    'Проведение платежей временно недоступно,'."<br/>".
    'попробуйте позже.';break;}

    if($_POST['ReasonCode'] == 36){
    echo 'Извините.'."<br/>".
    'Транзакция отменена клиентом';break;}

    if($_POST['ReasonCode'] == 35 or $_POST['ReasonCode'] == 50){
    echo 'Извините.'."<br/>".
    'Платеж отклонен.'."<br/>".
    'Обратитесь к администратору Вашего Интернет-магазина.';break;}

    if($_POST['ReasonCode'] == 40 or $_POST['ReasonCode'] == 53){
    echo 'Извините.'."<br/>".
    'Платеж отклонен.'."<br/>".
    'Обратитесь к администратору Вашего Интернет-магазина.';break;}

    if($_POST['ReasonCode'] == 401 or $_POST['ReasonCode'] == 4501 or $_POST['ReasonCode'] == 1821){
    echo 'Пожалуйста, закройте окно браузера'."<br/>".
    'и повторите платеж заново.'."<br/>".
    'Предыдущий платеж не был завершен.';break;}

    if($_POST['ReasonCode'] == 90){
    echo 'Извините.'."<br/>".
    'Проведение платежей временно недоступно,'."<br/>".
    'попробуйте позже.';break;}

    }
    // Записываем в базу данных лог принятых от банка post-параметров
    $log='';
    foreach($_POST as $key=>$value){$log.="$key=$value"."|";}
    $qpost = "INSERT INTO `#__privat_log` (`direction`,`postnamevalue`,`recorddatetime`) VALUES('Прием из банка','$log','$datetime')";
    $dbpost = JFactory::getDBO();
    $dbpost->setQuery($qpost);
    $dbpost->query();
    // no closing tag


    Как вы видите код не дюже замысловатый и нет проверки signature (подписи банка ) как требует «Руководство по подключению..» (вдруг ответ от банка на самом деле не от банка а от Саддама Хусейна с того света) — ну да ладно для начала и так сойдет.
    Не забываем про бэкап.
    Устанавливаем наш модуль по процедуре описанной выше для плагина испольуя файлы
    mod_privat_answer_processing.php и
    mod_privat_answer_processing.xml

    После установки и публикации нашего модуля (позицию в настройка модуля не задаем) создаем пустую статью с названием например «Банк сообщает» и нажав кнопку «Вставить модуль»
    выбираем наш mod_privat_answer_processing
    Публикуем статью без какой либо привязки к меню.
    Запоминаем id этой статьи у меня это 84
    Идем в Virtuemart – способы оплаты и в настройках нашего плагина в поле merRespURL вводим следующий URL

    https://ваш сайт/index.php?option=com_content&view=article&id=84

    The END
     
  2. solor

    solor Создатель

    Регистр.:
    8 апр 2010
    Сообщения:
    36
    Симпатии:
    3
    Модуль рабочий под Виртуэмарт 2 или требует переделки?
     
  3. herch

    herch Создатель

    Регистр.:
    17 ноя 2012
    Сообщения:
    11
    Симпатии:
    0
    ну так как это модернизация стандартного модуля оплаты вирта, то требует подгонки под свои параметры. А хотелось бы отдельный модуль, с более легкой процедурой подключения
     
  4. solor

    solor Создатель

    Регистр.:
    8 апр 2010
    Сообщения:
    36
    Симпатии:
    3
    Здесь упоминали о Интеллектмани. Кто нибудь пользовался? Работает под Виртумарт 2?
     
  5. solor

    solor Создатель

    Регистр.:
    8 апр 2010
    Сообщения:
    36
    Симпатии:
    3
    А чем он стремный? Работает или нет? Расскажи подробней.
     
  6. cuba

    cuba Создатель

    Регистр.:
    15 июн 2012
    Сообщения:
    31
    Симпатии:
    8
    Это замечательно, но как быть со сменой статуса заказа? Если вы допилили данное решение поделитесь пожалуйста.
     
  7. herch

    herch Создатель

    Регистр.:
    17 ноя 2012
    Сообщения:
    11
    Симпатии:
    0
    Не допиливал, пока нет зарегистрированного мерчанта. Вроде в конце статьи приведен метод, как раз с обработкой виртом оплаты.
     
  8. zavrus

    zavrus

    Регистр.:
    29 май 2009
    Сообщения:
    176
    Симпатии:
    79
    модуль оплаты Приват 24
     
  9. fenix-77

    fenix-77

    Регистр.:
    18 мар 2014
    Сообщения:
    162
    Симпатии:
    67
    У меня после сборки модуля по этой инструкции и последующей установки когда идешь на главную магазина Joomla пишет Fatal error: Cannot redeclare class plgVmPaymentStandard. Нашол еще один форум по этому методу, там у товарища та же проблема ... (
     
  10. Bezhev

    Bezhev

    Регистр.:
    26 дек 2012
    Сообщения:
    364
    Симпатии:
    124
    Может кто-нибудь перевыложить?