Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Суть задания

Необходимо разработать web API (далее АПИ), принимающий лид от разных лидо-генераторов и совершающий ряд последующих действий, связанных с его обработкой.

Сервис должен быть разработан в соответствии со стилем архитектуры REST.

Входящие данные

Предполагается сотрудничество с разными лидо-генераторами. Они передают разный набор параметров, используя спецификацию, представленную ниже.

Описание полей API, которое нужно разработать для нас, чтобы обеспечить примем лидов для дальнейшей их обработки: будет предоставлено отдельно

Аутентификация

  • Принять запрос на аутентификацию с параметрами логина и пароля
  • Отправить в ответ токен, время действия которого - 24 часа.
  • Вместе с токеном в БД должен сохраняться IP адрес отправителя.
Функции подробно
  • Принять запрос от лидогенератора с токеном, полученным при авторизации.
  • Проверка аутентичности токена.
  • Проверка срока действия токена и соответствия IP отправителя запроса
  • Проверка правильности параметров. Если они содержат ошибку, то вернуть ответ ледогенератору о том, что лид не принят.
  • Проверка наличия в БД записи с аналогичыім набором параметров. Отклонение дубля, если найден.
  • Создание в таблице lead записи в БД, с указанием полученных параметров и кода партнера Partner_ID.
  • Проверка номера телефона в “черном списке” (необходимо создать таблицу с тестовыми данными);
  • Проверка ИНН в “черном списке” (необходимо создать таблицу inn_black_list в таблице с тестовыми данными)
  • Отправка ответа ледогенератору о том, что лид принят.
  • Выбор случайного оператора из числа известных пользователей и отправка e-mail с данными лида в тексте.
База данных

База данных PostgreSQL развернута на хостинге sweb. Доступ по ссылке (будет предоставлено отдельно) Логин (будет передан после подписания договора), пароль (будет передан после подписания договора).

Разработчик может добавлять нужные поля или таблицы, придерживаясь принятого стиля: название таблиц на английском с маленькой буквой, название полей на английском с большой буквы, к каждому полю добавлен комментарий на русском.

Отправка уведомлений оператору

После принятия лида сервис выбирает всех пользователей из таблицы user с включенным флагом Lead_processing=1 и Active=1, и случайно выбирает одного из операторов.

Выбранному оператору отправляется имейл в следующем формате:

Тема: ФИО клиента, номер телефона клиента, код лида, партнер

Текст: Новый лид: ФИО клиента, номер телефона

Имейл отправляется с использованием smtp сервера со следующими параметрами: будут добавлены после подписания договора.

Тестовые адреса для рассылки сообщений: будут добавлены после подписания договора.

Тестовые данные

Необходимо создать скрипт php, случайно формирующий запрос на аутентификацию и затем тестовые запросы, симулирующие запросы обоих лидогенераторов, получающий ответ и выводящий его в браузер.

После успешной отработки должна появляться запись в базе данных и отправлен имейл на один из указанных тестовых адресов.

Требования к коду

Код должен быть прозрачным, хорошо структурированным в отступами.

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

Название переменных на английском в стиле camel.

Переменные с ссылками и настройками должны быть вынесены в отдельный скрипт.

Скрипт подключения к базе данных должен быть вынесен в отдельный скрипт и возвращать соединение в переменную $db.

Сотрудничество по договору с ФОП или ТОВ

3 года назад
guest_16351534396983
3 года в сервисе
Был
2 года назад