更新时出现QuickBooks API错误


QuickBooks API error when updating

我正在尝试使用QuickBooks API将我公司的产品列表与工作簿的项目列表同步。我已经通过了OAuth系统,能够对API进行读/写请求,但在尝试更新对象时总是会出现错误。

我一直在使用的引用在这里,在同一文档中是检索一个我可以很好地使用的对象的引用。这是我正在发送的XML。我已经对XML进行了几个小时的调整,但没有效果。

我得到的错误消息是"QB项目名称已存在ERI=420962115"。ERI是我的领域ID。当我试图修改现有项目时,QuickBooks似乎认为我正在尝试添加新项目。如果我省略了name字段或将其保留为null,那么它也会给我一个错误。

我试图修改的项目是在QuickBook中创建的,然后通过QuickBook的同步管理器进行同步。然后,我通过该工作簿验证了我的应用程序,并能够轻松读取数据。我只有在尝试写作时才会遇到问题。我还没有尝试创建或删除一个对象,因为我一直在拖延更新。

我试图在我公司的网站上建立一个简单的表单,在保存时访问API并更新数据,但我找不到解决这个错误的方法。

如有任何帮助,我们将不胜感激。星期五我开始有麻烦了,现在我觉得自己只是在兜圈子。我找到了一个QuickBooks/PHP库,并试着浏览它,看看是否能找到有用的信息,但它太大了,我找不到我要找的东西,因为我认为错误只是一些不正确的XML。

我已经遵循了更新参考中的所有指示,只是无法取得进展。我已经反复检查了我的身份验证是否有效,URL是否正确,我发送的是POST而不是GET,以及我的XML是否与该示例中显示的XML匹配。

更新2012-03-15

问题似乎是API无法更新通过QuickBooks创建的项。Ever项目有一个id和一个idDomain,这表明它是通过API(NG)还是Quickbooks(QB)制作的。示例id/idDomain将是1/QB或2556587/NG。

每当我这样做的时候,我就能够完美地更新一个通过API制作的项目,但不是一个通过Quickbooks制作的项目。在查看了支持的对象引用之后,我注意到项目程序集更新/创建被列为测试版。

我在更新中所写的内容似乎是正确的。我无法通过API更新在快速本中制作的项目。我可以阅读在quickbooks中制作的项目,我可以创建项目,我也可以编辑通过API制作的项目。但通过API编辑在quickbook中制作的项会返回此错误。

几件事:

  • 你要发布到哪个URL
  • 你能显示你得到的完整HTTP响应吗?IDS有一个坏返回有时不明确的错误消息/代码的习惯如果您不查看完整的XML响应
  • 其中一些字段是不可更新的:QtyOnPurchaseOrder,销售订单数量
  • 您知道您只能对您正在使用的应用程序使用IDS/Sync Manager将转售给其他公司,对吧?即你不能用它内部/一次性应用程序
  • 如果你发布这些问题,你会得到更好的支持到Intuit的开发者论坛:https://idnforums.intuit.com/

您可以考虑迁移到QBO V3,这样做更好、更容易。为此,有一个非常好的api。你可以在这里买到。https://github.com/consolibyte/quickbooks-php(制作:Keith Palmer)

我正在使用这个,并且对此非常满意。