QuickBooks CustomerAdd 请求因格式错误 xml 而失败?

QuickBooks CustomerAdd request failing due to malformed xml?

问题:我是否发送了正确的 XML 请求?我是否缺少任何必需的信息?我正在使用 QuickBooks 中的以下文档来比较 XMLOps:https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html

我正在创建一个新的 LoopbackJS Connector for QuickBooks,但我 运行 在创建新记录时遇到了麻烦,我可以完美地查询记录。

在添加新记录时,我查看了其他几个 qbXML 请求,特别是 CustomerAdd 请求以及我发送到 Web 连接器的内容似乎正是其他人正在使用的(并且它为他们工作)。我的猜测是 loopback-connect-quickbooks 本身有问题,而不是我发送的请求,但我会试一试,无论如何 post。提前致谢。

<?xml version="1.0"?>
<?qbxml version="13.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq requestID="2">
      <CustomerAdd>
        <FirstName>Anne</FirstName>
        <MiddleName>B</MiddleName>
        <LastName>Williams</LastName>
        <Name>Anne B Williams</Name>
        <ShipToAddress>
          <Name>Anne B Williams</Name>
        </ShipToAddress>
      </CustomerAdd>
    </CustomerAddRq>
  </QBXMLMsgsRq>
</QBXML>

再次参考 OSR,记住 -- 标签的顺序 重要

OSR 按以下顺序显示标签:

<Name >STRTYPE</Name> <!-- required -->
...
<FirstName >STRTYPE</FirstName> <!-- optional -->
<MiddleName >STRTYPE</MiddleName> <!-- optional -->
<LastName >STRTYPE</LastName> <!-- optional -->

你的顺序是这样的:

    <FirstName>Anne</FirstName>
    <MiddleName>B</MiddleName>
    <LastName>Williams</LastName>
    <Name>Anne B Williams</Name>

您必须遵循 OSR 中显示的标签顺序。修复标签的顺序,您的请求应该可以正常通过。

旁注 - QuickBooks SDK 中包含一个 XML Validator 工具,可以准确地告诉您在这种情况下您的错误是什么。