1C-Company / DirectBank

DirectBank (прямой обмен с банком) – новая технология системы "1С:Предприятие 8"
51 stars 22 forks source link

Не принимает XML документ запроса выписки #82

Closed IgorA100 closed 3 years ago

IgorA100 commented 3 years ago

Отправляю документ сформированный пока в ручную для тестов: SendPack

`<?xml version="1.0" encoding="UTF-8"?> <StatementRequest xmlns="http://directbank.1c.ru/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="f4bc45ba-e098-4f46-b9e1-ac129dedc5d9" formatVersion="2.1.1" creationDate="2021-03-04T12:22:27" userAgent="1С - БЭД: 1.7.1.1; БиблиотекаЭлектронныхДокументов: 1.7.1.1">

<Recipient bic="044525201" name="ПАО АКБ АВАНГАРД"/>
<Data>
    <StatementType>0</StatementType>
    <DateFrom>2021-03-02T00:00:00</DateFrom>
    <DateTo>2021-03-03T22:59:59</DateTo>
    <Account>40702810219200025677</Account>
    <Bank>
        <BIC>044525201</BIC>
        <Name>ПАО АКБ &quot;АВАНГАРД&quot;</Name>
    </Bank>
</Data>

`

Делаю запрос методом GetPackList

В ответе есть:

`

7548196
  </SendPacketResponse>

`

Что делать с этим ID - не понятно. Делаю запрос методом GetPack?id=123456? ID получен (их уже несколько) при разборе предыдущего ответа :

`<?xml version="1.0" encoding="UTF-8"?>

7549149 2001 Некорректный формат транспортного контейнера Формат транспортного контейнера не соответствует XML-схеме стандарта ` Проблема в отправляемом (формат, поля...) или еще в чем-то ?
SevDmitry commented 3 years ago

Отправлять в банк можно только Packet. Положите ваш запрос в Packet и отправляйте в банк

IgorA100 commented 3 years ago

Т.е. вместо <StatementRequest xmlns="http://directbank.1c.ru/XMLSchema" Использовать <Packet xmlns="http://directbank.1c.ru/XMLSchema" Здесь https://github.com/1C-Company/DirectBank/blob/master/doc/transport-api/readme.md используется Packet А здесь https://github.com/1C-Company/DirectBank/blob/master/doc/application-layer/readme.md#statementRequest используется StatementRequest Где-то получается противоречия или я в чем-то не прав?

IgorA100 commented 3 years ago

Я запутался еще больше... Вместо StatementRequest указал Packet - отправил запрос, ничего не изменилось. Корректно писать так? <Sender> <Customer id="123456" name="ООО Вася" inn="123456" kpp="123456"/> </Sender> Или так? <Sender id="123456" name="ООО Вася" inn="123456" kpp="123456"/> В ... указывать как здесь https://github.com/1C-Company/DirectBank/blob/master/doc/application-layer/readme.md#statementRequest Или в base64 ?

SevDmitry commented 3 years ago

На странице есть пример пакета. Правильно так:

    <Sender>
        <Customer id="82007cb2-dfd1-4193-b903-16cc9b7231c9" name="ИП Петрович и Ко" inn="761700021132"/>
    </Sender>

Для элемента Data указан тип base64Binary, значит в base64

IgorA100 commented 3 years ago

Спасибо, что-то проясняется. И еще вопрос: В примере <Document id="a64225eb-9737-4d80-bd9d-1ffe5fdb63b1" dockind="10" formatVersion="2.3.1"> указывается dockind="10" Насколько я понял, это Код вида электронного документа Но я не могу нигде найти соответствия кодов видам документов. id= - это уникальный номер документа который лежит внутри и который формируется на стороне клиента, верно? Если ли так, то что будет, если в банк передать два разных документа с одним ID?

И еще в теге есть атрибут id="9bad1c35-b7ff-11e4-9a88-0003ffb697db" - это что ID номер и какой указывать? Или это уникальный ID самого документа и его так-же нужно формировать на стороне клиента?

SevDmitry commented 3 years ago

Но я не могу нигде найти соответствия кодов видам документов.

Таблица

Если ли так, то что будет, если в банк передать два разных документа с одним ID?

Думаю, что ничего хорошего. Лучше передавать уникальные

И еще в теге есть атрибут id="9bad1c35-b7ff-11e4-9a88-0003ffb697db" - это что ID номер и какой указывать? Или это уникальный ID самого документа и его так-же нужно формировать на стороне клиента?

