簡體   English   中英

將ASP.NET應用程序與QuickBooks桌面版集成

[英]integration asp.net application with quickbooks desktop edition

我有一個asp.net應用程序,我想將其連接到quickbooks桌面版,在Web應用程序中,我要執行以下操作:1-從quickbooks獲取客戶列表。 2-創建新發票並將其保存發送到快速簿。

這是我從示例代碼中發現的,但我想在(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();
            }
        }

}

您使用COM的方法可能行不通。

QuickBooks SDK / 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 Connector:

QuickBooks Web Connector的全部目的是實現與您正在執行的集成一樣的集成。

這是QuickBooks Web Connector的良好概述。 它基本上是QuickBooks本機理解的圍繞qbXML模式的簡單SOAP包裝器。

如果您下載QuickBooks SDK,則此文件夾中包含一些示例代碼:C:\\ Program Files(x86)\\ Intuit \\ IDN \\ QBSDK12.0 \\ samples \\ qbdt

那里有用於Web連接器的.NET示例代碼,這應該會有所幫助。

我找到了此網頁: QuickBooks Integration(瘋狂計算機科學家)

表示您可以使用任何東西:

打開連接時,需要指定應用程序標識ID和名稱。 這將在QuickBooks中顯示給用戶以允許/禁止訪問。 這些是字符串,據我所知,不運行任何檢查,從而允許用戶在此放置他們喜歡的任何東西。

“顯示給用戶”位表示,如果在ASP.NET服務器上使用此對話框,則可能需要使用AutoIt或類似的方法來關閉對話框!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM