Автор Тема: Как сделать перенаправление на страницу успешного оформления заказа  (Прочитано 1363 раз)

16 Июль 2017, 15:59:38
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделал модуль оплаты, который перебрасывает пользователя на сторонний сайт для оплаты. Есть ли возможность при возврате с того сайта (переходе на определенный URL) перебрасывать пользователя на страницу с информацией, что заказ успешно создан (при условии что ID заказа и ID корзины не известны) ?
Спасибо.
16 Июль 2017, 17:14:00
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно, если агретор дает возможность вернуть клиента на определенный адрес в случае успешной оплаты. 
16 Июль 2017, 20:00:13
Ответ #2
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, пожалуйста, как. Я в Prestashop пока почти не шарю. Работал прежде с Opencart.
Да, агрегатору можно передать определенный Success URL, на который автоматом перебросится пользователь после успешной оплаты,
и Fail URL, на который перебросится в случае отказа от оплаты.
Как можно реализовать страницу с сообщением об успешной оплате и страницу с сообщением об отказе?
16 Июль 2017, 20:20:46
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере модуля, на который возвращает, например, validation.php
if($success)
{
        $this->module->validateOrder($cart->id,...
http://doc.prestashop.com/display/PS16/Creating+a+payment+module
17 Июль 2017, 13:43:03
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дело в том, что валидация заказа происходит в стороннем файле API ( с которым взаимодействует агрегатор).
Поэтому мне нужно просто перенаправить пользователя на страницу с успешным оформлением заказа
17 Июль 2017, 13:48:41
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Да, агрегатору можно передать определенный Success URL, на который автоматом перебросится пользователь после успешной оплаты,
и Fail URL, на который перебросится в случае отказа от оплаты.
Вот и передайте url возврата на свой контроллер
https://mysite.ru/module/mymodule/validationВ контроллер определите шаблон страницы и показывайет любой текст.
17 Июль 2017, 14:53:00
Ответ #6
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можете, пожалуйста, подробнее? В какой файл и какой примерно код? Мне нужно просто отобразить информационную статичную страницу пользователю с сообщением об успешной оплате
17 Июль 2017, 15:09:11
Ответ #7
18 Июль 2017, 10:41:30
Ответ #8
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пытался сделать отображение страницы с успешным оформлением с помощью хука 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
18 Июль 2017, 12:20:11
Ответ #9
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
validateOrder нужен для создания заказа в магазине. Он не для валидации оплаты, проверку оплаты вы сами делаете или не делаете.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.