2013-10-17 12 views

Antwort

18

Der Web Connector ist eigentlich nur ein Proxy oder ein Relay, der zwischen QuickBooks und Ihrer eigenen Anwendung liegt.

Als Überblick - im Grunde erstellen Sie einen SOAP-Server/Web-Service, der eine bestimmte Reihe von Methoden spricht. Der Web Connector wird dann auf dem Rechner installiert Quickbooks läuft, und Umfragen Ihres Web-Service „Hey, sich was für mich zu tun?“ Ihr Web-Service mit qbXML Anfragen kann dann reagieren zu fragen (examples of qbXML here), die dem Web Connector sagen „Diesen Kunden : ... "oder" Senden Sie mir Rechnungen, die übereinstimmen: ... "oder usw. usw. usw. Der Web Connector leitet diese Anfragen an QuickBooks weiter, QuickBooks verarbeitet sie und die Antwort wird an Ihren Web-Service weitergeleitet. Ihr Webdienst verarbeitet dann möglicherweise die Antwort und sendet dann die nächste Anforderung an den Web Connector.

Es gibt eine größere overview of the Web Connector here oder, wenn Sie die QuickBooks SDK herunterladen, hat es eine 100+ Seite PDF, die darüber im Detail geht.

Sie wollen wahrscheinlich auch bei diesem Beispiel sehen, nachdem die Quickbooks SDK installieren:

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

Das ist ein vollständiges Arbeitsbeispiel einer Web Connector SOAP-Implementierung.

An es grundlegendsten Form ist, sieht es so etwas wie diese:

[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 ... 
    } 

Dieses Beispiel auch ein Beispiel .QWC-Datei enthält. Here's some .QWC file documentation und hier ist ein grundlegendes Beispiel:

<?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> 
+0

Vielen Dank für Ihre Antwort. Jetzt habe ich die Quickbooks App zu Quickbook Web Connector hinzugefügt. Nun, wie kann ich die Quickbooks Werte zu meiner asp.net-Anwendung bekommen? – Golda

+0

Haben Sie die oben genannten Links oder Dokumente gelesen? Hast du deinen Code gepostet, damit wir sehen können, was du tust? Welche Anfrage senden Sie an QuickBooks? Wie lautet die Antwort, die Sie erhalten? Was sagt das Protokoll vom Web Connector? –

+0

Ja, ich habe das Dokument gelesen und die .qwc-Datei erstellt und den Web-Service von https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0250_qb/0050_documentation/sample_code heruntergeladen. Im Web Connector hinzugefügt eine Anwendung mit Hinzufügen einer Anwendung und aktualisieren Sie die ausgewählten. Trotzdem ist alles in Ordnung. Was soll ich dann tun? – Golda