好的。这个问题已经被问过很多次并得到了回答。然而,Intuit 似乎改变了他们的部分:
- 他们自己的最新文档不再正确
- 到目前为止我在互联网上找到的所有答案都不再有效
因此,唯一的选择就是再次提出同样的问题。
我正在用 C# 构建一个控制台应用程序,它需要将数据(发票、客户等)在线导入 QB。它是一个内部集成应用程序,仅供一家公司使用。我绝对不想走 SaaS 路线。
从各方面来看,我似乎应该使用 QuickBooks QBXML SDK v12 并且应该在“www.appreg.intuit.com”的 QBOE 中注册该应用程序。但是,该地址已不存在并且注册程序已更改。 QBOE目前支持三种类型的应用:
- QuickBooks API - SaaS
- 客户帐户数据 API
- 支付 (QBMS) 应用
考虑到我需要的功能(创建发票等),我可能应该创建一个“QuickBooks API”应用程序。但是,这是一个 SaaS 应用程序,我无法使用。 “客户帐户数据 API”绝对不是我需要的。 剩下的唯一选择是“支付(QBMS)应用程序”,这似乎也不是正确的选择。然而,这是三种应用程序类型中唯一一种既可以托管也可以桌面,并且在使用传统SDK时具有互联网上各种集成文章中描述的“AppID”和“AppLogin”属性的应用程序。
因此,我创建了一个“支付 (QBMS) 应用程序”(桌面版、生产版),遵循文档和文章,进行了所有必需的设置并使用传统的 SDK COM 对象连接到 QuickBooks。
在第一次连接尝试期间,我在我的 QBOE 帐户中批准了该应用程序并设置了连接 token 。授予连接的所有权限,无需用户身份验证。
最后我得到的是 QBSessionManager.BeginSession
方法抛出的以下无信息异常:
System.Runtime.InteropServices.COMException (0x80040403): Problem communicating with QuickBooks Online Edition
如果我打开登录安全,会出现一个对话框,提示我登录并粘贴票证。打开登录URL后 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?我应该怎么做才能实现这一点?
最佳答案
转到此处创建 QBOE 应用程序 - http://developer.intuit.com/Application/Create/QBOE .
关于quickbooks - 如何从桌面应用程序在线连接到 QuickBooks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064679/