0

QuickBooks Web Connector の取得に問題があります。実行すると、ログに次のように表示されます

...

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 を返し始めましたが、現在は機能しているようです。

非常に安全ではありません - つまり、その FileID を発見した人は誰でも (これは間違いなくブルート フォース可能またはソーシャル エンジニアリング戦術を介して発見可能です)、SOAP Web サービスに接続し、潜在的に機密性の高い会計情報 (クレジット カード番号) を抽出できることを意味します。 、顧客など)

代わりに、有効で有効期間の短いセッション トークンを返すようにサービスを修正する必要があります。

于 2013-04-11T19:00:22.297 に答える