【问题标题】:Using the Consolibyte PHP SDK for QuickBooks, what is the correct syntax for a Query?使用适用于 QuickBooks 的 Consolibyte PHP SDK,查询的正确语法是什么?
【发布时间】:2020-02-19 17:03:56
【问题描述】:

我翻遍了,找不到这个。使用 ListID 查询客户(或发票、付款或其他)的 qbXML 是什么?我目前正在发送这样的内容:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <CustomerQueryRq requestID="' + $requestID + '">
            <ListID>' + $qbDesktopID + '</ListID>
        </CustomerQueryRq>
    </QBXMLMsgsRq>
</QBXML>

qbDesktopID 看起来像 80000000-1234567890,我收到了一个一般性的错误,说我的 XML 格式不正确。

【问题讨论】:

    标签: php desktop quickbooks intuit


    【解决方案1】:

    这里有一些非常重要的事情需要注意:

    1. 为了进行故障排除,请务必查看您发送的实际 qbXML您的代码您发送到 QuickBooks 的实际 qbXML 是什么样的?您可以在 quickbooks_log SQL 表和 Web 连接器日志中找到它(如果您将其设置为 VERBOSE 日志记录)。
    2. 发票和付款没有ListID 值,因此请注意这些查询会有所不同(它们有TxnID 值)。
    3. 每当您收到错误消息时,务必发布实际的错误消息。 QuickBooks 会产生数以千计的不同错误消息,因此如果不知道具体是什么错误,就很难为您提供帮助。
    4. 每当您遇到与 qbXML 语法相关的错误时,您的第一站应该是XML Validator 工具包含在 QuickBooks SDK 中。它会准确地告诉你哪一行和哪个字符不正确。

    话虽如此...我怀疑您实际上并没有发送您认为要发送的内容。

    字符串的 PHP 连接运算符不是+。我是.https://www.php.net/manual/en/language.operators.string.php

    假设您在上面发布的是 PHP 的 sn-p,它的计算结果为空字符串或可能是整数(如果 $requestID 是整数),而不是有效的 XML 字符串。

    你确定你不是故意的:

    $xml = '<?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="13.0"?>
    <QBXML>
        <QBXMLMsgsRq onError="stopOnError">
            <CustomerQueryRq requestID="' . $requestID . '">
                <ListID>' . $qbDesktopID . '</ListID>
            </CustomerQueryRq>
        </QBXMLMsgsRq>
    </QBXML>';
    

    (注意. 而不是+ 用于连接)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      相关资源
      最近更新 更多