Модуль оплаты RBK money c их официального сайта

Тема в разделе "Модули оплаты и доставки", создана пользователем Родион К, 27.03.2017.

  1. Родион К
    Offline

    Родион К Недавно здесь

    Регистрация:
    27.03.2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Добрый день. Не работает модуль оплаты RBK money c их официального сайта для Joomla + Virtuemart3.
    В чем конкретно проблема: В одном предложении - в заказе во фронте не остается записи о выбранном способе оплаты РБК Money.

    Подробнее:
    Внимательно оценил сруктуру заказов в зависимости от выбранного плагина оплаты и содержание базы данных после заказа. Что увидел.
    Если я выбираю способ оплаты отличный от плагина RBK, то заполняется поле «дата выписывания счета» в базе данных и создается запись о том, что для выбранного способа оплаты созда заказ.
    Скрин: заполненные поля дата счета. Видно, что если paymentmethod = 4 или 3 (это не РБК), то delivery_date заполнено. Если paymentmethod = 6 - это РБК. То не заполнено
    [​IMG]
    также в базе данных видно, что на все заведенные варианты оплаты создаются таблицы с заказами.
    Скрин: структура базы данных. Видно что есть таблицы …_payment_plg_вид оплаты
    [​IMG]
    При этом, если открыть любой вид оплаты отличный от РБК, мы видим список заказов, которые были созданы с выбором данного вида оплаты
    [​IMG]
    Если открыть такую же таблицу для РБК, то мы видим что она пустая, хотя заказы есть (согласно статитсике в личном кабинете РБК)
    [​IMG]
    При этом в админке соотвественно заказ с оплатой standart выглядит вот так (т.е. способ оплаты заполнен, так как есть запись в подчиненой таблице):
    [​IMG]
    А заказ с выранным способом оплаты РБК выглядит вот так: все пусто на 3 скрине
    [​IMG][​IMG][​IMG]
    Получается что плагин изначально при оформлении заказа работает неверно и недозаполняет базу данных. Соответсвенно не обновляется статус скриптом notify.php, так как нечего обновлять - Заказа с таким типом оплаты в таблице нет.
    При этом сказать, что что-то неработает у меня в ядре тоже нельзя, так как другие виды оплаты, в частности standart и яндекс работают без проблем. Опять же то, что плагин установлен и активен - говорит то, что оплаты проходят - это видно в личном кабинете.
    В чем может быть проблема. Помогите плиз
     

    Вложения:

    Последнее редактирование модератором: 16.05.2017
  2.  
  3. Родион К
    Offline

    Родион К Недавно здесь

    Регистрация:
    27.03.2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Не понял как вставить скрины в текст. Но вроде во вложении идут по порядку)
    --- добавлено: 27.03.2017 ---
    Что еще накопал сам:
    В плагине стандарт, равно как и в яндексе есть кусок программы в процедуре plgVmConfirmedOrder немного отличаются но смысл один и тот же:

    Код (PHP):
    1. $this->getPaymentCurrency($method, $order['details']['BT']->payment_currency_id);
    2.         $currency_code_3 = shopFunctions::getCurrencyByID($method->payment_currency, 'currency_code_3');
    3.         $email_currency = $this->getEmailCurrency($method);
    4.  
    5.         $totalInPaymentCurrency = vmPSPlugin::getAmountInCurrency($order['details']['BT']->order_total,$method->payment_currency);
    6.  
    7.         $dbValues['payment_name'] = $this->renderPluginName ($method) . '<br />' . $method->payment_info;
    8.         $dbValues['order_number'] = $order['details']['BT']->order_number;
    9.         $dbValues['virtuemart_paymentmethod_id'] = $order['details']['BT']->virtuemart_paymentmethod_id;
    10.         $dbValues['cost_per_transaction'] = $method->cost_per_transaction;
    11.         $dbValues['cost_min_transaction'] = $method->cost_min_transaction;
    12.         $dbValues['cost_percent_total'] = $method->cost_percent_total;
    13.         $dbValues['payment_currency'] = $currency_code_3;
    14.         $dbValues['email_currency'] = $email_currency;
    15.         $dbValues['payment_order_total'] = $totalInPaymentCurrency['value'];
    16.         $dbValues['tax_id'] = $method->tax_id;
    17.         $this->storePSPluginInternalData ($dbValues);
    18.         $payment_info='';
    19.         if (!empty($method->payment_info)) {
    20.             $lang = JFactory::getLanguage ();
    21.             if ($lang->hasKey ($method->payment_info)) {
    22.                 $payment_info = vmText::_ ($method->payment_info);
    23.             } else {
    24.                 $payment_info = $method->payment_info;
    25.             }
    26.         }
    27.         if (!class_exists ('VirtueMartModelCurrency')) {
    28.             require(VMPATH_ADMIN . DS . 'models' . DS . 'currency.php');
    29.         }
    30.         $currency = CurrencyDisplay::getInstance ('', $order['details']['BT']->virtuemart_vendor_id);
    31.  
    32.         $html = $this->renderByLayout('post_payment', array(
    33.             'order_number' =>$order['details']['BT']->order_number,
    34.             'order_pass' =>$order['details']['BT']->order_pass,
    35.             'payment_name' => $dbValues['payment_name'],
    36.             'displayTotalInPaymentCurrency' => $totalInPaymentCurrency['display']
    37.         ));
    38.         $modelOrder = VmModel::getModel ('orders');
    39.         $order['order_status'] = $this->getNewStatus ($method);
    40.         $order['customer_notified'] = 1;
    41.         $order['comments'] = '';
    42.         $modelOrder->updateStatusForOneOrder ($order['details']['BT']->virtuemart_order_id, $order, TRUE);



    Ключевое здесь: вызов storePSPluginInternalData и updateStatusForOneOrder

    В плагине РБК такого в принципе нет. Но я вот не пойму, почему перерыл интернет, обращался в тех поддержку РБК и нет инфы. Как будто никто с этим не сталкивался.
    А как такое может быть, если в плагине в принципе нет куска работы с заказом

    Shurikkan: Родион, у нас на форуме все PHP/JS/HTML/CSS и т.п. оборачиваются соответствующими bb-кодами. Читай правила.
     
    Последнее редактирование модератором: 16.05.2017
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    А плагины и не обрабатывают заказ,а служат для определения показа варианта оплаты, определенном в конфиге варианта оплаты.
    Это для Вирта с 2.0
     
  5. Родион К
    Offline

    Родион К Недавно здесь

    Регистрация:
    27.03.2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Не понятно. А что тогда создает запись в таблице _virtuemart_payment_plg_rbkmoney.
    Для РБК она остается пустой, а для яндекса например заполняется.
    После этого заказ во фронте для яндекса выглядит вот так (оплата заполнена):
    Снимок экрана 2017-03-28 в 9.12.55.png

    А заказ во фронте с выбранным РБК оплаты не содержит, при этом с точки зрения платежа функционирует полностью
    Снимок экрана 2017-03-28 в 9.13.23.png
     
  6. Родион К
    Offline

    Родион К Недавно здесь

    Регистрация:
    27.03.2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Наконец-то я решил свой вопрос.
    Теперь у меня на сайте все настроено и работает благодаря платному плагину https://shop.vampirus.ru/shop/virtuemart2/rbk-money-payment-pligun-virtuemart-2-detail.html
    Рекомендую именно этот плагин вместо родного. Потому как:
    1) Он работает! Выбранный способ оплаты появляется в заказе и после оплаты меняется его статус
    2) Имеется грамотная и быстрая тех поддержка от разработчика. Реальная помощь в настройке
    3) Плагин имеет расширенную настройку, например можно задать логотип в типе оплаты
     

Поделиться этой страницей

Загрузка...