Быстрый старт

Ниже описан простой пример отправки неформализованного документа через систему Диадок из тестовой в тестовую организацию.

Чтобы отправить документ, выполните следующие шаги:

  1. Подготовьте две тестовые организации:

    1. Создайте два тестовых ящика с помощью формы.

    2. Добавьте ящики в контрагенты друг к другу с помощью веб-интерфейса Диадока .

  2. Авторизуйтесь в системе, чтобы получить авторизационный токен.

  3. Получите идентификатор ящика организации-отправителя с помощью метода GetMyOrganizations.

  4. Получите идентификатор ящика организации-контрагента с помощью метода GetCounteragents.

  5. Подготовьте документ на отправку и подпишите его тестовой подписью: заполните структуру DocumentAttachment и укажите флаг SignedContent.SignWithTestSignature.

  6. Отправьте документ: заполните структуру MessageToPost, добавьте в нее информацию о документе в структуре DocumentAttachment и отправьте с помощью метода PostMessage.

  7. Проверьте статус отправленного документа с помощью метода GetDocument.

Пример (C#)

var diadocApi = new DiadocApi(
    clientId,
    apiUrl,
    new WinApiCrypt());

// Авторизация с помощью логина и пароля
var authToken = diadocApi.Authenticate(login, password);

// Получение идентификатора ящика отправителя
var organizationList = diadocApi.GetMyOrganizations(authToken);
var organizations = organizationList.Organizations;
var myOrgBoxIds = organizations.Select(org => org.Boxes.First().BoxId);

// Получение идентификатора ящика получателя
string counteragentStatus = null;
string afterIndexKey = null;
var counteragentList = diadocApi.GetCounteragents(authToken, myOrgId, counteragentStatus, afterIndexKey);
var counteragents = counteragentList.Counteragents;
var myCounteragentOrgBoxIds = counteragents.Select(c => c.Organization.Boxes.First().BoxId);

// Подготовка документа

// Заполнение содержимого документа
string NonformalizedDocumentPath = @"<путь_к_файлу>"; // путь к файлу, который нужно отправить
var content = File.ReadAllBytes(NonformalizedDocumentPath); // бинарное содержимое файла

// Заполнение информации о документе в структуре DocumentAttachment
var documentAttachment = new DocumentAttachment
{
    TypeNamedId = "nonformalized",

    SignedContent = new SignedContent
    {
        Content = content,
        SignWithTestSignature = true
    }

    Comment = "Текстовый комментарий к документу",
    CustomDocumentId = "Строковый идентификатор учетной системы",

    Metadata =
    {
        new MetadataItem
        {
            Key = "FileName",
            Value = Path.GetFileNameWithoutExtension(NonformalizedDocumentPath)
        }
    }
};

// Заполнение информации о документе в MessageToPost
var messageToPost = new MessageToPost
{
    FromBoxId = myOrgBoxIds,
    ToBoxId = myCounteragentOrgBoxIds
};

messageToPost.DocumentAttachments.Add(documentAttachment);

// Отправка документа
var response = diadocApi.PostMessage(authToken, messageToPost);
var responseDocument = response.Entities.FirstOrDefault(e => string.IsNullOrEmpty(e.ParentEntityId)); // т.к. у документа нет "родительских сущностей"

// Проверка статуса
var document = api.GetDocument(authToken, myOrgBoxIds, response.MessageId, responseDocument.EntityId);
var status = document.DocflowStatus.PrimaryStatus;
Console.WriteLine("Сообщение отправлено, статус: " + status);