0

我无法获取 QuickBooks Web 连接器。当它运行日志时说

...

20130411.15:29:07 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20130411.15:29:07 UTC   : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="testing version">
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.27">
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'QBServices Raw Soap', username = 'test'
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="test"><password=<MaskedForSecurity>
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.updateWS() : Received from authenticate() following parameters:<authRet[0]=""><authRet[1]="0"><authRet[2]=""><authRet[3]="">
20130411.15:29:08 UTC   : QBWebConnector.RegistryManager.setCurrentWebServiceName() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceName has been set to QBServices Raw Soap
20130411.15:29:08 UTC   : QBWebConnector.RegistryManager.setCurrentWebServiceSessionTicket() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceSessionTicket has been set to 
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.CheckCFNResponse() : User authenticated.
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_authenticate() : Done.
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.OpenConnection() : Connecting to QuickBooks...
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.handleAllOtherError() : QBWC1013: Error connecting to QuickBooks. Returning error message to application.
Could not start QuickBooks.
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_connectionError() : *** Calling connectionError() with following parameters:<wcTicket=""><hresult="0x80040408"><message="Could not start QuickBooks.">
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.do_connectionError() : Received from connectionError() following parameters:<tryAgain="done">
20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.OpenConnection() : Error connecting to QuickBooks. Application sent back DONE. Job ending.
20130411.15:29:08 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20130411.15:29:08 UTC   : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20130411.15:29:08 UTC   : QBWebConnector.WebServiceManager.DoUpdateSelected() : Update completed with errors. See log (QWClog.txt) for details.

当我收到此消息时,QuickBooks 已打开。QuickBooks 中的应用程序允许自动登录。我读到,如果服务未提供文件,则将使用打开的文件,但它不起作用。我也从我的肥皂服务返回了路径,但它仍然没有工作我重新启动并再次尝试但没有工作,我成立了一家新公司来测试意志,但它没有工作。

任何想法都会有所帮助。

4

1 回答 1

4

这是你的问题 - 你返回错误的东西:

20130411.15:29:08 UTC   : QBWebConnector.SOAPWebService.updateWS() : 
Received from authenticate() following parameters:
<authRet[0]="">
<authRet[1]="0">
<authRet[2]="">
<authRet[3]="">

要返回的正确参数集遵循以下格式:

  • authRet[0] = 有效的会话票据(如果登录成功)
  • authRet[1] = QuickBooks 公司文件的路径(例如“C:\path\to\file.QBW”)或字符串“none”(如果无事可做)或字符串“nvu”(如果登录无效)
  • authRet[2] = 这是可选的,您可以发送一个空字符串或一个整数,指示在进行下一次更新之前等待的分钟数
  • authRet[3] = 这是可选的,您可以发送一个空字符串或一个整数,指示 Web 连接器在更新会话之间应允许的最小秒数

这在我们的QuickBooks 集成 wiki上有更详细的记录。

你做了什么来修复它:

我开始在我的 qwc 文件中返回 FileID 作为 authenticate 返回的数组中的第一个元素,现在它似乎可以工作了。

非常不安全 - 这意味着任何发现 FileID(绝对是暴力破解或通过社会工程策略发现)的人都能够连接到您的 SOAP Web 服务并提取潜在的敏感会计信息(信用卡号、客户等)

您应该修复您的服务以返回一个有效的、短期的会话令牌。

于 2013-04-11T19:00:22.297 回答