0

QuickBooks 2010プロエディションを持っています。タイトルが示すように、製品と請求書をQuickbooksにインポートする必要があります。

いくつかの背景...

私たちは製品をオンラインで販売するオンライン会社です。私のクライアントはすべての製品をQuickBooksにインポートし、すべてのオンライン販売もQuickBooksにインポートしたいと考えています。私たちのWebサイトは、SQLServerをサポートするASP.NETを使用して構築されています。

私はQuickBooksを初めて使用するので、ここから何をすべきかわかりません...

IIF import&SDKについて聞いたことがありますが、残念ながら、それらに関する貴重なドキュメントを見つけることができませんでした。誰かが私を正しい方向に向けてくれますか(おそらくいくつかのサンプルコード)?QuickBooksWebサイトのSDKURLを教えてください。

ありがとう

4

1 に答える 1

6

QuickBooks SDKを見る気がない場合は、自分自身に大きな不利益をもたらしています。

実行しようとしていることを実装する最も簡単な方法は、SDKとWebコネクタを使用することです。ウィキには、QuickBooksWebConnectorの基本的な概要があります。これは特に、オンラインWebサイトからQuickBooks for Windowsにデータを移動することを目的としています(あなたがやろうとしているのと同じように)。基本的な考え方は、Webサイトをポーリングして、実行することを要求し、XML要求をフィードして、実行すること(顧客の追加、請求書の追加など)を行うことができるということです。

基本的なプロトコルは次のようになります。

//WebコネクタはSOAPサービスにWebコネクタの認証を要求します=>SOAPサーバー:ユーザー名「xyz」とパスワード「bla」で認証(認証)認証が成功すると、SOAPサーバーはチケット値を返し、プロセスは続行されます

//Webコネクタは何かをするように要求しますWebコネクタ=>SOAPサーバー:ちょっとSOAPサーバー、あなたは私に何をする必要がありますか?(sendRequestXML)SOAPサーバーはqbXML要求を生成して返します

// Web Connectorはその要求をQuickBooksに中継し、QuickBooks Web Connector => QuickBooksから応答を受信します:ちょっとQuickBooks、SOAPサーバーがこの要求をくれました。処理していただけますか?QuickBooksはリクエストを処理し、Webコネクタにレスポンスを返します

// WebコネクタはQuickBooksからの応答をSOAPサーバーに中継しますWebコネクタ=>SOAPサーバー:やあSOAPサーバー、これがQuickBooksからの最後のリクエストに対する応答です(receiveResponseXML)SOAPサーバーは応答を処理し、エラーを処理して何でもします応答SOAPサーバーは完了したパーセンテージを返します。100%未満の場合、このプロセスは続行されます...

//プロセスが最初からやり直し、WebコネクタがSOAPサーバーに次の要求を要求します...Webコネクタ=>SOAPサーバー:SOAPサーバーねえ、他に何をする必要がありますか?(sendRequestXML)SOAPサーバーはqbXML要求を生成して返します

...などなど..。

QuickBooks SDKをダウンロードすると(申し訳ありませんが!)、要求したものがいくつか含まれていることがわかります。具体的には、このディレクトリにドロップするサンプルコードがあります。

C:\Program Files (x86)\Intuit\IDN\QBSDK12.0\samples\qbdt\c-sharp\qbXML\WCWebService

これは、そのサンプルコードの内容をクリーンアップして削除したバージョンです。

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.IO;
using System.Security.Cryptography;
using Microsoft.Win32;
using System.Xml;
using System.Text.RegularExpressions;

namespace WCWebService
{
    /// <summary>
    /// Web Service Namespace="http://developer.intuit.com/"
    /// Web Service Name="WCWebService"
    /// Web Service Description="Sample WebService in ASP.NET to 
    /// demonstrate QuickBooks WebConnector"
    /// </summary>
    [WebService(
         Namespace="http://developer.intuit.com/",
         Name="WCWebService",
         Description="Sample WebService in ASP.NET to demonstrate " + 
                "QuickBooks WebConnector")]

