2

我已经为 QuickBooks Desktop 构建了一个非常简单的 XML 请求,并使用 QBSDK qb*XML Validator 对其进行了验证,它告诉我 XML 实例是有效的:

<?qbxml version="12.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq requestID="12">
      <CustomerAdd>
        <Name>EDWARDS, JOHN</Name>
        <FirstName>John</FirstName>
      </CustomerAdd>
    </CustomerAddRq>
  </QBXMLMsgsRq>
</QBXML>

但是,我自己的 C# 应用程序和 SDK 提供的 qbXML 测试应用程序都失败,并显示无用的消息“QuickBooks 在解析提供的 XML 文本流时发现错误”。

我已经通过 QuickBooks 成功地授权了该应用程序,并为其提供了额外的客户信息权限以确保安全。

根据 OSR,唯一必填字段是“名称”。我已经没有地方可以进行这项调查了。

我的处理方式有什么明显的问题吗?是否有我没有看到的权限问题?

4

1 回答 1

2

知道了!C# 的 XDocument.ToString() 删除了该<?xml?>指令。我的另一个查询有效,因为我使用的是 XmlDocument.InnerXml,它没有这样做(但与 XDocument 相比看起来更丑)。我继续并连接:

doc.Declaration.ToString() + doc.ToString()

基本上与 XDocument.ToString() 相同的问题drop XML Encoding Tag

于 2013-10-03T23:57:52.263 回答