我正在尝试使用 QuickBooks API 将我公司的产品列表与工作簿的项目列表同步。我已经通过 OAuth 系统能够向 API 发出读/写请求,但在尝试更新对象时总是出错。
我一直在使用的参考是here,并且在同一个文档中是对检索我已经能够正常使用的对象的参考。这是我要发送的 XML。我已经调整 XML 几个小时了,但无济于事。
我收到的错误消息是“ QB 项目名称已经存在 ERI=420962215 ”。ERI 是我的领域 ID。当我尝试修改现有项目时,QuickBooks 似乎认为我正在尝试添加新项目。如果我省略名称字段或将其保留为空,它也会给我一个错误。
我尝试修改的项目是在 QuickBooks 中创建的,然后通过 QuickBook 的同步管理器进行同步。然后,我向该工作簿验证了我的应用程序,并且能够轻松读取数据。我只有在尝试写作时才会遇到问题。我还没有尝试创建或删除对象,因为我一直在拖延更新。
我正在尝试在我公司的网站上设置一个简单的表单,该表单将在保存时访问 API 并更新数据,但我找不到解决此错误的方法。
任何帮助将不胜感激。星期五我开始遇到麻烦,感觉我现在只是在转圈。我找到了一个 QuickBooks / PHP 库,并尝试通过它查看是否可以找到有用的信息,但它对于我来说有点太大而无法找到我正在寻找的内容,因为我认为错误只是一些不正确的 XML。
我已按照更新参考中的所有指示进行操作,但无法取得进展。我已经两次和三次检查我的身份验证是否有效、URL 是否正确、我发送的是 POST 而不是 GET 以及我的 XML 是否与该示例中显示的 XML 匹配。
更新 2012-03-15
似乎问题在于 API 无法更新通过 QuickBooks 创建的项目。每个项目都有一个 id 和一个 idDomain,这表明它是通过 API (NG) 还是 Quickbooks (QB) 制作的。示例 id/idDomain 将是 1/QB 或 2556587/NG。
每当我这样做时,我都能够完美地更新通过 API 制作的项目,但不能完美地更新通过 Quickbooks 制作的项目。在查看Supported Object Reference之后,我注意到项目程序集更新/创建被列为 beta。