【问题标题】:Quickbooks Online integration c#Quickbooks 在线集成 c#
【发布时间】:2014-11-23 04:32:56
【问题描述】:

我的公司使用 QuickBooks Online,我想编写一些 c# 脚本来检索非常基本的信息,例如来自 QuickBooks Online 订阅的客户列表和发票列表。

我还想提交发票和付款。

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

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

1) 每次我想连接到 QBO IPP(检索客户列表、提交发票等)时,我是否需要验证自己?或者我的应用可以进行一次身份验证并在几个月内保持“连接”状态吗?

2) 是否有任何示例代码可以做一些基本的事情,例如获取客户列表、提交发票等?我从 this link 下载了示例 MVC 应用程序

这很有帮助 - 但是当我尝试让一些代码工作时,我只是得到错误 - 这导致我的第一个问题 - 我可以验证自己一次并使用这些令牌(appToken 和 appTokenSecret)多次执行简单任务(获取客户列表),还是每次都必须验证自己?

谢谢。

【问题讨论】:

    标签: c# quickbooks quickbooks-online


    【解决方案1】:

    Re - 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) 流程后,您应该使用“应用程序菜单 API 测试”。选项将显示 accessToken 和 accessSecret。

    这些令牌的有效期为 180 天(最长)。当这些令牌超过 150 天(和 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

    Re - 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

    希望这会有用。

    谢谢

    【讨论】:

    • 非常感谢!我将尝试所有这些链接/建议。值得庆幸的是,这些链接有效 - 我对在 Intuit 的开发人员网站上遇到的所有 404 错误感到沮丧(我注意到 qb_api 链接是 0025_quickbooks_api,它一定是较旧的链接 hmph)。
    • 不客气。是的,UI 和 devsite 进行了相当大的改进。请从根级链接导航。 (docs.developer.intuit.com)。谢谢
    • 我快到了。当我尝试获取客户列表时,我只收到一个错误请求错误:“类型的故障异常:已生成验证。”我正在使用这行代码: List customers = service.FindAll(customer, startPosition, maxResult).ToList();
    • 已解决。对于所有遇到此线程的人,如果您使用的是沙箱公司,则需要更改您的 web.config 以指定沙箱 BaseURL:sandbox-quickbooks.api.intuit.com" />
    • @briscoea 真的吗??谢谢你,我很高兴我能搜索“Fault Exception of type: VALIDATION”并找到你的评论!
    【解决方案2】:

    这是使用 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 是您必须安装的软件包。

    【讨论】:

      猜你喜欢
      • 2014-05-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多