1

我使用 QuickBooks PHP DevKit 通过 Quickbooks Web 连接器工具将我的 Web 应用程序连接到 quickbooks。它在插入数据时效果很好,但是在尝试更新时它给了我这个错误:

0x80040400:QuickBooks 在解析提供的 XML 文本流时发现错误。

此链接显示了可用的 xml 选项:

http://dev.developer.intuit.com/qbSDK-current/OSR/OnscreenRef/index-QBD.html

$xml = '<?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="2.0"?>
    <QBXML>
        <QBXMLMsgsRq onError="stopOnError">
            <EstimateModRq requestID="' . $requestID . '">
                <EstimateMod>
                    <TxnID>B9-1340134119</TxnID>
                    <EditSequence>1340134119</EditSequence>
                    <CustomerRef>
                        <FullName>cliente prueba</FullName>
                    </CustomerRef>
                    <TxnDate>2009-01-09</TxnDate>
                    <RefNumber>16466</RefNumber>
                    <EstimateLineMod>
                        <TxnLineID>-1</TxnLineID>
                        <ItemRef>
                            <FullName>Sales</FullName>
                        </ItemRef>
                        <Desc>gift certificate</Desc>
                        <Quantity>4</Quantity>
                        <Rate>11.00</Rate>
                    </EstimateLineMod>
                </EstimateMod>
            </EstimateModRq>
        </QBXMLMsgsRq>
    </QBXML>';
4

1 回答 1

2

如果您参考 QuickBooks OSR(最好是此处的最新版本:http: //developer.intuit.com/qbsdk-current/common/newosr/index.html),您会注意到 EstimateMod 请求标记如下:

EstimateMod (3.0)

这意味着在 qbXML 版本3.0之前不支持 EstimateMod (如果您需要更多详细信息,请参阅 QuickBooks SDK .PDF 文档中有关 qbXML 版本的更多信息)。

您正在使用 qbXML 2.0 版

<?qbxml version="2.0"?>

将其更改为更高版本(6.0 或更高版本是支持的最佳版本 - 6.0 提供与大多数 QuickBooks 版本的最广泛兼容性),您应该一切就绪。

于 2012-06-20T15:30:46.650 回答