Новый метод оплаты. Не создается заказ

Автор lexus1990, 20 июля 2014, 16:59:37

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

lexus1990

Добрый день! Пишу новый метод оплаты для агрегатора platron. В методе hookPayment возвращается html для отображения на финальной страницы способов оплаты. По нажатию срабатывает Javascript и форма сабмитится на строну платежной системы. Но при этом заказ в базу данных не записывается и корзина не обнуляется, как это происходит в других платежных методах. Можете мне подсказать - в чем причина? Ни в одном модуле не нашел причины не работоспособности моего. При необходимости готов предоставить модуль для разбора.

coder

PrestaShop's developer tools
Включи показ переменных и проверь, что передается при завершении заказа.

mAgency

В модуле оплаты
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 ?
Решение всех Ваших вопросов в создании Интернет-магазина.

lexus1990

Проблема в том, что заказ не существует (не сохраняется) при совершении заказа (при оформлении через paypal или payanyway заказ создается). Соответственно, я не могу его обработать при callback от платежной системы.
В метод hookPayment($params) передается вся информация о заказе. Только вот заказ не сохраняется...

Вот модуль для скачивания.
https://www.platron.ru/integration/prestashop_platron.zip

lexus1990

На другом форуме меня отправляют к файлу validation.php
Т.е. validation.php для чего нужен? Он вызывается после сабмита формы и ухода человека (в асинхронном режиме)?
При отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.

tigran

validation.php - это контроллер проверки заказа. В модулях оплаты возврат идет на этот конроллер.

mAgency

Цитата: lexus1990 от 21 июля 2014, 14:13:31
Т.е. validation.php для чего нужен?
Используется для проверки и генерации заказа.
В этом контроллере использут переопределенный метод
MyModuleValidationModuleFrontController :: PostProcess ()
Вызывается при выборе метода оплаты. Посмотрите любой платежный модуль.
Есть модули, в которых используется упрощенная структура, два хука Payment и PаymentReturn.

Цитата: lexus1990 от 21 июля 2014, 14:13:31
При отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.
Если на локальном работает, то причина может быть в ответе сервера оплаты. На локальном у вас стоит заглушка, ответ всегда положительный.
А на рабочем ответ - ошибка оплаты. Проверяли?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

lexus1990

MyModuleValidationModuleFrontController :: PostProcess ()
Видимо тут должно что-то происходить, что должно сохранять заказ...
ЦитироватьПри отключенном интернете (локальной разработке) заказ через payanyway создается. Т.е. дело точно не в callback.
Я имел ввиду, что в работающем платежном способе PayAnyWay заказ создается и сразу переходит в статус отказ (видимо, как раз из-за отсутствия интернета и неправильных тестовых настроек модуля).
А в моем методе просто не создается заказ... Спасибо огромное! Нашел куда копать!