将asp.net应用程序与quickbooks桌面版集成

本文关键字:桌面 集成 quickbooks asp net 应用程序 | 更新日期: 2023-09-27 17:58:19

我有一个asp.net应用程序,我想将它连接到quickbooks桌面版,我想在web应用程序中执行以下操作:1-从快捷本中获取客户列表。2-创建新发票并保存并将其发送到quickbooks。

这是我在示例代码中发现的,但我想知道我必须在(sessionManager.BeginSession(",ENOpenMode.omDontCare);)中的AppId参数中设置的值。

private void getCustomers()
{
bool sessionBegun = false;
        bool connectionOpen = false;
        QBSessionManager sessionManager = null;
        try
        {
            //Create the session Manager object
            sessionManager = new QBSessionManager();
            //Create the message set request object to hold our request
            IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8,      0);
            requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;
            //Connect to QuickBooks and begin a session
            sessionManager.OpenConnection(@"D:'A to Z Wholesale Inc.QBW", "QuickBooks Integration Demo");
            connectionOpen = true;
            sessionManager.BeginSession("", ENOpenMode.omDontCare);
            sessionBegun = true;
            ICustomerAdd customerAddRq = requestMsgSet.AppendCustomerAddRq();
            customerAddRq.Name.SetValue("Amer");
            ICustomerQuery customer = requestMsgSet.AppendCustomerQueryRq();
            //Send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
            IResponse response = responseMsgSet.ResponseList.GetAt(0);
            ICustomerRet customerRet = (ICustomerRet)response.Detail;
        }
        catch (Exception ex)
        {
        }
        finally
        {
            //End the session and close the connection to QuickBooks
            if (sessionBegun)
            {
                sessionManager.EndSession();
            }
            if (connectionOpen)
            {
                sessionManager.CloseConnection();
            }
        }

}

将asp.net应用程序与quickbooks桌面版集成

使用COM的方法可能不起作用。

QuickBooks SDK/neneneba API有点愚蠢,因为它使用Windows COM GUI消息泵来完成与QuickBooks实际通信的肮脏工作。这意味着必须存在Windows GUI,才能与QuickBooks进行数据交换。

这对你来说将是一个问题,因为你正在构建一个web应用程序。。。它将在IIS内部运行,因此不会有可用的Windows GUI会话。

如果您正在构建SaaS应用程序,目标是允许多个其他人将他们的QuickBooks文件连接到您的web应用程序:

考虑查看Intuit合作伙伴平台/Intuit Anywhere。请注意,这仅适用于SaaS类型的应用程序。基本想法是,人们将他们的QuickBooks数据文件同步到Intuit的云,然后你可以使用REST web服务来交换数据。

Intuit甚至有一些有用的DevKit,它们提供了一些示例代码和对象/方法来进行数据交换。

否则,如果您不使用Intuit Anywhere路由,请查看QuickBooks Web连接器:

QuickBooks Web连接器的全部目的是实现像您正在进行的集成一样的集成。

以下是QuickBooks Web连接器的一个很好的概述。它基本上是围绕QuickBooks本机理解的qbXML模式的简单SOAP包装器。

如果您下载QuickBooks SDK,则此文件夹中有一些示例代码:C: ''Program Files(x86)''IIntuit''IIDN''QBSDK12.0''samples''qbdt

有。NET的Web连接器示例代码,这应该很有帮助。

我建议你看看下面@Keith Palmer Jr.的答案,这个答案比这个更有帮助。我无法删除这个,因为它已被接受

原始答案:

我发现了这个网页:QuickBooks Integration(疯狂的计算机科学家)

它说你可以使用任何东西:

打开连接时,需要指定应用程序标识ID和名称。这将在QuickBooks中显示给用户,以允许/禁止访问。这些都是字符串,据我所知,没有运行任何检查,允许用户将他们想要的任何东西放在这里

";向用户显示";位表示,如果您在ASP上使用AutoIt或类似功能,则可能需要使用AutoIt来关闭对话框。NET服务器!