Внешние интеграции¶
Мессенджер-боты (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(ежечасно). - bestchange —
BestchangeService(fetchRates/fetchChangers), средний курс топ-N «проверенных» обменников. Командаbestchange:fetch(каждые 15 мин). КлючBESTCHANGE_KEY.
См. подробнее в разделе Финансы.
Google Cloud Translation¶
TranslateService (v2 API, ключ GOOGLE_TRANSLATE_KEY) — автоперевод динамических данных и интерфейса. Результаты кэшируются в translation_cache. cn → zh-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. См. Чат.