Consolibyte QuickBooks PHP 图书馆 - XML 验证器不工作

Consolibyte QuickBooks PHP Library - XML Validator Not Working

我有以下 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>

Web 连接器返回 0x80040400: QuickBooks found an error when parsing the provided XML text stream. 上述错误。我在 Intuit 的支持论坛上关注 post 以尝试使用内置的 XML 验证器。

当我通过验证器 运行 我的 XML 请求时,我收到以下错误:

如何解决上述验证器错误?另外,除了使用内置验证器之外,还有其他验证 QB XML 的方法吗?

您在验证器中选择的平台需要与您在 XML 中选择的平台相匹配。

您选择验证依据:

  • QuickBooks(美国版)

但是你的 qbXML 是为了:

  • <?qbposxml version="3.0"?> <QBPOSXML>(QuickBooks 销售点)

由于您验证的不是您实际的 qbXML 目标,因此验证当然会失败。对于您选择的内容无效。

如果您正在针对销售点进行开发,请针对销售点进行验证。

如果您正在为美国版的 QuickBooks 开发,请为美国版的 QuickBooks 输入一些 qbXML 并验证它。