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

Методы сервиса интеграции

Общие сведения


Методы регистрации запросов начинаются со слова Send и возвращают управление сразу, не дожидаясь обработки переданных данных. Вызывающей стороне сообщается идентификатор запроса messageId в ГИИС ДМДК.

Каждый метод регистрации запросов содержит необязательный параметр TestMessage − признак тестового зароса. Данный параметр указывается, если необходимо выполнить валидацию запроса без изменения данных в ГИИС ДМДК.

Методы получения результатов обработки запросов начинаются со слова Check и возвращают результат обработки запроса.

Рекомендуемая периодичность опроса интеграционного сервиса на наличие ответного сообщения (результата обработки запроса) составляет не менее 120 секунд.

Метод получения результата обработки запроса должен выполняться под тем же пользователем (см. 1.3 Настройка личного кабинета участника ГИИС ДМДК), под кем посылался запрос.

Размер передаваемого сообщения (XML-пакета) не должен превышать 524 000 символов.

Для следующих методов действует ограничение на количество объектов учета в одном пакете − не более 100 (партий, спецификаций, контрактов, квитанций, заявлений и т.п.):

  • SendApplicationControl
  • SendBatchApplictaion
  • SendBatchDivide
  • SendBatchGemstoneCorrect
  • SendBatchMetal
  • SendBatch
  • SendBatchEdit
  • SendBatchSpecification
  • SendBatchUnion
  • SendBuyingup
  • SendDeal
  • SendMetal
  • SendProduct
  • SendReceipt
  • SendSpecification
  • SendBatchCompleteset
  • SendGemsInsert
  • SendGemsRemove
  • SendSpecificationCancel
  • SendBatchReclassification
  • SendSpecificationAct
  • SendBatchBuyingup
  • SendBatchIngot
  • SendBatchConvert
  • SendBuyingupAction
  • SendBatchBuyingupOut
  • SendBatchParent
  • SendBatchBuyingupDelete
  • SendBatchAction
  • SendBatchBuyingupTransform
  • SendBatchDocument
  • SendBatchBatchDocument
  • SendBatchDocumentAction
  • SendTestProtocol
  • SendBatchTestProtocol
  • SendOperation
Общая схема обмена и примеры форматов
Общая схема обмена

Формат запросов, начинающихся на Send и ответ сервиса
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://xsd.dmdk.goznak.ru/exchange/3.0" >
  <soapenv:Header/>
  <soapenv:Body>
    <ns:Send...Request>
      <!-- подпись отправителя по формату XMLDSig, подписывается блок RequestData -->
      <ns:CallerSignature>...</ns:CallerSignature>
      <!-- метка тестового запроса -->
      <ns:TestMessage>...</ns:TestMessage>
      <!-- ОГРН организации для идентификации пользователя с МЧД -->
      <ns:OGRN>...</ns:OGRN>
      <!-- идентификационный код филиала (организации) в ГИИС ДМДК -->
      <!-- заполняется при необходимости работы головного подразделения от имени филиала с ипользованием обезличенного сертификата организации (возможность применения см. в описании методов) -->
      <ns:IDTOP>...</ns:IDTOP>
      <!-- отправляемые данные запроса -->
      <ns:RequestData id="data">...</ns:RequestData>
    </ns:Send...Request>
  </soapenv:Body>
</soapenv:Envelope>
Ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <ns2:Send...Response xmlns:ns2="urn://xsd.dmdk.goznak.ru/exchange/3.0">
      <!-- подпись ГИИС ДМДК по формату XMLDSig, подписывается блок ResponseData -->
      <ns2:DmdkSignature>...</ns2:DmdkSignature>
      <!-- данные ответа на запрос -->
      <ns2:ResponseData id="responsedata">
        <!-- идентификатор запроса -->        
        <ns2:messageId>e5e50280-e6c6-40fe-9e92-71513562cbe7</ns2:messageId>
        <!-- статус запроса -->
        <ns2:status>ACCEPTED</ns2:status>
      </ns2:ResponseData>
    </ns2:Send...Response>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Формат запросов, начинающихся на Check и ответ сервиса
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://xsd.dmdk.goznak.ru/exchange/3.0">
  <soapenv:Header/>
  <soapenv:Body>
    <ns:Check...Request>
      <!-- подпись отправителя по формату XMLDSig, подписывается блок RequestData -->
      <ns:CallerSignature>...</ns:CallerSignature>
      <!-- метка тестового запроса -->
      <ns:TestMessage>...</ns:TestMessage>
      <!-- ОГРН организации для идентификации пользователя с МЧД -->
      <ns:OGRN>...</ns:OGRN>
      <!-- идентификационный код филиала (организации) в ГИИС ДМДК -->
      <!-- заполняется при необходимости работы головного подразделения от имени филиала с ипользованием обезличенного сертификата организации (возможность применения см. в описании методов) -->
      <ns:IDTOP>...</ns:IDTOP>
      <!-- отправляемые данные запроса -->
      <ns:RequestData id="data">
        <!-- идентификатор запроса -->
        <ns:messageId>03ae7eaf-b455-48c6-abda-2f53719ca2bd</ns:messageId>
      </ns:RequestData>
    </ns:Check...Request>
  </soapenv:Body>
</soapenv:Envelope>
Ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <ns2:Check...Response xmlns:ns2="urn://xsd.dmdk.goznak.ru/exchange/3.0">
      <!-- подпись ГИИС ДМДК по формату XMLDSig, подписывается блок ResponseData -->
      <ns2:DmdkSignature>...</ns2:DmdkSignature>
      <!-- данные ответа на запрос -->
      <ns2:ResponseData id="responsedata">
        <!-- идентификатор запроса -->
        <ns2:messageId>8df3dd5a-0b37-4627-8c53-d4ad2318be4f</ns2:messageId>
        <!-- статус запроса -->
        <ns2:status>PREPARED</ns2:status>
        <!-- далее идут данные ответа, если запрос обработан -->
        ...
      </ns2:ResponseData>
    </ns2:Check...Response>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Особенности заполнения элемента IDTOP в параметрах запроса


1) Если IDTOP используется вместе обезличенным сертификатом, то данный IDTOP участвует в определении пользователя.

Переданная в методе Send* пара [IDTOP; сертификат] определяет логин пользователя системы, поэтому при выполнении соответствующего метода Check* необходимо передавать ту же комбинацию данных [IDTOP; сертификат], иначе вернется ошибка HTTP 500:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring xml:lang="en">MessageIdNotFound</faultstring>
         <detail>
            <ErrorDetailType xmlns:ns2="urn://xsd.dmdk.goznak.ru/exchange/3.0">
               <ns2:code>MessageIdNotFound</ns2:code>
               <ns2:msg>Message not found</ns2:msg>
            </ErrorDetailType>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Передача заполненного IDTOP c личными сертификатами не влияет на определение пользователя системы, пользователь идентифицируется по сертификату (в случае с МЧД дополнительно используется элемент OGRN).

2) Заполненный IDTOP вызывает переключение профиля (аналогично операции в ЛК). Переключение возможно только в рамках одной организации, и только пользователем головной организации.