Автор Тема: Новый метод оплаты. Не создается заказ  (Прочитано 733 раз)

20 Июля 2014, 16:59:37
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день! Пишу новый метод оплаты для агрегатора platron. В методе hookPayment возвращается html для отображения на финальной страницы способов оплаты. По нажатию срабатывает Javascript и форма сабмитится на строну платежной системы. Но при этом заказ в базу данных не записывается и корзина не обнуляется, как это происходит в других платежных методах. Можете мне подсказать - в чем причина? Ни в одном модуле не нашел причины не работоспособности моего. При необходимости готов предоставить модуль для разбора.
20 Июля 2014, 17:54:34
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
PrestaShop's developer tools
Включи показ переменных и проверь, что передается при завершении заказа.
20 Июля 2014, 18:13:31
Ответ #2
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22126
  • Репутация: +17110/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В модуле оплаты
public function hookPayment($params)это проверка корзины, определение переменых шаблона и вывод разрешенных методов оплаты.
После выбора метода оплаты подключается ваш контроллер (определенный в модуле)
{$link->getModuleLink('mypayment', 'payment')}В котором формируте переменные заказа
$order = new Order($mypayment>currentOrder); и передаете сервису оплаты.
После обработки оплаты, при возврате подверждения/отказа
public function hookPaymentReturn($params)проверяте статус заказа и сохраняте заказ (true) или перенаправляте на страницу отказа/показа ошибок.
$state = $params['objOrder']->getCurrentState();
if ($state == ...
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
20 Июля 2014, 19:04:44
Ответ #3
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проблема в том, что заказ не существует (не сохраняется) при совершении заказа (при оформлении через paypal или payanyway заказ создается). Соответственно, я не могу его обработать при callback от платежной системы.
В метод hookPayment($params) передается вся информация о заказе. Только вот заказ не сохраняется...

Вот модуль для скачивания.
https://www.platron.ru/integration/prestashop_platron.zip
21 Июля 2014, 14:13:31
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
На другом форуме меня отправляют к файлу validation.php
Т.е. validation.php для чего нужен? Он вызывается после сабмита формы и ухода человека (в асинхронном режиме)?
При отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.
21 Июля 2014, 16:45:43
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
validation.php - это контроллер проверки заказа. В модулях оплаты возврат идет на этот конроллер.
21 Июля 2014, 17:04:27
Ответ #6
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22126
  • Репутация: +17110/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Т.е. validation.php для чего нужен?
Используется для проверки и генерации заказа.
В этом контроллере использут переопределенный метод
MyModuleValidationModuleFrontController :: PostProcess ()Вызывается при выборе метода оплаты. Посмотрите любой платежный модуль.
Есть модули, в которых используется упрощенная структура, два хука Payment и PаymentReturn.

При отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.
Если на локальном работает, то причина может быть в ответе сервера оплаты. На локальном у вас стоит заглушка, ответ всегда положительный.
А на рабочем ответ - ошибка оплаты. Проверяли?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Июля 2014, 17:41:16
Ответ #7
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
MyModuleValidationModuleFrontController :: PostProcess ()Видимо тут должно что-то происходить, что должно сохранять заказ...
Цитировать
При отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.
Я имел ввиду, что в работающем платежном способе PayAnyWay заказ создается и сразу переходит в статус отказ (видимо, как раз из-за отсутствия интернета и неправильных тестовых настроек модуля).
А в моем методе просто не создается заказ... Спасибо огромное! Нашел куда копать!