Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
13 Октябрь 2020

Установка и настройка Сбербанк Эквайринг на 1С Битрикс

Поставили задачу — прикрутить к сайту на 1С Битрикс приём оплаты через Сбербанк Эквайринг.
Собственно, особо никаких проблем не возникло, просто по одноименному запросу в Яше ничего подобного не нашел, вот и решил накарябать пару строк 🙂

Итак, после регистрации приходит письмо, где указаны ссылки на сам модуль к Битриксу, данные доступа в личный кабинет https://3dsec.sberbank.ru/mportal3/, а так же необходимые настройки.

Ставим модуль, вводим в настройке логин, пароль а так же не забываем поставить галку «тестовый режим».
Подробнее где чего настраивать в Битриксе тут

Может понадобится информация о кодах ошибок — её смотрим в ЛК раздел Справка — Способы подключения — Коды ответа операций
Далее для тестирования обязательно подадобятся тестовые карты, их берём тоже в ЛК в разделе Справка — Способы подключения — Тестовые карты

На этом всё 🙂 по крайней мере тестовый платёж у меня корректно обработался — в системе заказ получил статус «Оплачено», в личном кабинете Сбербанк Эквайринга эту транзакцию я увидел — клиентские данные и сумма были правильные.

Ну и напоследок — в техподдержке адекватные ребята! Набрал разок — всё доходчиво объяснили, доволен.

PS
Как в боевой режим перейдём — отпишу как полёт проходит.

рубрики: Bitrix | Комментарии (0)

5 Октябрь 2020

Почтовый спам — поиск и устранение уязвимости на примере Joomla

Сегодня с дата центра пришло сообщение, с жалобой на спам-абузы поступающие от spam-cop.net — соответственно, жалоба на почтовый спам с сайта одного из моих клиентов.
Сайт висит на выделенном виртуальном сервере, с выделенным IP адресом на котором хостится один единственный сайт — интернет-магазин под управлением Joomla CMS + virtuemart.
Механизм поиска уязвимости описанный ниже можно применять независимо от системы управления — главное понять, что за скрипт рассылает, а далее уже пофиксить это дело.

Первое, что я сделал — это в php.ini
добавил 2 строчки:

и перезапустил веб-сервер (не забываем вернуть назад, после разбора полётов)

Далее, через некоторое время в /var/log/php.mail.log я увидел, что рассылка ведётся из скрипта /libraries/phpmailer/phpmailer.php
Проанализировав время логов из этого файла и логов самого веб-сервера, вижу частые обращения по адресу /index.php?options=com_contact&id=1

Для того, чтобы понять откуда именно вызывается отправка сообщений в phpmailer.php я встроил в него собственное логирование

