我看了遍,找不到。使用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格式不正确。
这里有一些非常重要的事情要注意:
quickbooks_log
SQL表和Web连接器日志中找到它(如果将其设置为VERBOSE
日志记录)。ListID
值,因此请注意,这些查询将有所不同(它们具有TxnID
值)。 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>';
(请注意,将.
代替+
并置]