    // Important Note:  
    // You should keep the namespace as http://developer.intuit.com/ for all web 
    // services that communicates with QuickBooks Web Connector. 


    public class WCWebService : System.Web.Services.WebService
    {
        ...

        #region WebMethods
        [WebMethod]
        /// <summary>
        /// WebMethod - authenticate()
        /// To verify username and password for the web connector that is trying to connect
        /// Signature: public string[] authenticate(string strUserName, string strPassword)
        /// 
        /// IN: 
        /// string strUserName 
        /// string strPassword
        ///
        /// OUT: 
        /// string[] authReturn
        /// Possible values: 
        /// string[0] = ticket
        /// string[1]
        /// - empty string = use current company file
        /// - "none" = no further request/no further action required
        /// - "nvu" = not valid user
        /// - any other string value = use this company file
        /// </summary>
        public string[] authenticate(string strUserName, string strPassword)
        {
            string[] authReturn = new string[2];

            // Code below uses a random GUID to use as session ticket
            // An example of a GUID is {85B41BEE-5CD9-427a-A61B-83964F1EB426}
            authReturn[0]= System.Guid.NewGuid().ToString();

            // For simplicity of sample, a hardcoded username/password is used.
            // In real world, you should handle authentication in using a standard way. 
            // For example, you could validate the username/password against an LDAP 
            // or a directory server
            string pwd="password";

            if (strUserName.Trim().Equals("username") && strPassword.Trim().Equals(pwd))
            {
                // An empty string for authReturn[1] means asking QBWebConnector 
                // to connect to the company file that is currently openned in QB
                authReturn[1]="";
            }
            else
            {
                authReturn[1]="nvu";
            }

            // You could also return "none" to indicate there is no work to do
            // or a company filename in the format C:\full\path\to\company.qbw
            // based on your program logic and requirements.
            return authReturn;
        }

        [ WebMethod(Description="This web method facilitates web service to send request XML to QuickBooks via QBWebConnector",EnableSession=true) ]
        /// <summary>
        /// WebMethod - sendRequestXML()
        /// Signature: public string sendRequestXML(string ticket, string strHCPResponse, string strCompanyFileName, 
        /// string Country, int qbXMLMajorVers, int qbXMLMinorVers)
        /// 
        /// IN: 
        /// int qbXMLMajorVers
        /// int qbXMLMinorVers
        /// string ticket
        /// string strHCPResponse 
        /// string strCompanyFileName 
        /// string Country
        /// int qbXMLMajorVers
        /// int qbXMLMinorVers
        ///
        /// OUT:
        /// string request
        /// Possible values: 
        /// - “any_string” = Request XML for QBWebConnector to process
        /// - "" = No more request XML 
        /// </summary>
        public string sendRequestXML(string ticket, string strHCPResponse, string strCompanyFileName, 
            string qbXMLCountry, int qbXMLMajorVers, int qbXMLMinorVers)
        {
            ... build some qbXML request here and return it ...

            return request;
        }



        [ WebMethod(Description="This web method facilitates web service to receive response XML from QuickBooks via QBWebConnector",EnableSession=true) ]
        /// <summary>
        /// WebMethod - receiveResponseXML()
        /// Signature: public int receiveResponseXML(string ticket, string response, string hresult, string message)
        /// 
        /// IN: 
        /// string ticket
        /// string response
        /// string hresult
        /// string message
        ///
        /// OUT: 
        /// int retVal
        /// Greater than zero  = There are more request to send
        /// 100 = Done. no more request to send
        /// Less than zero  = Custom Error codes
        /// </summary>
        public int receiveResponseXML(string ticket, string response, string hresult, string message)
        {
            ... process the response from QuickBooks here, and return an integer ... 

            return retVal;
        }
        #endregion

    } // class: WCWebService
} // namespace: WCWebService

QuickBooks SDKには、実装の詳細を説明した98ページのWebコネクタドキュメントPDFと、役立つ可能性のある600ページの一般的なQuickBooksSDKドキュメントも含まれています。

于 2013-03-12T11:16:44.187 に答える