2

我正在尝试使用 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。

4

3 回答 3

1

看来我在更新中写的是正确的。我无法通过 API 更新在快速手册中制作的项目。我可以阅读在 quickbooks 中制作的项目,我可以创建项目并可以编辑通过 API 制作的项目,但是通过 API 编辑在 quickbooks 中制作的项目会返回此错误。

于 2012-03-20T16:21:08.017 回答
0

一些东西:

  • 您要发布到哪个 URL?
  • 你能显示你得到的完整的 HTTP 响应吗?IDS 有返回错误消息/代码的坏习惯,如果您不查看完整的 XML 响应,这些消息/代码有时会模棱两可。
  • 其中一些字段不可更新:QtyOnPurchaseOrder、QtyOnSalesOrder
  • 您知道您只能将 IDS/Sync Manager 用于要转售给其他公司的应用程序,对吗?即您不能将其用于内部/一次性应用程序。
  • 如果您将这些问题发布到 Intuit 的开发者论坛,您将获得更好的支持:https ://idnforums.intuit.com/
于 2012-03-14T18:48:11.280 回答
0

您可以考虑迁移到 QBO V3,它更好且易于使用。为此目的制作了一个非常好的api。你可以到这里。 https://github.com/consolibyte/quickbooks-php(制作者:Keith Palmer)

我正在使用它并且对它非常满意。

于 2014-01-01T14:38:50.383 回答