PHP-библиотека Consolibyte QuickBooks - средство проверки XML не работает - PullRequest
0 голосов
/ 28 июня 2019

У меня есть следующий 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-запрос через валидатор, я получаю следующую ошибку:

enter image description here

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

1 Ответ

1 голос
/ 29 июня 2019

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

Вы выбираете для проверки:

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

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

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

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

Если вы разрабатываете для торговой точки, то сравните ее с торговой точкой.

Если вы разрабатываете для QuickBooks в США, добавьте qbXML для версий QuickBooks в США и подтвердите это.

...