Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте!

При установке модуля возникла проблема, модуль встал, но на странице заказа кнопки нет. Стал копаться и по аналогии с методом robokassa в файле:

\system\storage\modification\catalog\controller\account\order.php

Добавил код

if ($order_info['payment_code'] && $order_info['payment_code']=='tinkoff') {
    $this->load->model('extension/payment/'.$order_info['payment_code']);
    if (isset($this->session->data['order_id'])) {
        $tmp_order_id=$this->session->data['order_id'];
    }
    $this->session->data['order_id']=$order_info['order_id'];
    
    $data['payment_view']=$this->load->controller($this->{'model_extension_payment_'
    .$order_info['payment_code']});
    
    if (isset($tmp_order_id)) {
        $this->session->data['order_id']=$tmp_order_id;
    }
    else {
        unset($this->session->data['order_id']);
    }
}

И получаем ошибку: Unknown: Object of class Proxy could not be converted to string in /system/storage/modification/system/engine/loader.php on line 11

В инструкции по модулю нет ни чего про то что надо модифицироать контроллеры.

Или модуль интегрируется как то иначе?

 

В контроллере \system\storage\modification\catalog\controller\checkout\checkout_simple.php он отрабатывает без проблем. Получается как то надо отрендерить view и присвоить в

$data['payment_view']

в \system\storage\modification\catalog\controller\account\order.php которая и выводит кнопку оплаты.

Изменено пользователем IvanDevelop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, IvanDevelop сказал:

но на странице заказа кнопки нет

на странице заказа, а вы зачем-то правите контроллер заказа в аккаунте
 

смотрите файлы + лог ошибок + лог ответов сервера на предмет 500 ответа
catalog/controller/extension/payment/tinkoff.php
catalog/view/theme/default/template/extension/payment/tinkoff.tpl

Изменено пользователем thentru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
25 минут назад, thentru сказал:

на странице заказа, а вы зачем-то правите контроллер заказа в аккаунте
 

смотрите файлы
catalog/controller/extension/payment/tinkoff.php
catalog/view/theme/default/template/extension/payment/tinkoff.tpl 

Там всё логично по коду, как то отрендерить view надо в контроллере по аналогии с методом robokassa. Как мне кажется...

Попробовал насильно форму тз документации tinfoff влепить:

$form = <<<FORM
<style>.tinkoffPayRow{display:block;margin:1%;width:160px;}</style>
<script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
<form name="TinkoffPayForm" onsubmit="pay(this); return false;">
	<input class="tinkoffPayRow" type="hidden" name="terminalkey" value="1526809637201DEMO">
	<input class="tinkoffPayRow" type="hidden" name="frame" value="true">
	<input class="tinkoffPayRow" type="hidden" name="language" value="ru">
    <input class="tinkoffPayRow" type="text" placeholder="Сумма заказа" name="amount" required>
    <input class="tinkoffPayRow" type="text" placeholder="Номер заказа" name="order">
    <input class="tinkoffPayRow" type="text" placeholder="Описание заказа" name="description">
    <input class="tinkoffPayRow" type="text" placeholder="ФИО плательщика" name="name">
    <input class="tinkoffPayRow" type="text" placeholder="E-mail" name="email">
    <input class="tinkoffPayRow" type="text" placeholder="Контактный телефон" name="phone">
    <input class="tinkoffPayRow btn btn-success" type="submit" value="Оплатить">
</form>
FORM;
$data['payment_view'] = $form;

Кнопка появляется, оплата работает, но ни как не связана с базой.

 

Шаблон tinkoff_checkout.tpl, тут и есть вывод нужной формы.

Изменено пользователем IvanDevelop
Дополнил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Допилил \system\storage\modification\catalog\controller\account\order.php

перед строкой

$this->response->setOutput($this->load->view('account/order_info', $data));

Следующее:

if ($order_info['payment_code'] && $order_info['payment_code']=='tinkoff') {
    $this->load->model('extension/payment/'.$order_info['payment_code']);
    if (isset($this->session->data['order_id'])) {
        $tmp_order_id=$this->session->data['order_id'];
    }
    $this->session->data['order_id']=$order_info['order_id'];
    $params = [
        'terminalkey' => $this->config->get('tinkoff_terminal_key'),
        'secret' => $this->config->get('tinkoff_secret_key'),
        'currency' => $order_info['currency_code'],
        'language' => $this->config->get('tinkoff_payment_language'),
        'frame' => 'true',
        'amount' => $order_info['total'],
        'order' => $order_info['order_id'],
        'description' => $order_info['comment'],
        'email' => $order_info['email'],
        'phone' => $order_info['telephone']
    ];
    $view = [
        'payment' => [
            'params' => $params
        ]
    ];
    $data['payment_view'] = $this->load->view($this->config->get('config_template') . '/extension/payment/tinkoff_checkout_custom.tpl', $view);

    if (isset($tmp_order_id)) {
        $this->session->data['order_id']=$tmp_order_id;
    }
    else {
        unset($this->session->data['order_id']);
    }
}

И создал view своё:

<style>.tinkoffPayRow{display:block;margin:1%;width:160px;}</style>
<script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
<form name="TinkoffPayForm" onsubmit="pay(this); return false;">
    <?php foreach($payment['params'] as $name => $value): ?>
    <input type="hidden" name="<?php echo $name; ?>" value="<?php echo $value; ?>">
    <?php endforeach; ?>
    <input class="tinkoffPayRow btn btn-success" type="submit" value="Оплатить">
</form>

Пока всё в норме, осталось прикрутить страницы ответов со сменой статуса и т.п.

После продолжу пост.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.