更换qbXML请求类型后QuickBooks仍返回相同数据的咨询
为何不同qbXML请求返回相同数据?
我刚开始学习QuickBooks,能成功发送XML请求,但返回结果有问题。尝试CheckQueryRq、VendorQueryRq、InvoiceQueryRq等不同请求类型,却始终得到完全相同的数据。
以下是我的XML请求代码:
<xml version=""1.0"" encoding=""utf-8"" ?> <qbxml version=""12.0""?> <QBXML> <QBXMLMsgsRq onError=""stopOnError""> <CheckQueryRq> <IncludeLineItems>true</IncludeLineItems> </CheckQueryRq> </QBXMLMsgsRq> </QBXML> <xml version=""1.0"" encoding=""utf-8"" ?> <qbxml version=""12.0""?> <QBXML> <QBXMLMsgsRq onError=""stopOnError""> <VendorQueryRq> <IncludeLineItems>true</IncludeLineItems> </VendorQueryRq> </QBXMLMsgsRq> </QBXML> <xml version=""1.0"" encoding=""utf-8"" ?> <qbxml version=""12.0""?> <QBXML> <QBXMLMsgsRq onError=""stopOnError""> <InvoiceQueryRq> <IncludeLineItems>true</IncludeLineItems> </InvoiceQueryRq> </QBXMLMsgsRq> </QBXML>
问题原因分析
- XML语法错误:请求中的引号被错误转义了两次(
""),正确的XML声明应该是<xml version="1.0" encoding="utf-8" ?>,qbxml标签应为<qbxml version="12.0"?>。语法错误会导致QuickBooks无法正确解析请求类型,可能返回默认或缓存的错误数据。 - 请求发送逻辑问题:确认你每次发送的是单个完整的qbXML请求文档,而非同时发送多个请求。如果批量发送多个请求,QuickBooks可能仅处理第一个,或返回异常结果。
- 无效标签使用:
VendorQueryRq不支持IncludeLineItems标签,该标签仅适用于交易类对象(如Check、Invoice)。错误添加不支持的标签会导致请求解析异常,返回非预期数据。 - 缓存问题:检查你的代码是否存在请求缓存,确保每次发送不同请求时,请求体确实被更新,而非重复发送同一内容。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

