Перейти к содержанию

Внешние интеграции

Мессенджер-боты (Telegram, MAX)

Боты используются для OTP, подтверждения телефона и уведомлений.

Канал Доступность с РФ-сервера Вебхук
Telegram (@taomaster_bot) api.telegram.org заблокирован → через HTTP-прокси с фейловером (TELEGRAM_PROXIES) POST /webhooks/telegram
MAX botapi.max.ru доступен напрямую POST /webhooks/max
  • CSRF для webhooks/* исключён. Секреты: Telegram — заголовок X-Telegram-Bot-Api-Secret-Token, MAX — ?secret=.
  • Сервисы: TelegramBotService, MaxBotService. Команда telegram:webhook {set|info|delete}.
  • Подтверждение телефона: Telegram — deeplink /start <token> (вебхук → PhoneAuthService::confirmByStart); MAX — код. Также поддержано «поделиться контактом» → запись в messenger_contacts.
sequenceDiagram
    participant U as Пользователь
    participant B as Бот (TG/MAX)
    participant S as Сервер
    U->>B: /start <token> (deeplink)
    B->>S: webhook
    S->>S: confirmByStart — привязка phone ↔ chat_id
    U->>S: поллинг статуса → авто-вход

Курсы валют

  • ЦБ РФCbrRateService парсит XML_daily.asp (CNY + USD одним запросом). Команда rates:fetch-cbr (ежечасно).
  • bestchangeBestchangeService (fetchRates/fetchChangers), средний курс топ-N «проверенных» обменников. Команда bestchange:fetch (каждые 15 мин). Ключ BESTCHANGE_KEY.

См. подробнее в разделе Финансы.

Google Cloud Translation

TranslateService (v2 API, ключ GOOGLE_TRANSLATE_KEY) — автоперевод динамических данных и интерфейса. Результаты кэшируются в translation_cache. cnzh-CN. Подробнее — в разделе Локализация.

Особенность API

Тело запроса собирается вручную (q=..&q=..), а не как asForm-массив — Google не принимает q[0]=.

Уведомления администратору

AdminNotifier — лог + при наличии ADMIN_MAX_CHAT отправка в MAX. Email-нотификации по умолчанию идут в лог (MAIL=log).

Импорт XLS/CSV

maatwebsite/excel — импорт товаров с авто-маппингом колонок и поддержкой формул. См. Заказы → Импорт.

Realtime (WebSocket)

Laravel Reverb (Supervisor, порт 8090, nginx-прокси location /app). Канал order.{orderId}. Клиент — Laravel Echo. См. Чат.