Николай Савин

Николай Савин

С нами с 06 июня 2015; Место в рейтинге пользователей: #5
Николай Савин
28 января 2023, 11:26
0
Вероятно у вас настроена прослушка старые скриптов. Возможно какие то компоненты используют их.
Николай Савин
27 января 2023, 20:22
+1
Статистика продаж покажет кто прав, а кто просто имеет свое мнение.
Николай Савин
26 января 2023, 18:36
0
У вас не создалось поле order_id почему-то. Рекомендую переустановить minishop2.
Обратите внимание — переустановить означает перейти в менеджер пакетов, найдите там minishop и нажмите там кнопку переустановить. Не удаляйте компонент.
Николай Савин
26 января 2023, 17:54
0
Ага. Найди все вызовы modx2 и замени их на modx3.
Николай Савин
25 января 2023, 20:35
+1
Вы уверены что simple search под MODX3 обновлен? Может он не поддерживает эту версию?
Николай Савин
22 января 2023, 08:52
0
Хорошо посмотрю на досуге. Спасибо.
Николай Савин
19 января 2023, 19:47
+1
Очень просто. Отключаем системную настройку
ms2_register_frontend
Николай Савин
17 января 2023, 11:22
0
Тот код, что я вам написал — был всегда. Он не поменялся и является более корректным.
А вот старый код более не работает, начиная с 4 да. По идее его вообще не нужно было использовать в компоненте, так как мой вариант проще, быстрее в написании и до сих пор работает.
Николай Савин
14 января 2023, 20:30
+1
Корректнее было бы перевести как сущности, но штуковины как то по-русски больше звучит ))
Николай Савин
14 января 2023, 19:49
0
Вот вызов плагина
$response = $this->ms2->invokeEvent('msOnCreateOrder', array(
                'msOrder' => $msOrder,
                'order' => $this,
            ));
Как можно заметить в плагине есть обе переменные. msOrder это объект заказа, order — это сам класс обработчик заказа
Николай Савин
12 января 2023, 14:21
0
У меня два вопроса.
Первый — Зачем вообще после возвращения со страницы оплаты что то делать? Это может быть актуально разве что для цифровых товаров, которые после оплаты должны быть доступны для скачивания.

Второй вопрос — я потерял нить разговора. У вас вопрос какой бы изначально? В чем затык?
Николай Савин
12 января 2023, 14:02
0
Я вам выше дал ссылку на исходный код платежки от Робокассы.
Посмотрите как устроена она. Это самый свежий компонент.
Николай Савин
12 января 2023, 12:40
0
Кажется мы друг друга не очень понимаем.

Еще раз. Метод receive не используется клиентом, администратором и т.п.
Он нужен для того чтобы Банк в фоновом режиме сообщил сайту о совершенной оплате. Никаких редиректов там нет и быть не может.

Смену статуса оплаты по URL в данном случае использовать нельзя, потому что зная нужную комбинацию — мошенник может подтвердить оплату, не производя ее.
Опирайтесь ТОЛЬКО на автоматическую служебную информацию от банка.
Николай Савин
12 января 2023, 08:56
0
receive это метод, который реагирует запрос из вне. Обычно банк после оплаты дергает файл
/assets/components/minishop2/payment/имя_платежки/имя_платежки.php
В этом файле «по вкусу» происходит валидация входящего от банка запроса и затем вызывается метод receive, основная задача которого — поменять статус заказа на оплачено. Запрос на проверку успешной оплаты производится также «по вкусу». Многие платежки просто слепо доверяют входящим данным.

Для фронта, в случае этого метода ничего не происходит, так как он является служебным API методом.

Как его тригерить — посмотрите в том же Paypal или например Робокасса
Николай Савин
11 января 2023, 08:24
0
Откройте плагин msTelegram и попробуйте заменить строчку

$contacts = $modx->getObject('msOrderAddress', array('id'=> $msOrder->address));
на следующий код

$contacts = $msOrder->Address;
Николай Савин
28 декабря 2022, 19:58
+2
Значит нужно смотреть журнал ошибок сервера.
Николай Савин
25 декабря 2022, 09:06
0
Scheduler работает через крон.
То есть раз в минуту он запрашивает наличие задач в очереди и если такая есть, запускает задачу в работу.
Таким образом если условный интернет-магазин ставит в очередь несколько задач
  • Письмо менеджеру
  • Письмо Клиенту
  • Заказ в CRM
  • СМС клиенту
То эти задачи будут выполнены в течение 4 минут по очереди.

Но можно конечно делать и по другому. Ставить в задание не одну простую задачу, а пул задач. Что-то вроде — выполнить все процедуры касающиеся Заказа.

А еще @Дима Сайт показывал как можно дергать CRON чаще, например каждые 10 секунд. Но у меня пока не получилось повторить (не особо и старался).