Internal server error при оформлении заказа Тинькофф

Тема в разделе "Общие вопросы", создана пользователем Yuran, 15 июн 2024.

  1. Yuran

    Yuran Новичок

    Сообщения:
    13
    Симпатии:
    0
    Версия opencart-3.0.3.9-rs с этого сайта. Установлен шаблон Unishop 2. Интернет эквайринг банка Тинькофф. Облачная касса cloudkassir. Платежный модуль отсюда https://www.tinkoff.ru/kassa/dev/cms/opencart/3_0/
    Данные тестового терминала прописаны. При нажатии на кнопку "Оформить заказ" - получаю такое всплывающее окно

    upload_2024-6-15_0-55-16.png
    В консоли висит такая ошибка
    upload_2024-6-15_1-8-1.png
    В журнале ошибок такая запись
    PHP Warning: require_once(/....../site.ru/catalog/model/extension/payment/TBankMerchantAPI.php): failed to open stream: No such file or directory in /....../site.ru/catalog/model/extension/payment/tbank.php on line 64
    Вроде понятно, что ругается на остутствие файла... Но как так то? Только недавно перевели Тинькофф в Т-Банк:)
    Посмотрел 64 строку... Там такое require_once __DIR__ . '/TBankMerchantAPI.php';
    Посмотрел этот файл в директории, он оказывается tbankMerchantAPI.php.... Переименовал его в TBankMerchantAPI.php. Платежная форма стала открываться....
    Это капец какой то... Поставил в настройках "Передавать данные для формирования чека"
    Теперь снова Internal server error в всплывающем окне две штуки...
    Может кто то сталкивался с подобным ребята? Есть какие то мысли или советы?
    Вроде Тинькоф такой нормальный банк для бизнеса.... а модуль какой то рукожопый.... Или купить платный модуль Тинькофф? Есть у кого то опыт работы с этим Т-Банк?

    На cs-cart замучился танцевать с бубнами... Но он версии Free, оно и понятно, что что то путное на нем вряд ли сделаешь. А с opencart вроде получше... платные модули можно и купить. Прошу извинить за сумбурность... немного просто подустал:)
     
    Последнее редактирование: 15 июн 2024
  2. Tesloz

    Tesloz Специалист

    Сообщения:
    140
    Симпатии:
    69
    Включи показ ошибок 500 на сайте:
    В файле index.php вставь после открывающего <?php
    PHP:
    ini_set('display_errors'1);
    ini_set('display_startup_errors'1);
    error_reporting(E_ALL);
    сохранись.
    попробуй сново оформить заказ, покажет уже ошибку подробнее.
    Вижу поставили, теперь вы видите вашу ошибку:
    PHP:
    Fatal errorUncaught ErrorCannot access private property Cart\Cart::$session in /var/www/admin/data/www/bezumka.ru/catalog/model/extension/payment/tbank.php:105
     
    Последнее редактирование: 15 июн 2024
  3. Yuran

    Yuran Новичок

    Сообщения:
    13
    Симпатии:
    0
    В 105-й строке такой код
    $session = $this->cart->session->data;
    Не подскажете что не так с доступом к сессии? В кодинге к сожалению очень слаб.... особенно со стрелочками:)
    Получается что ошибка в платежном модуле...или как то сессии надо настроить по особенному.... Или забить и приобрести платный модуль? Или попросить разработчиков модуля исправить ошибку... Одни ИЛИ:) Капец какой то:)
     
  4. zema50

    zema50 Продвинутый пользователь

    Сообщения:
    864
    Симпатии:
    99
    забудьте вы про модуль от тиньков, не знаю кто его им писал, но написан такое впечатление тот кто писал опенкрт видел первый раз ))) там столько косяков что править и править, поставьте платный и будет счастье )
     
    Yuran и Blast нравится это.
  5. Tesloz

    Tesloz Специалист

    Сообщения:
    140
    Симпатии:
    69
    Сделайте замены по порядку строк, что искать и заменять:
    105
    PHP:
    $session $this->cart->session->data;
    PHP:
    $session $this->session->data;
    109
    PHP:
    $price round($this->cart->tax->calculate($product['price'], $product['tax_class_id'], true) * 100);
    PHP:
    $price round($this->tax->calculate($product['price'], $product['tax_class_id'], true) * 100);
    130
    PHP:
    $price round($this->cart->tax->calculate($session['shipping_method']['cost'], $session['shipping_method']['tax_class_id'], true) * 100);
    PHP:
    $price round($this->tax->calculate($session['shipping_method']['cost'], $session['shipping_method']['tax_class_id'], true) * 100);
    154-155
    PHP:
    return isset($this->cart->session->data['shipping_method']['cost']) &&
                
    $this->cart->session->data['shipping_method']['cost'];
    PHP:
    return isset($this->session->data['shipping_method']['cost']) &&
                
    $this->session->data['shipping_method']['cost'];
    Не проверял, если не работает, проще купить.
     
    Drammer61, Romans, Ravilr и 3 другим нравится это.
  6. Yuran

    Yuran Новичок

    Сообщения:
    13
    Симпатии:
    0
    Спасибо большое ребята. Попробую конечно поменять в коде. Но скорее всего куплю платный нормальный модуль. Если есть конкретные модули - посоветуйте пожалуйста. Мне очень приятно, что нет игнора, и советуете поразбираться с существуюшим модулем от тинькофф, и есть возможность приобрести платный. Самое плохое - когда просишь помощи, а в ответ пустота или какие то никчемные советы. Здесь, в отличие от cs-csrt - реальные предложения решить проблему.
     
  7. Tom

    Tom Специалист

    Сообщения:
    1.047
    Симпатии:
    373
    Здесь нюанс есть.
    От Тинькова модуль реально дохлый. Пытался даже решить через их тех поддержку. Бесполезно.
    С платными модулями, тоже увы не всё так радужно. Перебрали 3. Тот же эффект. Тинькофф менял данные для подключения, а многим из авторов лень или нет смысла учесть это в обновлениях. Как с тем же СДЭК.
    Рекомендую поискать модули от Ashap. Не так бюджетно выходит, но работает.
     
    Tesloz нравится это.
  8. Yuran

    Yuran Новичок

    Сообщения:
    13
    Симпатии:
    0
    Сделал замены, все платежи с формированием чеков на тестовом терминале прошел без проблем. Наверное нужно как то согласовать эти изменения с поддержкой модуля тинькофф перед переходом на рабочий терминал.
    Tesloz - спасибо огромное!
     
  9. Drammer61

    Drammer61 Новичок

    Сообщения:
    1
    Симпатии:
    0
    Это действительно работает! Спасибо, добрый человек!