4

我无法从 Web 连接器启动 QuickBooks。我正在传递有效的文件路径,根据文档,一切看起来都是正确的。

  • QBWC 版本为 2.1.0.3.0
  • QB Ver 是 Premier Contractor Edition 2010

如果我已经打开 QuickBooks,则 Web 连接器运行良好。如果它没有打开,我会收到 QBWC1013 错误...

日志的相关部分:

20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: FOO
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): FOO
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://www.foo.com/server.php
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="PHP QuickBooks SOAP Server v1.5.3 at /server.php">
20130312.14:14:56 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.30">
20130312.14:14:57 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20130312.14:14:57 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20130312.14:14:57 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'FOO', username = 'foo'
20130312.14:14:57 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="foo"><password=<MaskedForSecurity>
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.updateWS() : Received from authenticate() following parameters:<authRet[0]="91f62aac622b49ad483f20ef9d7729a3"><authRet[1]=""\\FOOSERVER\Users\Public\Documents\Intuit\QuickBooks\Company Files\Some Company File Inc..QBW""><authRet[2]=""><authRet[3]="">
20130312.14:14:58 UTC   : QBWebConnector.RegistryManager.setCurrentWebServiceName() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceName has been set to FOO
20130312.14:14:58 UTC   : QBWebConnector.RegistryManager.setCurrentWebServiceSessionTicket() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceSessionTicket has been set to 91f62aac622b49ad483f20ef9d7729a3
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.CheckCFNResponse() : User authenticated.
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : Done.
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.OpenConnection() : Connecting to QuickBooks...
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.handleAllOtherError() : QBWC1013: Error connecting to QuickBooks. Returning error message to application.
Could not start QuickBooks.
20130312.14:14:58 UTC   : QBWebConnector.SOAPWebService.do_connectionError() : *** Calling connectionError() with following parameters:<wcTicket="91f62aac622b49ad483f20ef9d7729a3"><hresult="0x80040408"><message="Could not start QuickBooks.">
20130312.14:14:59 UTC   : QBWebConnector.SOAPWebService.do_connectionError() : Received from connectionError() following parameters:<tryAgain="done">
20130312.14:14:59 UTC   : QBWebConnector.SOAPWebService.OpenConnection() : Error connecting to QuickBooks. Application sent back DONE. Job ending.
20130312.14:14:59 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20130312.14:14:59 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20130312.14:14:59 UTC   : QBWebConnector.WebServiceManager.DoUpdateSelected() : Update completed with errors. See log (QWClog.txt) for details.
4

3 回答 3

5

I'm going to assume that your QWC file is with the correct format.

If may looks something like this

<QBWCXML>
  <AppName>Example WS</AppName>
  <AppID></AppID>
  <AppURL>https://localhost/Quickbooks.asmx</AppURL>
  <AppDescription>Example Service Service</AppDescription>
  <AppSupport>https://localhost/</AppSupport>
  <UserName>Etile</UserName>
  <OwnerID>{XXXXB9B1-86F1-4fcc-B1EE-566DE1813D20}</OwnerID>
  <FileID>{XXXX4FB5-33D9-4815-AC85-BC87A7E7D1EB}</FileID>
  <QBType>QBFS</QBType>
  <Scheduler>
    <RunEveryNMinutes>1</RunEveryNMinutes>
  </Scheduler>
</QBWCXML>

When you add the application to QuickBooks's Web Connector, you will be prompted to allow the application access to QuickBooks data. You need to select the last option "Yes, always; allow access even if QuickBooks is not running"

enter image description here

And don't forget to return the full path to the company file from your Web Service's authenticate() method.

A Sample SOAP Response would be:

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://developer.intuit.com/">
  <SOAP-ENV:Body>
    <ns1:authenticateResponse>
      <ns1:authenticateResult>
        <ns1:string>1e3ea2ed-a734-03e4-ed8c-80eb12f19845</ns1:string>
        <ns1:string>C:\Quickbooks Company File.QBW</ns1:string>
      </ns1:authenticateResult>
    </ns1:authenticateResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Note that if you are using quickbooks-php, the file must be added manually for some reason. The Web Connector documentation and the new QuickBooks integration wiki both lack clarity on this detail.

于 2013-04-04T21:39:46.480 回答
2

我在这件事上撞到了墙上,但在与 Intuit 通了 4 个小时的电话后,最终让 2 级开发团队参与其中,他们让我了解了这个模糊不清的错误的更多细节。当您收到此错误时,问题不在于它无法启动快速手册,而是您从服务器请求的请求试图错误地打开文件。会导致这种情况的事情。文件名错误,文件路径错误。您的请求格式不正确。
在我的情况下,我们的文件名是正确的,但是我的服务器应该提取文件的路径,您可以在 hkey_current_user\software\intuit\qbwebconnector\soapwebservices\ 的注册表中确认该文件的路径,查找 companyfile,您会看到名称和完整路径。

希望这可以帮助某人处理这个模糊的错误。

于 2021-07-30T16:14:24.850 回答
0

由于日志数据显示 -> 用户已通过身份验证,这意味着 .qwc 文件格式正确。身份验证后,Web 连接器向 QuickBook 发出连接请求,这在您的情况下失败。

通过网络连接器连接到 QuickBooks 桌面的步骤是:

  1. 在管理员模式下运行 Web 服务和 QuickBook 桌面应用程序
  2. Web 服务名称和 QuickBook 公司名称应相同
  3. 在多用户模式下运行 QuickBook 桌面,以便您也可以通过 Web 连接器连接 QuickBook。
  4. 在 Web 服务代码中,如果用户是真实的,则使 authReturn[1]="" // 连接到当前在 QuickBooks 中打开的公司文件

它对我有用。祝你一切安好。

于 2020-02-24T14:26:04.173 回答