我已经为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,唯一需要的字段是“名称”。我已经没有地方可以参加这项调查了。
我是怎么回事这个问题有什么明显的错误吗?是否存在我没有看到的权限问题?
答案 0 :(得分:2)
知道了! C#的XDocument.ToString()删除了<?xml?>
指令。我的另一个查询有效,因为我使用的是XmlDocument.InnerXml,它没有这样做(但与XDocument相比看起来更丑陋)。我继续前进,只是连接起来:
doc.Declaration.ToString() + doc.ToString()
基本相同的问题