【问题标题】:How to connect to QuickBooks online from a desktop application如何从桌面应用程序在线连接到 QuickBooks
【发布时间】:2013-09-28 07:48:02
【问题描述】:

好的。这个问题已经被问过很多次并得到了回答。然而,Intuit 似乎改变了他们的事情,所以:

  • 他们自己的最新文档不再正确
  • 到目前为止我在 Internet 上找到的所有答案都不再有效

因此,剩下的唯一选择就是再次问同样的问题。

我正在用 C# 构建一个控制台应用程序,需要将数据(发票、客户等)在线导入到 QB。它是一个内部集成应用程序,仅供一家公司使用。我绝对不想走 SaaS 路线。

从各方面来看,我似乎应该 QuickBooks QBXML SDK v12 应该在“www.appreg.intuit.com”的 QBOE 中注册应用程序。但是,这个地址不再存在,注册程序也发生了变化。 QBOE目前支持三种应用:

  • QuickBooks API - SaaS
  • 客户帐户数据 API
  • 支付 (QBMS) 应用程序

考虑到我需要的功能(创建发票等),我可能应该创建一个“QuickBooks API”应用程序。但是,这是一个对我来说无法使用的 SaaS 应用程序。 “客户帐户数据 API”绝对不是我需要的。 剩下的唯一选择是“支付(QBMS)应用程序”,这似乎也不是正确的选择。但是,在使用传统 SDK 时,这是三种应用程序类型中唯一一种既可以托管也可以桌面的应用程序类型,并且具有 Internet 上各种集成文章中描述的“AppID”和“AppLogin”属性。

因此,我创建了一个“支付 (QBMS) 应用”(桌面,生产),遵循文档和文章,完成所有必需的设置,并使用传统的 SDK COM 对象连接到 QuickBooks。

在第一次连接尝试期间,我在我的 QBOE 帐户中批准了该应用程序并设置了连接令牌。无需用户身份验证即可授予连接的所有权限。

最后我得到的只是QBSessionManager.BeginSession 方法抛出的以下无信息异常:

System.Runtime.InteropServices.COMException (0x80040403): Problem communicating with QuickBooks Online Edition

如果我打开登录安全性,则会出现一个对话框,提示我登录并粘贴票证。打开登录网址后 https://login.quickbooks.com/j/qbn/sdkapp/sessionauth2?serviceid=2004&appid=[AppID]

出现以下消息

There is a problem with sharing your financial data between applications.
Error Message: Application [AppLogin] is not designed to work with service 2004

我也尝试直接使用 qbXML,结果出现“400 Bad request”错误。

是否仍然支持通过 SDK 连接到 QBOE?我应该怎么做才能实现?

【问题讨论】:

    标签: quickbooks intuit-partner-platform quickbooks-online qbxml


    【解决方案1】:

    前往此处创建 QBOE 应用程序 - http://developer.intuit.com/Application/Create/QBOE

    【讨论】:

    • 使用新的“Harmony”界面,这被打破了。对人们来说可能不再是一个好方法了,因为再过几个月它就根本行不通了。
    【解决方案2】:

    您应该使用传统的 QBSDK。

    请参考此链接 - https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0250_qb

    谢谢

    【讨论】:

    • 我使用的是传统的 SDK。但是,它似乎不像描述的那样工作。请在回复之前完整阅读我的问题。
    • 我编辑问题以明确说明我正在使用“QuickBooks QBXML SDK v12”。
    • 在帖子的最后,您问“是否仍支持通过 SDK 连接到 QBOE”。我确认它仍然受支持。在 QBSDK 的链接中,有几个重要的页面。您看过示例程序页面吗? developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/… 在你的 qts 中添加 qbsdk 标签。谢谢
    • 我确实遵循了文档和示例。 “BeginSession”方法总是给出模糊的错误“与 QuickBooks Online Edition 通信的问题”。在我看来,问题在于我在 QBOE 中创建的应用程序是“支付(QBMS)应用程序”应用程序。文档声明我应该在以下 URL www.appreg.intuit.com 创建一个应用程序,该 URL 不再存在。而是在developer.intuit.com/Application/List 创建应用程序。支持三种类型的应用程序,并且“QBMS”是唯一类型具有文档中描述的“AppID”和“AppLogin”的类型。
    • 看起来发生了一些变化,并且无法再按照“Intuit QuickBooks SDK - 程序员指南 v12”和各种在线教程中所述在 QBOE 中注册桌面应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2011-11-04
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多