gpt4 book ai didi

quickbooks - 如何为 QuickBooks Web 连接器创建 .qwc 文件?

转载 作者:行者123 更新时间:2023-12-04 03:01:09 24 4
gpt4 key购买 nike

我正在将 QuickBooks(桌面版)与 ASP.NET 应用程序集成。为此,我正在使用 QuickBooks Web 连接器。如何为我的自定义 Web 服务创建 .qwc 文件?

最佳答案

Web 连接器实际上只是位于 QuickBooks 和您自己的应用程序之间的代理或中继。

作为概述 - 基本上,您构建了一个 SOAP 服务器/Web 服务,它使用一组特定的方法。然后,Web 连接器安装在运行 QuickBooks 的机器上,并轮询您的 Web 服务,询问“嘿,有什么要我做的吗?”然后,您的 Web 服务可以使用 qbXML 请求 (examples of qbXML here) 进行响应,该请求告诉 Web 连接器“添加此客户:...”或“向我发送匹配的发票:...”等。然后 Web 连接器中继这些请求到 QuickBooks,QuickBooks 处理它们,并将响应转发回您的 Web 服务。然后,您的 Web 服务可能会以某种方式处理响应,然后将下一个请求发送到 Web 连接器。

还有一个更大的overview of the Web Connector here或者,如果您下载 QuickBooks SDK它有一个 100 多页的 PDF 详细介绍了这一点。

您可能还想在安装 QuickBooks SDK 后查看此示例:

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

  • 这是 Web 连接器 SOAP 实现的完整工作示例。

    在它的最基本形式中,它看起来像这样:
        [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];

    // Generate a random session ticket
    authReturn[0]= System.Guid.NewGuid().ToString();

    // For simplicity of sample, a hardcoded username/password is used.
    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";
    }

    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)
    {
    // QuickBooks has asked for your next request

    ... return a qbXML request here ...
    }

    [ 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)
    {
    // QuickBooks has sent you a qbXML response to your request

    ... do something with 'response' here ...
    }

    该示例还包括一个示例 .QWC 文件。 Here's some .QWC file documentation这是一个基本的例子:
    <?xml version="1.0"?>
    <QBWCXML>
    <AppName>QuickBooks Integrator</AppName>
    <AppID></AppID>
    <AppURL>https://secure.domain.com/quickbooks/server.php</AppURL>
    <AppDescription></AppDescription>
    <AppSupport>http://www.domain.com/quickbooks/support.php</AppSupport>
    <UserName>username</UserName>
    <OwnerID>{90A44FB7-33D9-4815-AC85-AC86A7E7D1EB}</OwnerID>
    <FileID>{57F3B9B6-86F1-4FCC-B1FF-967DE1813D20}</FileID>
    <QBType>QBFS</QBType>
    <Scheduler>
    <RunEveryNMinutes>2</RunEveryNMinutes>
    </Scheduler>
    <IsReadOnly>false</IsReadOnly>
    </QBWCXML>

    关于quickbooks - 如何为 QuickBooks Web 连接器创建 .qwc 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19420766/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com