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

[Решено] Где находится обработка кнопки "Подтвердить заказ"

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

Коллеги, подскажите пожалуйста, где хранится обработка кнопки "Подтвердить заказ" (самый последний шаг) в форме оформления заказа.

 

Мне нужно сделать так, что бы если в выборе способа оплаты, клиент указал "Оплатить на сайте" (добавленный вручную пункт), то после нажатия кнопки "Подтвердить заказ" его редиректило на страницу платежной системы с которой у нас договор.

 

Никак не могу найти эту обработку :(

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


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

Решил сам... Если кому то будет полезно, то обработка лежит тут: /catalog/controller/checkout/success.php 

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


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

И как сделать так чтоб, перенаправляло на платежнку после выполнения отправки 

  • +1 1

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


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

И как сделать так чтоб, перенаправляло на платежнку после выполнения отправки 

 

В файле /catalog/controller/checkout/success.php такой код:

if (isset($this->session->data['order_id'])) {
$this->cart->clear();

// Сохраняем данные заказа в локальные переменные, для последующей передачи в платёжную систему
$need_redirect = $this->session->data["payment_method"]["code"];
$sum_order = $this->session->data['all_sum'];
$oderidnow = $this->session->data['order_id'];
// Окончание сохранения данных

unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['guest']);
unset($this->session->data['comment']);
unset($this->session->data['order_id']);
unset($this->session->data['coupon']);
unset($this->session->data['reward']);
unset($this->session->data['voucher']);
unset($this->session->data['vouchers']);
unset($this->session->data['salon']);
}

// Подготавливаем сумму заказа, в необходимом для платёжной системы формате
$sum_order = str_replace(" руб.", "", $sum_order);
$sum_order = str_replace(" ", "", $sum_order);
$sum_order = $sum_order.".00";

// Если был выбран пункт "Оплата картой на сайте" - редиректим клиента на платёжную систему, передавая все необходимые данные. Звёздочки - это данные от платёжной системы, выдаваемые при регистрации
if ($need_redirect == "cos") {
$hashmd5 = md5("MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&PrivateSecurityKey=**********");
echo "<script type=\"text/javascript\">location = 'https://secure.payonlinesystem.com/ru/payment/?MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&SecurityKey=$hashmd5';</script>";
}

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


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

обработка кнопки "Подтвердить" не в /catalog/controller/checkout/success.php
в success вывод сообщения "спасибо за покупку"

а код подтверждения находится в каждом модуле оплаты

/catalog/view/theme/default/template/payment/* который ведет либо на свой контроллер, либо сразу на сайт оплаты

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


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

Думаю мне лучше всего задать вопрос в этой теме. Версия 1.5.5.1.2

Ситуация такая, что мне нужно, чтобы кнопка "Подтверждение заказа" при выборе способа оплаты "cod_1" перенаправляла покупателя на внутренний файл pay.php, который лежит в корне сайта.

 

Как я понимаю, нужно что-то менять либо в файле /catalog/view/theme/default/template/payment/cod_1.tpl, либо в catalog/controller/payment/cod_1.php , но какую именно конструкцию нужно написать - не ясно.

--------------------------------------

 

/catalog/view/theme/default/template/payment/cod_1.tpl

<div class="buttons">
  <div class="right">
    <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="button" />
  </div>
</div>
<script type="text/javascript"><!--
$('#button-confirm').bind('click', function() {
	$.ajax({ 
		type: 'get',
		url: 'index.php?route=payment/cod_1/confirm',
		success: function() {
			location = '<?php echo $continue; ?>';
		}		
	});
});
//--></script> 

-------------------------------------

 

catalog/controller/payment/cod_1.php

<?php
class ControllerPaymentCod extends Controller {
	protected function index() {
    	$this->data['button_confirm'] = $this->language->get('button_confirm');

		$this->data['continue'] = $this->url->link('checkout/success');
		
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/cod.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/payment/cod.tpl';
		} else {
			$this->template = 'default/template/payment/cod.tpl';
		}	
		
		$this->render();
	}
	
	public function confirm() {
		$this->load->model('checkout/order');
		
		$this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('cod_order_status_id'));
	}
}
?>

PS сперва были подозрения, что может нужно править /catalog/controller/checkout/success.php или catalog\view\theme\default\template\checkout\checkout.tpl  - но вроде их все же трогать не надо.

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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