使用Consolibyte PHP SDK for QuickBooks,查询的正确语法是什么?

问题描述 投票:0回答:1

我看了遍,找不到。使用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个回答
0
投票

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

  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的摘要,它将计算为空字符串或整数(如果$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>';

(请注意,将.代替+并置]

© www.soinside.com 2019 - 2024. All rights reserved.