База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts
v1.0.0

Авторизация и секреты

На этой странице 7

Три независимых механизма: REST API, подпись исходящих webhook, подпись входящих webhook.

1. REST API (модуль → PlatParts)

Где: Настройка API — создайте ключ, назначьте роли со scope.

Заголовок:

http
Authorization: Bearer {identifier}:{secret}
  • identifier — логин ключа;
  • secret — показывается один раз при создании; хранится как hash.

Ошибки:

HTTP Причина
401 Нет Bearer, неверный формат, неверный secret
403 У ключа нет нужного scope

Scope (права)

Scope Доступ
orders.read Список и карточка заказов
orders.write_status Смена статуса заказа и позиций
orders.write_meta Meta заказа
users.read Пользователи
users.write_meta Meta пользователя
payments.read Платежи
documents.read Документы
documents.write_external_ref Внешний ID документа
organizations.read Организации
products.read Товары
pickup_points.read Точки выдачи
integrations.trigger_sync POST .../integrations/{package}/sync

Роли собирают список scope; у одного ключа может быть несколько ролей.

Привязка к точке выдачи

У ключа можно указать точку выдачи:

  • orders.read / смена статусов — только заказы этой точки;
  • запрос чужого order_id403 или 404 (в зависимости от endpoint);
  • фильтр ?pickup_point_id= должен совпадать с точкой ключа.

Ключ без точки — доступ ко всем заказам (осторожно на проде).

Подробные URL: REST API.

2. Исходящий webhook (PlatParts → ваш сервер)

Секрет задаётся на вкладке Исходящие webhooks подключения.

Заголовок: X-Integration-Signature

Алгоритм: HMAC-SHA256 от канонического JSON всего тела:

json
{
  "hook": "order.created",
  "payload": { ... },
  "sent_at": "2026-05-29T12:00:00+00:00"
}

Канонизация: рекурсивная сортировка ключей, JSON_UNESCAPED_UNICODE — как App\Integrations\Support\IntegrationJsonSigner.

Не путать с inbound

Inbound подписывает сырое тело запроса ($request->getContent()), не canonical JSON.

3. Входящий webhook (ваш сервер → PlatParts)

Секрет в credentials подключения: ключ inbound_webhook_secret.

Заголовок: X-Integration-Signature: HMAC-SHA256(raw_body, secret)

Dev без секрета: только если INTEGRATIONS_DEBUG=true и INTEGRATION_INBOUND_REQUIRE_SECRET=false. Иначе 503 Configure inbound_webhook_secret.

Переменные окружения

Переменная По умолчанию Назначение
INTEGRATIONS_DEBUG false Подробные логи, ослабление URL/секретов на dev
INTEGRATION_INBOUND_REQUIRE_SECRET true Требовать секрет inbound
INTEGRATION_OUTBOUND_ALLOW_HTTP false HTTP URL для outbound (иначе только HTTPS)
INTEGRATION_API_AUDIT true Аудит REST‑запросов

Связанные разделы