3.2.3.5. Метод GetContacts
|
|
Метод GetContacts предназначен для получения из системы Такском-Доклайнз актуального списка статусов приглашений к обмену электронными документами, отправленных или полученных данным абонентом, а также информации о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
В результате вызова метода будет получен XML файл со статусами приглашений к обмену электронными документами и информацией о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
HTTP-запрос
HTTP-method: GET
Адрес запроса (URI)
| |
https://<server>.taxcom.ru/v<version>/API/GetContacts
| |
Заголовок запроса
| |
Integrator-Id
|
Идентификатор интеграционного решения. Формат этого идентификатора:
COMPANY_AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
|
Assistant-Key
|
Маркер временного доступа.
|
Метод GetContacts можно вызывать не чаще, чем один раз в минуту. Нарушение этого условия приведёт к ошибке 2209 "Превышена частота обращений в установленный интервал времени".
Метод GetContacts позволяет получить не более 1000 контактов. Если контактов больше, то следует использовать метод GetContactListUpdates (см. п. 3.2.3.2)
|
HTTP- ответ
XML файл со статусами приглашений к обмену электронными документами, сведениями о подразделениях и сотрудниках организации с включенной опцией "Показывать контрагентам при заполнении данных получателя".
Описание этого файла представлено XSD схемой Contacts.xsd в архиве Schemas_B2BContainer.zip (см. ссылку "Схемы XSD транспортного контейнера Такском" в п. Полезные ссылки), а также в п. 2.1.1.3. XML файлы списка контрагентов.
Пример
<?xml version="1.0" encoding="windows-1251"?>
<Contacts Asof="2016-06-02T16:02:25.597" xmlns="http://api-invoice.taxcom.ru/contacts">
<Contact>
<State Code="Accepted" ErrorCode="" Changed="2015-09-08T13:45:02.137">Контакт подтвержден, обмен документами доступен</State>
<Name>Индивидуальный предприниматель Нестриженко Филофей Дементьевич</Name>
<Inn>787419301376</Inn>
<Login>nestr</Login>
<EDXClientId>2AL-93D14F72-E2A4-4DE6-8859-03B70C547106-00000</EDXClientId>
<Email />
<Agreements />
<OrganizationStructure>
<RootDepartment ID="e33af870-d0d4-46cf-828a-fe1205c1f438" Name="Головное подразделение">
<SubDepartments />
<Employees>
<Employee ID="7fc990f9-08c9-44c9-b2a0-ccf8a76cace4">
<Name LastName="Иванов" FirstName="Петр" />
<Position />
</Employee>
</Employees>
</RootDepartment>
</OrganizationStructure>
</Contact>
<TemplateID>00000000-0000-0000-0000-000000000000</TemplateID>
</Contacts>
Пример кода C#
public void GetMyContactList()
{
const string API_srv = @"https://api.taxcom.ru/v1.3/";
XmlDocument XmlResponse = null;
try
{
var request = (HttpWebRequest) WebRequest.Create(API_srv + "API/GetContacts");
request.Headers.Add("Assistant-Key", "session token");
request.Headers.Add("Integrator-Id", "vendor_id");
request.Method = "GET";
using (var response = request.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var ms = new MemoryStream())
using (var reader = new StreamReader(ms))
{
if (responseStream != null) responseStream.CopyTo(ms);
ms.Position = 0;
XmlResponse=new XmlDocument();
var responsString = reader.ReadToEnd();
if(string.IsNullOrWhiteSpace(responsString))
{
return;
}
XmlResponse.LoadXml(responsString);
var contact = FindXPathInXml(XmlResponse, "//k:Contact/k:EDXClientId");
}
}
catch (WebException exception)
{
Assert.Fail(exception.ToString());
}
catch (Exception exception)
{
Assert.Fail(exception.ToString());
}
}
public static string FindXPathInXml(XmlDocument xmldoc, string xpath)
{
var ns = new XmlNamespaceManager(xmldoc.NameTable);
ns.AddNamespace("m", "http://api-invoice.taxcom.ru/meta");
ns.AddNamespace("c", "http://api-invoice.taxcom.ru/card");
ns.AddNamespace("k", "http://api-invoice.taxcom.ru/contacts");
try
{
return xmldoc.SelectSingleNode(xpath, ns).Value;
}
catch (Exception)
{
return null;
}
}