Это идентификатор пакета, формируется на стороне клиента. Не совпадает с идентификатором документа, вложенного в пакет.

IgorA100 commented 3 years ago

Все поправил, но по прежнему получаю ошибку:

      <Error>
         <Code>2001</Code>
         <Description>Некорректный формат транспортного контейнера</Description>
         <MoreInfo>Формат транспортного контейнера не соответствует XML-схеме стандарта</MoreInfo>
      </Error>

Запрос:

<?xml version="1.0" encoding="UTF-8"?>
<Packet 
    xmlns="http://directbank.1c.ru/XMLSchema" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    id="232CCD45-2B58-40C9-93A0-3691E14B23E1" 
    formatVersion="2.1.1" 
    creationDate="2021-03-05T09:52:27" 
    userAgent="1С - БЭД: 1.7">
    <Sender>
        <Customer id="1234567" name="ООО Вася" inn="1234567"/>
    </Sender>
    <Recipient>
        <Bank bic="044525201" name="ПАО АКБ АВАНГАРД"/>
    </Recipient>
    <Document id="E20C600A-1775-4B0B-B9FF-AE71BC6C9E01" dockind="14" formatVersion="2.1.1">
        <Data>
            PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTdGF0ZW1lbnRSZXF1ZXN0IHhtbG5zPSJodHRwOi8vZGlyZWN0YmFuay4xYy5ydS9YTUxTY2hlbWEiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9ImRhMDZkYzhmLWFmYmUtNDE3Mi04OWM4LTBkNDQ5MmMyZGQyNSIgZm9ybWF0VmVyc2lvbj0iMi4xLjEiIGNyZWF0aW9uRGF0ZT0iMjAxOS0wNC0yMlQwOTo1MjoyNyIgdXNlckFnZW50PSIx0KEgLSDQkdCt0JQ6IDEuNy4xLjE7INCR0LjQsdC70LjQvtGC0LXQutCw0K3Qu9C10LrRgtGA0L7QvdC90YvRhdCU0L7QutGD0LzQtdC90YLQvtCyOiAxLjcuMS4xIj48U2VuZGVyIGlkPSI4MjAwN2NiMi1kZmQxLTQxOTMtYjkwMy0xNmNjOWI3MjMxYzkiIG5hbWU9ItCe0J7QniDQmtC10L3RgtCw0LLRgCIgaW5uPSI0NjMyMTk4MDI0IiBrcHA9IjQ2MzIwMTAwMSIvPjxSZWNpcGllbnQgYmljPSIwNDQ1MjUyMDEiIG5hbWU9ItCf0JDQniDQkNCa0JEg0JDQktCQ0J3Qk9CQ0KDQlCIvPjxEYXRhPjxTdGF0ZW1lbnRUeXBlPjA8L1N0YXRlbWVudFR5cGU+PERhdGVGcm9tPjIwMTktMDQtMjFUMDA6MDA6MDA8L0RhdGVGcm9tPjxEYXRlVG8+MjAxOS0wNC0yMVQwMDowMDowMDwvRGF0ZVRvPjxBY2NvdW50PjQwNzAyODEwMjE5MjAwMDI1Njc3PC9BY2NvdW50PjxCYW5rPjxCSUM+MDQ0NTI1MjAxPC9CSUM+PE5hbWU+0J/QkNCeINCQ0JrQkSAmYW1wO3F1b3Q70JDQktCQ0J3Qk9CQ0KDQlCZhbXA7cXVvdDs8L05hbWU+PC9CYW5rPjwvRGF0YT48L1N0YXRlbWVudFJlcXVlc3Q+DQoNCg==
        </Data>
    </Document>
</Packet>

В Data

<?xml version="1.0" encoding="UTF-8"?>
<StatementRequest 
    xmlns="http://directbank.1c.ru/XMLSchema" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    id="da06dc8f-afbe-4172-89c8-0d4492c2dd25" 
    formatVersion="2.1.1" 
    creationDate="2019-04-22T09:52:27" 
    userAgent="1С - БЭД: 1.7.1.1; БиблиотекаЭлектронныхДокументов: 1.7.1.1">
    <Sender id="82007cb2-dfd1-4193-b903-16cc9b7231c9" name="ООО Вася" inn="1234567" kpp="1234567"/>
    <Recipient bic="044525201" name="ПАО АКБ АВАНГАРД"/>
    <Data>
        <StatementType>0</StatementType>
        <DateFrom>2019-04-21T00:00:00</DateFrom>
        <DateTo>2019-04-21T00:00:00</DateTo>
        <Account>1234567</Account>
        <Bank>
            <BIC>044525201</BIC>
            <Name>ПАО АКБ &amp;quot;АВАНГАРД&amp;quot;</Name>
        </Bank>
    </Data>
