Quickbooks在线集成c#

时间:2014-11-23 04:32:57

标签: c# quickbooks quickbooks-online

我的公司使用QuickBooks Online,我想编写一些c#脚本,可以从QuickBooks Online订阅中检索客户列表和发票列表等基本信息。

我还想提交发票和付款。

我创建了一个QuickBooks IPP帐户(在developer.intuit.com上)。

我能够验证自己(OAuth)就好了。我的问题是:

1)每次我希望连接到QBO IPP(检索客户列表,提交发票等)时,是否需要对自己进行身份验证?或者我的应用程序可以自我验证一次&几个月保持“联系”?

2)是否有任何示例代码可以执行基本操作,例如获取客户列表,提交发票等等?我从this link

下载了示例MVC应用程序

这非常有用 - 但是当我尝试让一些代码工作时,我只是得到错误 - 这引出了我的第一个问题 - 我可以验证自己的ONCE并使用那些令牌(appToken和appTokenSecret)很多时候,为了执行简单的任务(获取客户名单),或者我每次都必须对自己进行身份验证?

谢谢。

2 个答案:

答案 0 :(得分:11)

重新 - 1)每次我希望连接到QBO IPP(检索客户列表,提交发票等)时,是否需要对自己进行身份验证?或者我的应用程序可以自我验证一次&几个月保持“联系”?

请查看以下步骤以获取OAuth令牌,您可以使用该令牌针对您的QBO帐户进行API调用。如果您在appcenter中创建应用程序,您将获得consumerKey和consumerSecret。 https://developer.intuit.com/Application/Create/IA

使用上述两个令牌,您可以从OAuthPlayground生成accessToken和accessSecret。 https://appcenter.intuit.com/Playground/OAuth/IA PN - 完成C2QB(OAuth)流程后,您应该使用“App Menu API Test”。选项,它将显示accessToken和accessSecret。

这些令牌有效期为180天(最高)。当这些令牌超过150天(并且<180天)时,您可以进行重新连接API调用以再次重新验证这些令牌。 参考https://developer.intuit.com/docs/0050_quickbooks_api/0020_authentication_and_authorization/oauth_management_api#Reconnect

因此,您可以始终保留这些令牌并重复使用它。

要让最终用户将他们的QB数据与您的SaaS应用程序连接,您需要实现一个名为“连接到Quickbook”的向导。使用3-legged Oauth,您的应用程序将能够捕获与最终用户的qbo帐户对应的acessToken和acessSecret。 参考 - https://developer.intuit.com/docs/0100_accounting/0060_authentication_and_authorization/connect_from_within_your_app#7._Add_the_Connect_to_QuickBooks_button

重新 - 2)是否有任何示例代码可以执行基本操作,例如获取客户列表,提交发票等等?

请参阅 - https://developer.intuit.com/docs/0100_accounting/0500_developer_kits/0150_ipp_.net_devkit_3.0/0002_synchronous_calls#/Data_Services_API

how to add invoice or sales receipt quickbooks rest api v3.0

希望这会有用。

由于

答案 1 :(得分:0)

这是使用 c# 获取 Quickbooks 数据的示例代码。 您可以使用 OAuth play ground(https://developer.intuit.com/app/developer/playground) 来获取访问令牌、领域 ID。 基本网址是 https://sandbox-quickbooks.api.intuit.com/v3/company/realmId/query?minorversion={{minorversion}}。 在这里,我使用 55 作为次要版本。

using Intuit.Ipp.Core;
using Intuit.Ipp.Data;
using Intuit.Ipp.QueryFilter;
using Intuit.Ipp.Security;
using System;
using System.Collections.Generic;
using System.Linq;

namespace InvoiceTable
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //List<Invoice> InvoiceList = new List<Invoice>();
                OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(Access_Token);
                ServiceContext serviceContext = new ServiceContext(realm Id, IntuitServicesType.QBO, oauthValidator);
                serviceContext.IppConfiguration.MinorVersion.Qbo = "minorversion"; 
                serviceContext.IppConfiguration.BaseUrl.Qbo = Base URL;
                var querySvc = new QueryService<Invoice>(serviceContext);
                var InvoiceList = querySvc.ExecuteIdsQuery("Select Balance From Invoice").ToList();


            }
            catch (Exception ex)
            {

                throw;
            }
        }
    }
}

IppDotNetSdkForQuickBooksApiV3 版本 10.0.0 是您必须安装的包。