PHP-библиотека Consolibyte QuickBooks — XML-валидатор не работает

У меня есть следующий запрос XML для добавления нового счета Quickbooks:

<?xml version="1.0" encoding="utf-8"?>
    <?qbposxml version="3.0"?>
    <QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
            <BillAddRq>
                <BillAdd defMacro="MACROTYPE"> <!-- required -->
                    <VendorRef> <!-- required -->
                        <ListID>80012448-1569211475</ListID> <!-- optional -->
                    </VendorRef>
                    <TxnDate>2019-06-28</TxnDate> <!-- optional -->
                    <DueDate>2019-06-29</DueDate> <!-- optional -->
                    <RefNumber>Ref12345</RefNumber> <!-- optional -->
                    <Memo>Memo12345</Memo> <!-- optional -->
                    <ExternalGUID>ExternalGUID12345</ExternalGUID> <!-- optional -->
                    <ExpenseLineAdd defMacro="MACROTYPE"> <!-- optional, may repeat -->
                        <AccountRef> <!-- optional -->
                            <FullName>Casual Labor:Moving</FullName> <!-- optional -->
                        </AccountRef>
                        <Amount>99.99</Amount> <!-- optional -->
                        <Memo>VillageMemo12345</Memo> <!-- optional -->
                    </ExpenseLineAdd>
                </BillAdd>
            </BillAddRq>
        </QBPOSXMLMsgsRq>
    </QBPOSXML>

Веб-коннектор возвращает ошибку 0x80040400: QuickBooks found an error when parsing the provided XML text stream. с указанным выше. Я следил за этим сообщением на форумах поддержки Intuit, чтобы попытаться использовать встроенный валидатор XML.

Когда я запускаю свой XML-запрос через валидатор, я получаю следующую ошибку:

введите здесь описание изображения

Как устранить указанную выше ошибку валидатора? Кроме того, есть ли другой способ проверки QB XML, кроме использования встроенного средства проверки?


person Lloyd Banks    schedule 27.06.2019    source источник


Ответы (1)


Выбор платформы, который вы делаете в валидаторе, должен соответствовать выбору платформы, на которую вы ориентируетесь в своем XML.

Вы выбираете проверку по:

  • QuickBooks (издания для США)

Но ваш qbXML предназначен для:

  • <?qbposxml version="3.0"?> <QBPOSXML> (точка продажи QuickBooks)

Поскольку вы проверяете что-то, что не является вашей реальной целью qbXML, конечно, проверка не удастся. Это недействительно для того, что вы выбрали.

Если вы разрабатываете для точек продаж, проверьте соответствие с точками продаж.

Если вы разрабатываете для американской версии QuickBooks, добавьте немного qbXML для американской версии QuickBooks и проверьте это.

person Keith Palmer Jr.    schedule 29.06.2019