Как сделать перенаправление на страницу успешного оформления заказа

Автор irushan, 16 июля 2017, 15:59:38

« назад - далее »

irushan

Сделал модуль оплаты, который перебрасывает пользователя на сторонний сайт для оплаты. Есть ли возможность при возврате с того сайта (переходе на определенный URL) перебрасывать пользователя на страницу с информацией, что заказ успешно создан (при условии что ID заказа и ID корзины не известны) ?
Спасибо.

DarinSr

Можно, если агретор дает возможность вернуть клиента на определенный адрес в случае успешной оплаты. 

irushan

Подскажите, пожалуйста, как. Я в Prestashop пока почти не шарю. Работал прежде с Opencart.
Да, агрегатору можно передать определенный Success URL, на который автоматом перебросится пользователь после успешной оплаты,
и Fail URL, на который перебросится в случае отказа от оплаты.
Как можно реализовать страницу с сообщением об успешной оплате и страницу с сообщением об отказе?

DarinSr

В контроллере модуля, на который возвращает, например, validation.php
if($success)
{
        $this->module->validateOrder($cart->id,...

http://doc.prestashop.com/display/PS16/Creating+a+payment+module

irushan

Дело в том, что валидация заказа происходит в стороннем файле API ( с которым взаимодействует агрегатор).
Поэтому мне нужно просто перенаправить пользователя на страницу с успешным оформлением заказа

Adik

Цитата: irushan от 16 июля 2017, 20:00:13
Да, агрегатору можно передать определенный Success URL, на который автоматом перебросится пользователь после успешной оплаты,
и Fail URL, на который перебросится в случае отказа от оплаты.
Вот и передайте url возврата на свой контроллер
https://mysite.ru/module/mymodule/validation
В контроллер определите шаблон страницы и показывайет любой текст.

irushan

Можете, пожалуйста, подробнее? В какой файл и какой примерно код? Мне нужно просто отобразить информационную статичную страницу пользователю с сообщением об успешной оплате


irushan

Пытался сделать отображение страницы с успешным оформлением с помощью хука paymentReturn в модуле оплаты:

файл success.php


$paymodule->validateOrder($id_cart, 16, $amount, $paymodule->displayName);
$order = new Order($paymodule->currentOrder);
Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$id_cart.'&id_module='.$paymodule->id.'&key='.$order->secure_key);


Так по идее работает. Но проблема в том, что валидация уже была произведена ранее через API агрегатора. И в этом случае выходит лишь сообщение, что корзины уже нет.

А если сделать без validateOrder просто сразу редирект:

Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$id_cart.'&id_module='.$paymodule->id.'&key='.$order->secure_key);

То переходит почему то автоматически на страницу order-history

mAgency

validateOrder нужен для создания заказа в магазине. Он не для валидации оплаты, проверку оплаты вы сами делаете или не делаете.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.