2013-10-17 14 views

cevap

18

Web Bağlayıcısı gerçekten sadece QuickBooks ve kendi uygulamanız arasında oturan bir proxy veya röle.

Genel bakışta - temel olarak, belirli bir yöntem kümesi olan bir SOAP sunucusu/Web Hizmeti oluşturursunuz. Web Bağlayıcısı daha sonra QuickBooks çalıştıran makineye yüklenir ve web servisinizi “Hey, benim yapmam gereken bir şey var mı?” Diye sorar. Web servisiniz daha sonra Web Bağlayıcısı'na söyleyen qbXML istekleri (examples of qbXML here) ile yanıt verebilir “Bu müşteriyi ekle :… ”Veya“ Bana uyan faturaları gönder:… ”vb. Web Bağlayıcısı daha sonra bu istekleri QuickBooks'a aktarır, QuickBooks bunları işler ve yanıt web servisinize geri gönderilir. Web servisiniz daha sonra cevabı bir şekilde işleyebilir ve ardından bir sonraki isteği Web Bağlayıcısı'na gönderebilir.

Eğer QuickBooks SDK indirirseniz o ayrıntılı olarak üzerinde giden bir 100+ sayfa PDF vardır, yoktur overview of the Web Connector here daha büyük olduğunu ya.

Muhtemelen de QuickBooks SDK yüklendikten sonra bu örneğe bakmak istiyorum:

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

Web Bağlantısı SOAP uygulamasının tam bir çalışma örneğidir. örnek de bir örnek .QWC dosyası içerir Yani

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

: Bu en temel formudur At

, bu şuna benzer. Cevabınız için

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

Teşekkür: Here's some .QWC file documentation ve burada temel bir örnek. Şimdi quickbook uygulamasını Quickbook web konektörüne ekledim. Şimdi asp.net uygulamasına quickbooks değerlerini nasıl alabilirim? – Golda

+0

Yukarıda gönderdiğiniz herhangi bir bağlantıyı veya belgeyi okudunuz mu? Kodunu, yaptıklarını görebilmemiz için gönderdin mi? QuickBooks'a hangi isteği gönderiyorsunuz? Geri döndüğünüz cevap nedir? Web Bağlayıcısı'ndan günlük ne diyor? –

+0

Evet, belgeyi okudum ve .qwc dosyasını oluşturdum ve web servisini https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0250_qb/0050_documentation/sample_code bağlantısından indirdim. Web bağlayıcısında Uygulama ekle düğmesini kullanarak bir uygulama ekledim ve seçili olanı güncelleyin. Hala her şey iyi. Öyleyse ne yapmam gerekiyor? – Golda

İlgili konular