Анализ этих логов уже на 100% подтвердил, что проблема именно в компоненте com_contact, в который я встроил проверку — чтобы только авторизованные пользователи могли работать с этим компонентом (тут ключевой момент — вызов debug_backtrace() который показывает всю вложенность на уровне функций и самих скриптов

после чего спам прекратился

PS
Данное решение я применил, по аналогии с решением для компоненты com_mailto (которое тоже внедрил, на всякий случай)

которое я чуток переделал (см.выше), т.к. у меня ругался на метод JFactory::getUser()->authorise() который видимо с 3й версии в джумле …

Так же попутно, я пофиксил дыру в com_virtuemart так же позволяющую организовать спам рассылку с Вашего сайта — источник

Проверить можно по ссылке
http://ваш-сайт/index.php?page=shop.recommend&product_id=1&pop=1&tmpl=component&option=com_virtuemart&Itemid=1&vmcchk=1&Itemid=1

Фиксится добавлением редиректа на морду в начале файла /administrator/components/com_virtuemart/html/shop.recommend.php

рубрики: Joomla | Комментарии (1)

8 Сентябрь 2020

Отправка почты с Битрикс CMS через Яндекс

Итак, на новом проекте — интернет магазин по продаже фотообоев даже после всех настроек почты, опубликованных ранее (пост 1, пост 2) почта на GMail, полученная с сайта всё равно улетала в спам 🙁

Я попробовал отправить с этого же сайта почту скриптом через Яндекс (домен уже был привязан через pdd.yandex.ru к Яндексу, MX запись так же была настроена) — и о чудо, сообщение без проблем пришло во входящее!

Далее стандартную функцию по отправке почты Битрикса я подменил на новую (путём объявления функции custom_mail в /bitrix/php_interfaces/init.php) и вуаля — теперь вся почта отправленная с Битрикса теперь отправляется через Яндекс Почту и не падает в спам!

Ссылочка на готовое решение — функция по отправке почты Битрикс через Яндекс
Готовое решение не моё — вот исходник, но сразу скажу, что там допущены две ошибки которые я пофиксил в своём варианте.

Отдельно о моментах, которые пришлось решать попутно

* Пришлось ставить composer, в связи с чем потребовалось включить php расширение phar — решение mv /etc/php.d/20-phar.ini.disabled /etc/php.d/20-phar.ini и рестарт браузера

wget https://getcomposer.org/composer.phar
chmod +x composer.phar
Далее, что бы Composer был доступен не только из папки, но и глобально в системе перемещаем его в папку /usr/local/bin/ командой mv
mv composer.phar /usr/local/bin/composer

* Для работы скрипта использовал скрипт PHPMailer + хорошая статья по данному скрипту
* Для работы imap_mime_header_decode используемой в скрипте потребовалось установить (именно установить а не включить) расширение php_imap (на centos команда yum install php_imap отработала корректно)

рубрики: Bitrix, PHP, Программирование | Комментарии (0)

4 Сентябрь 2020

Вставляем видео с ютуба на сайт адаптивно

На авторство не претендую, просто оставлю себе готовое решение, чтоб не искать потом по просторам сети

Код фрейма оборачиваем блоком с классом video, размеры фрейма можно не указывать

рубрики: Вёрстка | Комментарии (0)

28 Август 2020

windows 10 — после обновления драйверов пропал звук

Собственно, после обновления какого именно драйвера пропал звук я так и не понял, т.к. прошел все, которые могут отвечать за звук — нигде не было варианта откатить драйвер.

Тем не менее после того, как свежеустановленной windows 10 подключаешь интернет, через некоторое время звук просто перестаёт работать.

Причём в драйверах никаких ошибок, служба windows audio работает на ура, и вообще никаких видимых проблем и конфликтов — но звука просто нет!

Откат всех обновлений с помощью майкрософтовкой утилиты так же не дал никаких результатов 🙁

Собственно, помогло только одно решение — с помощью групповых политик, запрет использования Центра обновлений Windows при поиске драйверов.

Запускаем gpedit.msc

Административные шаблоны / Система / Управление связью через Интернет / Параметры связи через Интернет / Отключить использование Центра обновлений Windows при поиске драйверов

Мне помогло, там рядом ещё параметр что-то связанное с запросом — его тоже врубил.

Так же, если точно знать драйвера какого оборудования приводят к проблеме — можно ещё один параметр задействовать

Административные шаблоны / Система / Установка устройств / Ограничения на установку устройств / Запретить установку устройств с указанными кодами устройств

 

рубрики: Администрирование | Комментарии (0)

16 Июль 2020

Javascript — cохранение и восстановление введённых значений при обновлении страницы

Работаем на странице с полями для ввода данных, например заполняем какую то анкету — случайно закрыли или завис браузер, или просто обновили страницу и херак — все введённые данные пропали 🙁  знакомая ситуация? думаю что да

Для решения этой задачи на просторах родного рунета нарыл такой скриптик на нативном яваскрипте

Всё бы ничего, но мне в шаблонах  зачастую приходится выводить поля с уже заполненными данными из базы данных (например цена).

Собственно, для полей которые нужно запоминать я ввёл дополнительный атрибут data-save и чуток допилил скрипт, на предмет проверки данного аттрибута при восстановлении введённых ранее значений.

 

рубрики: SEO | Комментарии (0)

10 Июль 2020

Моментально отдаем файл с помощью PHP

Пост из разряда «закладка»

Сразу сама функция по отдаче файлов

Взято отсюда https://habr.com/ru/post/151795/

рубрики: PHP, Полезности | Комментарии (0)

9 Июль 2020

Передача в PHP многомерного массива AJAX запросом

С многомерными массивами в javascript беда, а уж с передачей многомерного массива AJAX запросом — тем более.
Не буду долго рассказывать о своих страданиях 🙂 сразу готовое, красивое решение

 

рубрики: Javascript, Javascript - JQuery, Лайфхак, Полезности | Комментарии (0)

18 Апрель 2020

Как передать массив из PHP в Javascript


[script]
var obj = [? echo json_encode($php_variable); ?];
[/script]

(вместо квадратных скобок — ставим <>)
В переменной $php_variable может быть любой PHP массив.

рубрики: Javascript | 3 комментария

20 Март 2020

Input для телефона с флагом, кодом страны, валидацией и maskedinput

Для реализации задуманного я выбрал плагин intl-tel-input
Вроде всё в нём замечательно, кроме отсутствия очевидно необходимого maskedinput — то есть в поле для ввода телефона, скрипт спокойно даёт вводить буквы и прочую ересь.
Для решения этой задачи я выбрал jquery плагин maskedinput

А вот с реализацией объединения оказалось не всё так тривиально, но и тут мне повезло — нашел готовое решение на блоге похожем по типу изложения с моим — сисадмин, программист потихонечку ведёт блог о том с чем сталкивается по жизни 🙂

То что получилось можно посмотреть тут

рубрики: Javascript - JQuery | Комментарии (0)