Consolibyte QuickBooks PHP库-XML验证器不起作用

时间:2019-06-27 21:12:29

标签: quickbooks qbxml qbfc

我收到以下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请求时,出现以下错误:

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

您选择根据以下条件进行验证:

  • QuickBooks(美国版)

但是您的qbXML用于:

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

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

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

如果您正在为美国版的QuickBooks开发,那么请为美国版的QuickBooks放入一些qbXML并进行验证。