DirectBank
DirectBank copied to clipboard
Алгоритм получения выписки, есть вопросы.
Отправляем запрос на получение выписки (с ID=0C9A09B2-8B4F-47C9-855C-3D2E39338187) и в ответ получаем:
<?xml version="1.0" encoding="UTF-8"?>
<ResultBank xmlns="http://directbank.1c.ru/XMLSchema" formatVersion="2.1.1">
<Success>
<SendPacketResponse>
<ID>7606707</ID>
</SendPacketResponse>
</Success>
</ResultBank>
Запрашиваем список GUID и получаем:
<?xml version="1.0" encoding="UTF-8"?>
<ResultBank xmlns="http://directbank.1c.ru/XMLSchema" formatVersion="2.1.1">
<Success>
<GetPacketListResponse TimeStampLastPacket="2021-03-10T16:52:54">
.....
<PacketID>0e8f11f2-cb80-4ad8-8d46-1fd0ec70da9e</PacketID>
<PacketID>16a8b1b0-14e5-4249-a98b-e3ea4330ab65</PacketID>
<PacketID>5ce9493e-b5c4-43f3-9a53-842081125215</PacketID>
</GetPacketListResponse>
</Success>
</ResultBank>
Делаем запросы документов по GUID, с последенего 5ce9493e-b5c4-43f3-9a53-842081125215 Здесь мы получили ответ, что статус документа 01=ПРИНЯТ, далее видим IDResultSuccessResponse = ID 7606707 полученному при отправке запроса выписки. Все понятно.
<?xml version="1.0" encoding="UTF-8"?>
<StatusPacketNotice xmlns="http://directbank.1c.ru/XMLSchema" id="3a65ceba-f039-4033-aeb5-430e7185ff8c" formatVersion="2.1.1" creationDate="2021-03-10T16:52:09">
<Sender>
<Bank bic="044525201"/>
</Sender>
<Recipient>
<Customer id="ХХХХХХХХХХ"/>
</Recipient>
<IDResultSuccessResponse>7606707</IDResultSuccessResponse>
<Result>
<Status>
<Code>01</Code>
</Status>
</Result>
<ExtIDPacket>CDA752AC-89A3-408A-BA3D-FF0B3578AABD</ExtIDPacket>
</StatusPacketNotice>
Далее предпоследний 16a8b1b0-14e5-4249-a98b-e3ea4330ab65 Здесь мы видим изменение статуса 02=ИСПОЛНЕН, но КАК связать этот ответ с запросом выписки или с предыдущим ответом статуса документа 01=ПРИНЯТ ??? Не прослеживается никакой взаимосвязи....
<?xml version="1.0" encoding="UTF-8"?>
<StatusDocNotice xmlns="http://directbank.1c.ru/XMLSchema" id="b8a3fad7-1b3a-48b1-af0a-b5b58b116e70" formatVersion="2.1.1" creationDate="2021-03-10T16:52:09">
<Sender>
<Bank bic="044525201"/>
</Sender>
<Recipient>
<Customer id="ХХХХХХХХХХ"/>
</Recipient>
<ExtID>71CA2CEC-23D1-437E-A948-FCAC415134A3</ExtID>
<Result>
<Status>
<Code>02</Code>
</Status>
</Result>
</StatusDocNotice>
И далее смотрим 0e8f11f2-cb80-4ad8-8d46-1fd0ec70da9e ExtIDStatementRequest = ID документа запроса выписки 0C9A09B2-8B4F-47C9-855C-3D2E39338187. Тут тоже вроде понятно.
<?xml version="1.0" encoding="UTF-8"?>
<Statement xmlns="http://directbank.1c.ru/XMLSchema" id="7c001fa6-73b6-4e39-b327-fab96de9b404" formatVersion="2.1.1" creationDate="2021-03-10T16:52:09">
<Sender bic="044525201"/>
<Recipient id="2437544284"/>
<Data>
<StatementType>0</StatementType>
<DateFrom>2021-03-09T00:00:00</DateFrom>
<DateTo>2021-03-10T16:52:08</DateTo>
<Account>ХХХХХХ</Account>
<Bank>
<BIC>044525201</BIC>
<Name>ПАО АКБ "АВАНГАРД"</Name>
<City>г. МОСКВА</City>
<CorrespAcc>30101810000000000201</CorrespAcc>
</Bank>
<OpeningBalance>ХХХХХХ.ХХ</OpeningBalance>
<TotalDebits>0</TotalDebits>
<TotalCredits>0</TotalCredits>
<ClosingBalance>ХХХХХХ.ХХ</ClosingBalance>
</Data>
<ExtIDStatementRequest>0C9A09B2-8B4F-47C9-855C-3D2E39338187</ExtIDStatementRequest>
</Statement>
И если я хочу выполнить "Запрос состояния электронного документа", для ранее произведенного запроса выписки, то какой <ExtID> необходимо указывать? Какие бы номера не вводил, получаю такой ответ:
<?xml version="1.0" encoding="UTF-8"?>
<StatusDocNotice xmlns="http://directbank.1c.ru/XMLSchema" id="504b43fb-85ef-4c4b-aa26-3c6d71f6ba02" formatVersion="2.1.1" creationDate="2021-03-10T17:45:45">
<Sender>
<Bank bic="044525201"/>
</Sender>
<Recipient>
<Customer id="ХХХХХХХХХХ"/>
</Recipient>
<ExtID>7c001fa6-73b6-4e39-b327-fab96de9b404</ExtID>
<Result>
<Error>
<Code>2207</Code>
<Description>Отсутствует электронный документ с запрашиваемым ИД</Description>
<MoreInfo>Не удалось определить состояние электронного документа, т.к. документ с таким идентификатором не найден</MoreInfo>
</Error>
</Result>
<ExtIDStatusRequest>EC894013-2F06-4BC5-8DDA-BCC7868C02F4</ExtIDStatusRequest>
</StatusDocNotice>
Можно ли СИНХРОННО получить состояние документа или только в асинхронном виде?
Далее предпоследний 16a8b1b0-14e5-4249-a98b-e3ea4330ab65 Здесь мы видим изменение статуса 02=ИСПОЛНЕН, но КАК связать этот ответ с запросом выписки или с предыдущим ответом статуса документа 01=ПРИНЯТ ??? Не прослеживается никакой взаимосвязи....
Здесь должен быть идентификатор запроса. Похоже на ошибку на стороне банка.
И если я хочу выполнить "Запрос состояния электронного документа", для ранее произведенного запроса выписки, то какой необходимо указывать?
В типовых конфигурациям запрашиваются только состояния платежных документов. Думаю поэтому со стороны банка также нет возможность получения состояния запроса выписки.
Можно ли СИНХРОННО получить состояние документа или только в асинхронном виде?
Нет, только асинхронно.