У чёрта за пазухой.

Автор блога: Lora
Все рубрики (19)

Подключение к Сбербанку. 2.x

Всем привет. Хочу поделиться опытом подключения к сбербанку онлайн. У них масса документации и возможно кому то будет сложно в ней разбираться. А кому то нет). Поэтому возможно данный пост облегчит задачу. Итак, после улаживания формальностей регистрации вам пришлют два логина и два пароля. Для доступа к личному кабинету и подключению к API. Для начала тестовые. Имеет смысл создать в админке вашего компонента поля для тестовых и рабочих(в сбере они зовутся боевыми smile ) пар. А так же вам понадобятся ссылки на страницы,куда вы будите перенаправлять в случае успеха или ошибки. Это ещё два поля. Я отделил тестовые поля от боевых и спрятал одну пару,что бы не путаться. И привинтил чекбокс для смены пар полей. Для тех кто ещё не знает как это сделать, пишу пример,для одного поля и чекбокса. Этот код я поместил в файл .../backend/forms/form_options.php
Спойлер
Далее создаём два экшена в паке вашего компонента. Названия пишу свои. sb_auth.php и sb_pays.php. Ваша ссылка,или кнопка "Оплатить", должна вести к первому экшену. И в ней вы должны передать параметрами стоимость товара,его id и id пользователя. Примерно так.
Код PHP:
  1. http://test.ru/'название компонента'/sb_auth?price=2500.00&user_id=1&id=47
В файле мы получаем эти данные
Код PHP:
  1.  
  2. $price = $_GET['price'];
  3. $user_id = $_GET['user_id'];
  4. $id = $_GET['id'];
  5.  
Затем следует рубли перевести в копейки. Такие требования. А так же api не работает с кросс запросами(это типа аякс и тп.). А так же добавить функцию для генерации уникального id заказа. В исходниках у меня она есть, но можете и свою найти или написать.
Далее нужно составить гет параметры уже для ссылки сберу. В неё войдут
Код PHP:
  1.  
  2. "userName" // Логин для API
  3. "password" // Пароль...
  4. "orderNumber" // Сгенерированный id
  5. "amount" // Цена, в копейках
  6. "returnUrl" // Ссылки перенапрвления
  7. "failUrl"
  8.  
Ответ сбер отдаёт прямо в браузер, в формате json. Кто как его будет доставать дело личное). Я сделал так
Код PHP:
  1.  
  2. $content = file_get_contents(
  3. 'https://3dsec.sberbank.ru/payment/rest/register.do?' .
  4. $data);
  5. $array = json_decode($content, true);
  6. // Где $data, гет параметры
  7.  
Далее запоминаем $array в сессию(там два значения вроде.Код ошибки и OrderId), проверки и перенаправление на страницу второго зкшена с гет параметром OrderId sb_pays.php Во втором экшене сравниваем этот гет параметр и этот же параметр в массиве $array. И снова отправляем ссылку,уже другую, сберу.Указав в качестве параметров логин,пароль и OrederId. Ответ получаем так же в браузере. Обрабатываем и в случае отсутствия ошибок меняем статус заказа на сайте. Если всё сделано правильно,то нажав ссылку "Оплатить" на сайте вы попадаете на страницу сбера, где нужно ввести номер вашей карты. У них есть тестовые карты для этого.Вбиваете данные и жмёте Оплатить. Вот и всё). Выкладываю файлы,для ознакомления с кодом,кому интересно)
https://yadi.sk/d/vgFFK0ar0xur3w

Авторизация через Facebook 1.x

Всем привет. Выкладываю плагин авторизации напрямую через фэйсбук.
p_social
У меня работает только на домене. На поддомене не приходит мыло. Разбираюсь.
Порядок установки.
1. Регистрируете приложение в фэйсбуке.
2. Устанавливаете плагин.
3. В плагине прописываете данные. В 115-116 стр и 141-142
4. Подключаете плагин в шаблоне модуля или компонента. Я подключал в mod_auth.
<form>...</form><p>{callEvent event='SOCIAL_BUTTON'}</p>
Плагин бесплатный, так как использовал некоторые ф-ции плагина Loginza. Но все доработки, помощь по созданию приложения и тп. услуги платные. Пишите в личку обсудим.

Верификация пользователя. 1.x

Всем привет. Представляю разработку. Компонент + плагин. В коде много условий, поэтому перед выставлением на продажу (ориентировочная стоимость 500р.) предлагаю потестить заинтересованным лицам. Разработка для шаблонов default и basic_free.
После установки идём в настройки плагина и выставляем нужные параметры
Верификация пользователя.
Тут вроде всё понятно. Единственное уточню о "способе модерации", но немного позже.

Ремонт деревьев от Странника.Upgrade.

Всем привет.Недавно была необходимость править вложенности в базе и я решил использовать утилиту от Странника для первой ветки.
Удобная штука, так как выводит только то, что надо и всё перед глазами, и поэтому я решил внести и свой вклад в этот код.Так как работая с ней в голову пришли мысли по возможным улучшениям.А именно.

Кнопка "поделиться" + рейтинг записи на стене 1.x

Всем привет. 1.10.6. Дополнение к стене профиля и клубов для 1.10.6.
Добавляется кнопка "поделиться". При нажатии запись дублируется на стену в профиль того, кто кликнул. Есть возможность прокомментировать репост при добавлении.
Так же добавляется рейтинг к записи.

Кнопка загрузки файлов из панели bbcode в сообщение.Хак.ч.1

Всем привет. Данный хак написан для 1.10.7.После загрузки файл сохраняется в папке /upload/users/messages.При удалении сообщения файл тоже удаляется.В базу ничего не пишется.Все файлы хранятся в одной папке, поэтому при отчистки(удалении сразу всех входящих) файлы не удаляются.Что бы это работало файлы нужно хранить в отдельной папке для каждого юзера или писать в базу. Это возможно и если будет интерес к данному хаку можно будет дописать.

Бекапимся на яндекс-диск.

Всем привет. Как известно, "бекапа много не бывает" smile На одном из хостов стало маловато места, а диск пустует.Вот и решил порыть инет на тему забекапится на яндекс. В итоге получился небольшой скриптик.