Files
obsidian/Интеграция СУП/Некоммерческий проект.md
2026-01-20 16:11:38 +03:00

3.0 KiB
Raw Permalink Blame History

Авторизация

Используется кастомный header X-Erp-Integration Значение хранится в конфигах у системы СУП. Для дев и прод разные значения. Данные передаются в формате base64, при получении значения необходимо его раскодировать и сравнить со значением хранящимся в конфиге. Если значения не соответствуют, то вернуть ошибку и код HTTP 403 - Unauthorized.

Создание некоммерческого проекта

Используется endpoint с методом POST

Предлагаемый вариант api/1.0/openRequest/createPresaleProject Обсудить данный момент после реализации и предоставить команде CRM

Запрос

{
	"orderName": "Альфа-Пласт ADC",
	"orderDate": "2025-12-31",
	"clientId": "123-123-123", // Значение `Код клиента из R3`
	"managerProjectId": "00123456", // Значение ИНС
	"headProjectId": "00123457", // Значение ИНС
	"directorProjectId": "00123458", // Значение ИНС
	"orderAmount": 12345.67,
	"productAttribute": 1, // (1 - ПО/ПО+ТП/ТП. 2 - Консалтинг. 3 - ПО+ТП+Консалтинг/ТП+Консалтинг/ПО+Консалтинг)
	"applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c43",
	"projectId": "" // AP ID (Пустое - создание проекта. Заполненное - редактирование проекта)
}

Ответ

Успешный

{
	"success": true,
	"errorMessage": ""
}

Неуспешный

{
	"success": false,
	"errorMessage": "Текст ошибки"
}

Проверка готовности создания проекта

Используется endpoint с методом GET

Предлагаемый вариант api/1.0/openRequest/view?applicationId={applicationId} Обсудить данный момент после реализации и предоставить команде CRM

Главная суть метода, что мы по значению applicationId из пункта Создание некоммерческого проекта получаем готовность создания проекта. Проект считается созданным, если у него заполнено поле ProjectId (уточнить как называется в базе данных поле AP ID)

Ответ

Проект еще создается

{
	"status": "Waiting",
	"projectId": "",
	"errorMessage": ""
}

Создание проекта завершено

{
	"status": "Success",
	"projectId": "123-123-124",
	"errorMessage": ""
}

Ошибка при создании проекта

{
	"status": "Error",
	"projectId": "",
	"errorMessage": "Описание ошибки"
}