</StatementRequest>

:(

SevDmitry commented 3 years ago

image

IgorA100 commented 3 years ago

Так у меня все значения с 1234567 - это не реальные значения. Вместо 1234567 - введены везде правильные значения! Вот со всеми реальными значениями

<?xml version="1.0" encoding="UTF-8"?>
<Packet 
    xmlns="http://directbank.1c.ru/XMLSchema" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    id="232CCD45-2B58-40C9-93A0-3691E14B23E1" 
    formatVersion="2.1.1" 
    creationDate="2021-03-05T09:52:27" 
    userAgent="1С - БЭД: 1.7">
    <Sender>
        <Customer id="1885122063" name="ООО Вася" inn="4632198028"/>
    </Sender>
    <Recipient>
        <Bank bic="044525201" name="ПАО АКБ АВАНГАРД"/>
    </Recipient>
    <Document id="E20C600A-1775-4B0B-B9FF-AE71BC6C9E01" dockind="14" formatVersion="2.1.1">
        <Data>
            PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTdGF0ZW1lbnRSZXF1ZXN0IHhtbG5zPSJodHRwOi8vZGlyZWN0YmFuay4xYy5ydS9YTUxTY2hlbWEiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9ImRhMDZkYzhmLWFmYmUtNDE3Mi04OWM4LTBkNDQ5MmMyZGQyNSIgZm9ybWF0VmVyc2lvbj0iMi4xLjEiIGNyZWF0aW9uRGF0ZT0iMjAxOS0wNC0yMlQwOTo1MjoyNyIgdXNlckFnZW50PSIx0KEgLSDQkdCt0JQ6IDEuNy4xLjE7INCR0LjQsdC70LjQvtGC0LXQutCw0K3Qu9C10LrRgtGA0L7QvdC90YvRhdCU0L7QutGD0LzQtdC90YLQvtCyOiAxLjcuMS4xIj48U2VuZGVyIGlkPSI4MjAwN2NiMi1kZmQxLTQxOTMtYjkwMy0xNmNjOWI3MjMxYzkiIG5hbWU9ItCe0J7QniDQmtC10L3RgtCw0LLRgCIgaW5uPSI0NjMyMTk4MDI0IiBrcHA9IjQ2MzIwMTAwMSIvPjxSZWNpcGllbnQgYmljPSIwNDQ1MjUyMDEiIG5hbWU9ItCf0JDQniDQkNCa0JEg0JDQktCQ0J3Qk9CQ0KDQlCIvPjxEYXRhPjxTdGF0ZW1lbnRUeXBlPjA8L1N0YXRlbWVudFR5cGU+PERhdGVGcm9tPjIwMTktMDQtMjFUMDA6MDA6MDA8L0RhdGVGcm9tPjxEYXRlVG8+MjAxOS0wNC0yMVQwMDowMDowMDwvRGF0ZVRvPjxBY2NvdW50PjQwNzAyODEwMjE5MjAwMDI1Njc3PC9BY2NvdW50PjxCYW5rPjxCSUM+MDQ0NTI1MjAxPC9CSUM+PE5hbWU+0J/QkNCeINCQ0JrQkSAmYW1wO3F1b3Q70JDQktCQ0J3Qk9CQ0KDQlCZhbXA7cXVvdDs8L05hbWU+PC9CYW5rPjwvRGF0YT48L1N0YXRlbWVudFJlcXVlc3Q+DQoNCg==
        </Data>
    </Document>
</Packet>

<?xml version="1.0" encoding="UTF-8"?>
<StatementRequest 
    xmlns="http://directbank.1c.ru/XMLSchema" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    id="da06dc8f-afbe-4172-89c8-0d4492c2dd25" 
    formatVersion="2.1.1" 
    creationDate="2019-04-22T09:52:27" 
    userAgent="1С - БЭД: 1.7.1.1; БиблиотекаЭлектронныхДокументов: 1.7.1.1">
    <Sender id="82007cb2-dfd1-4193-b903-16cc9b7231c9" name="ООО Кентавр" inn="4632198024" kpp="463201001"/>
    <Recipient bic="044525201" name="ПАО АКБ АВАНГАРД"/>
    <Data>
        <StatementType>0</StatementType>
        <DateFrom>2019-04-21T00:00:00</DateFrom>
        <DateTo>2019-04-21T00:00:00</DateTo>
        <Account>40702810219200042577</Account>
        <Bank>
            <BIC>044525201</BIC>
            <Name>ПАО АКБ &amp;quot;АВАНГАРД&amp;quot;</Name>
        </Bank>
    </Data>
</StatementRequest>
SevDmitry commented 3 years ago

Попробуйте удалить все незначимые символы внутри элемента Data в пакете

IgorA100 commented 3 years ago

А их там и нет, все идет вообще в одну строку

<?xml version="1.0" encoding="UTF-8"?>
<Packet xmlns="http://directbank.1c.ru/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="1949A6F2-F2E1-4C05-B81A-F1C784C3D621" formatVersion="2.1.1" creationDate="2021-03-05T09:52:27" userAgent="1С - БЭД: 1.7"><Sender><Customer id="1885122063" name="ООО Вася" inn="4632198024"/></Sender><Recipient><Bank bic="044525201" name="ПАО АКБ АВАНГАРД"/></Recipient><Document id="725C7AD7-C6D6-437F-A83E-8591034ACC7D" dockind="14" formatVersion="2.1.1"><Data>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTdGF0ZW1lbnRSZXF1ZXN0IHhtbG5zPSJodHRwOi8vZGlyZWN0YmFuay4xYy5ydS9YTUxTY2hlbWEiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9ImRhMDZkYzhmLWFmYmUtNDE3Mi04OWM4LTBkNDQ5MmMyZGQyNSIgZm9ybWF0VmVyc2lvbj0iMi4xLjEiIGNyZWF0aW9uRGF0ZT0iMjAxOS0wNC0yMlQwOTo1MjoyNyIgdXNlckFnZW50PSIx0KEgLSDQkdCt0JQ6IDEuNy4xLjE7INCR0LjQsdC70LjQvtGC0LXQutCw0K3Qu9C10LrRgtGA0L7QvdC90YvRhdCU0L7QutGD0LzQtdC90YLQvtCyOiAxLjcuMS4xIj48U2VuZGVyIGlkPSIxODg2MTYyMDYzIiBuYW1lPSLQntCe0J4g0JrQtdC90YLQsNCy0YAiIGlubj0iNDYzMjE5ODAyNCIga3BwPSI0NjMyMDEwMDEiLz48UmVjaXBpZW50IGJpYz0iMDQ0NTI1MjAxIiBuYW1lPSLQn9CQ0J4g0JDQmtCRINCQ0JLQkNCd0JPQkNCg0JQiLz48RGF0YT48U3RhdGVtZW50VHlwZT4wPC9TdGF0ZW1lbnRUeXBlPjxEYXRlRnJvbT4yMDE5LTA0LTIxVDAwOjAwOjAwPC9EYXRlRnJvbT48RGF0ZVRvPjIwMTktMDQtMjFUMDA6MDA6MDA8L0RhdGVUbz48QWNjb3VudD40MDcwMjgxMDIxOTIwMDAyNTY3NzwvQWNjb3VudD48QmFuaz48QklDPjA0NDUyNTIwMTwvQklDPjxOYW1lPtCf0JDQniDQkNCa0JEg0JDQktCQ0J3Qk9CQ0KDQlDwvTmFtZT48L0Jhbms+PC9EYXRhPjwvU3RhdGVtZW50UmVxdWVzdD4NCg0K</Data></Document></Packet>

И вот что в Дата кодировалось:

<?xml version="1.0" encoding="UTF-8"?>
<StatementRequest xmlns="http://directbank.1c.ru/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="da06dc8f-afbe-4172-89c8-0d4492c2dd25" formatVersion="2.1.1" creationDate="2019-04-22T09:52:27" userAgent="1С - БЭД: 1.7.1.1; БиблиотекаЭлектронныхДокументов: 1.7.1.1"><Sender id="1885122063" name="ООО Вася" inn="4632198024" kpp="463201001"/><Recipient bic="044525201" name="ПАО АКБ АВАНГАРД"/><Data><StatementType>0</StatementType><DateFrom>2019-04-21T00:00:00</DateFrom><DateTo>2019-04-21T00:00:00</DateTo><Account>40702810219200042577</Account><Bank><BIC>044525201</BIC><Name>ПАО АКБ АВАНГАРД</Name></Bank></Data></StatementRequest>

Я строки переносил руками, что бы удобней было читать...

SevDmitry commented 3 years ago

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

IgorA100 commented 3 years ago

Проблема оказалась в некорректном чтении XML перед отправкой. Fiddler помог отловить проблему.