Ошибка при запросе из ПС в платежный метод (плагин).
делаю вызов по тому адресу, что стоит в настройках робокассы:
http://shop-script.local/payments.php/robokassa/?transaction_result=success&app_id=shop
Что не правильно? Как обработать запрос из ПС?
Empty module and/or action after parsing the URL "/payments.php/robokassa/?transaction_result=success&app_id=shop" (payments/).
Not found classes: webasystPaymentsController, webasystPaymentsActions, webasystPaymentsActions
Error with code 404 in 'F:\OpenServer\domains\dev_shop_script\wa-system\controller\waFrontController.class.php' around line 172:
167 return $this->execute($plugin, $module);
168 }
169 $class_names[] = $class_name;
170
171 // Too bad. 404.
>>172 throw new waException(sprintf('Empty module and/or action after parsing the URL "%s" (%s/%s).
Not found classes: %s', $this->system->getConfig()->getCurrentUrl(), $module, $action,implode(', ',$class_names)), 404);
173 }
174 }
175
176 // EOF
Call stack
#0 F:\OpenServer\domains\dev_shop_script\wa-system\waSystem.class.php(394): waFrontController->execute(NULL, 'payments', NULL, true)
#1 F:\OpenServer\domains\dev_shop_script\index.php(7): waSystem->dispatch()
#2 {main}
Request
array (
'transaction_result' => 'success',
'app_id' => 'shop',
'shop_cart' => 'cc3adb48c3725d63a77cb8fa4bf650fa',
'PHPSESSID' => 'ltcvu82r98tba8pvojokr3als7',
'auth_token' => '9da14a4c68ba29414c7cc53602a8fc7',
'remember' => '1',
'_csrf' => '526952f02aaed4.52558984',
'last_page' => '1^^^/admin/shop/?action=settings',
)
Params
array (
'module_id' => 'robokassa',
)
http://shop-script.local/payments.php/robokassa/?transaction_result=success&app_id=shop
Что не правильно? Как обработать запрос из ПС?
Empty module and/or action after parsing the URL "/payments.php/robokassa/?transaction_result=success&app_id=shop" (payments/).
Not found classes: webasystPaymentsController, webasystPaymentsActions, webasystPaymentsActions
Error with code 404 in 'F:\OpenServer\domains\dev_shop_script\wa-system\controller\waFrontController.class.php' around line 172:
167 return $this->execute($plugin, $module);
168 }
169 $class_names[] = $class_name;
170
171 // Too bad. 404.
>>172 throw new waException(sprintf('Empty module and/or action after parsing the URL "%s" (%s/%s).
Not found classes: %s', $this->system->getConfig()->getCurrentUrl(), $module, $action,implode(', ',$class_names)), 404);
173 }
174 }
175
176 // EOF
Call stack
#0 F:\OpenServer\domains\dev_shop_script\wa-system\waSystem.class.php(394): waFrontController->execute(NULL, 'payments', NULL, true)
#1 F:\OpenServer\domains\dev_shop_script\index.php(7): waSystem->dispatch()
#2 {main}
Request
array (
'transaction_result' => 'success',
'app_id' => 'shop',
'shop_cart' => 'cc3adb48c3725d63a77cb8fa4bf650fa',
'PHPSESSID' => 'ltcvu82r98tba8pvojokr3als7',
'auth_token' => '9da14a4c68ba29414c7cc53602a8fc7',
'remember' => '1',
'_csrf' => '526952f02aaed4.52558984',
'last_page' => '1^^^/admin/shop/?action=settings',
)
Params
array (
'module_id' => 'robokassa',
)
19 ответов
Откуда попытка обращения к классам webasystPaymentsController, webasystPaymentsActions, webasystPaymentsActions?
http://shop-script.local/payments.php/robokassa/?transaction_result=success&app_id=shop
Стек трейс есть выше:
#0 F:\OpenServer\domains\dev_shop_script\wa-system\waSystem.class.php(394): waFrontController->execute(NULL, 'payments', NULL, true)
#1 F:\OpenServer\domains\dev_shop_script\index.php(7): waSystem->dispatch()
Судя по трейсу, фреймворк всё пытается делать правильно, но до плагина дело не доходит даже близко. Не найден класс webasystPaymentsAction ( wa-system/webasyst/lib/actions/payments/webasystPayments.action.php ). Есть ли такой файл?
Возможно, что-то случилось с автолоадом и он не находит класс. Включён ли debug mode? Если нет, что в кеше wa-cache/apps/webasyst/config/autoload.php? Если да, что выведет wa_dump(waAutoload::getInstance()->getClasses()), если вызвать его в том месте, где бросается exception?
2. Устанавливал неделю назад скачанное из репозитория - это считается устаревшим?
3. В wa-system/webasyst/lib/actions/ нет папки payments вообще - соответственно и /webasystPayments.action.php
3. 'debug' => true
Обновитесь, пожалуйста.
Или расскажите, пожалуйста, как обновить или "прокачать" мою версию? (может просто достаточно добавить файл webasystPayments.action.php?)
Тут https://github.com/webasyst/webasyst-framework тоже нет папки wa-system/webasyst/lib/actions/ и соответственно /webasystPayments.action.php
Есть только в папке wa-system/payment/waPayment.class.php.
Что делать?
Я так понимаю, что этот файл был добавлен в репозиторий вчера?
Жалко только что убил на это 4 дня...
Последний коммит был alexmuz authored 2 days ago. И не видно кто удалил его из репозитория...
Есть метод waOrder::factory в который передается массив для инициирования заказа. При передаче только order_id - все остальные поля остаются незаполненными. Как его правильно инициировать?
Есть ли метод для проверки, что заказ еще доступен для оплаты?
Для проверки заказа вызывать метод в адаптере приложения waPayment::CALLBACK_CONFIRMATION.
Такое возможно в callbcackHandler?
Например, в плагине оплаты через яндекс деньги платежный шлюз проверяет актуальность и корректность счета и только после этого позволяет оплатить (в течении небольшого промежутка времени).
Ну и что делать в случае оплаты заказа, который уже удален/отменен/неактуален - это логика приложения должна решать.
В любой CMS есть метод, который по id вытаскивает заказ и можно посмотреть все данные заказа. Не передавать же в ссылке (от ПС) все параметры заказа?
$transaction_data['state'] = waPayment::STATE_CAPTURED;
$callback_method = waPayment::CALLBACK_PAYMENT;
$this->execAppCallback($callback_method, $transaction_data);
(набор данных не полный - примеры смотрите в других плагинах оплаты)