QBWC WSDL 缺失

问题描述 投票:0回答:3

我的 QBWC 应用程序一直工作正常,但今天早上我收到会计通知,它突然停止工作。具体来说,它无法进行身份验证。我检查了 QWCLog.txt 并发现了这个

20130510.14:25:19 UTC:QBWebConnector.SOAPWebService.do_authenticate():QBWC1012:由于以下错误消息,身份验证失败。 SOAP-错误:解析 WSDL:无法从“http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl”加载:无法加载外部实体“http://developer.intuit.com” /uploadedFiles/Support/QBWebConnectorSvc.wsdl

这是一个新的(我已经扩展了错误日志记录,这样我就可以看到完整的调用)。于是我查看了 WSDL 文件并发现...是 404?!

我什至尝试了我的一个 AWS 实例以确保不是只有我一个人遇到这种情况

wget http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl --2013-05-10 15:10:50-- http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl 正在解析developer.intuit.com (developer.intuit.com)...206.108.40.170 正在连接到developer.intuit.com (developer.intuit.com)|206.108.40.170|:80...已连接。 HTTP 请求已发送,正在等待响应... 404 Not Found 2013-05-10 15:10:51 错误 404:未找到。

还有人收到这个吗?是否有我不知道的新网址?我只需要让它再次工作。

quickbooks intuit-partner-platform qbwc
3个回答

4
投票
我同意这个问题目前存在。

这对我有帮助: 旧代码:


$server = new SoapServer($wsdl_url);


新代码:

$server = new SoapServer('file:///home/to/wsdl/file');

这是我的 wsdl 文件中的内容:


<?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://developer.intuit.com/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://developer.intuit.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://developer.intuit.com/"> <s:element name="authenticate"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="strUserName" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="strPassword" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="authenticateResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="authenticateResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <!-- added these two methods --> <s:element name="serverVersion"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="serverVersionResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="serverVersionResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="clientVersion"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="clientVersionResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="clientVersionResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="sendRequestXML"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="strHCPResponse" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="strCompanyFileName" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="qbXMLCountry" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="qbXMLMajorVers" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="qbXMLMinorVers" type="s:int" /> </s:sequence> </s:complexType> </s:element> <s:element name="sendRequestXMLResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="sendRequestXMLResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="receiveResponseXML"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="response" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="receiveResponseXMLResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="receiveResponseXMLResult" type="s:int" /> </s:sequence> </s:complexType> </s:element> <s:element name="connectionError"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="connectionErrorResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="connectionErrorResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getLastError"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getLastErrorResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getLastErrorResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="closeConnection"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="closeConnectionResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="closeConnectionResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> <wsdl:message name="authenticateSoapIn"> <wsdl:part name="parameters" element="tns:authenticate" /> </wsdl:message> <wsdl:message name="authenticateSoapOut"> <wsdl:part name="parameters" element="tns:authenticateResponse" /> </wsdl:message> <!-- added this part --> <wsdl:message name="serverVersionSoapIn"> <wsdl:part name="parameters" element="tns:serverVersion" /> </wsdl:message> <wsdl:message name="serverVersionSoapOut"> <wsdl:part name="parameters" element="tns:serverVersionResponse" /> </wsdl:message> <wsdl:message name="clientVersionSoapIn"> <wsdl:part name="parameters" element="tns:clientVersion" /> </wsdl:message> <wsdl:message name="clientVersionSoapOut"> <wsdl:part name="parameters" element="tns:clientVersionResponse" /> </wsdl:message> <wsdl:message name="sendRequestXMLSoapIn"> <wsdl:part name="parameters" element="tns:sendRequestXML" /> </wsdl:message> <wsdl:message name="sendRequestXMLSoapOut"> <wsdl:part name="parameters" element="tns:sendRequestXMLResponse" /> </wsdl:message> <wsdl:message name="receiveResponseXMLSoapIn"> <wsdl:part name="parameters" element="tns:receiveResponseXML" /> </wsdl:message> <wsdl:message name="receiveResponseXMLSoapOut"> <wsdl:part name="parameters" element="tns:receiveResponseXMLResponse" /> </wsdl:message> <wsdl:message name="connectionErrorSoapIn"> <wsdl:part name="parameters" element="tns:connectionError" /> </wsdl:message> <wsdl:message name="connectionErrorSoapOut"> <wsdl:part name="parameters" element="tns:connectionErrorResponse" /> </wsdl:message> <wsdl:message name="getLastErrorSoapIn"> <wsdl:part name="parameters" element="tns:getLastError" /> </wsdl:message> <wsdl:message name="getLastErrorSoapOut"> <wsdl:part name="parameters" element="tns:getLastErrorResponse" /> </wsdl:message> <wsdl:message name="closeConnectionSoapIn"> <wsdl:part name="parameters" element="tns:closeConnection" /> </wsdl:message> <wsdl:message name="closeConnectionSoapOut"> <wsdl:part name="parameters" element="tns:closeConnectionResponse" /> </wsdl:message> <wsdl:portType name="QBWebConnectorSvcSoap"> <!-- add this chunk --> <wsdl:operation name="serverVersion"> <wsdl:input message="tns:serverVersionSoapIn" /> <wsdl:output message="tns:serverVersionSoapOut" /> </wsdl:operation> <wsdl:operation name="clientVersion"> <wsdl:input message="tns:clientVersionSoapIn" /> <wsdl:output message="tns:clientVersionSoapOut" /> </wsdl:operation> <wsdl:operation name="authenticate"> <wsdl:input message="tns:authenticateSoapIn" /> <wsdl:output message="tns:authenticateSoapOut" /> </wsdl:operation> <wsdl:operation name="sendRequestXML"> <wsdl:input message="tns:sendRequestXMLSoapIn" /> <wsdl:output message="tns:sendRequestXMLSoapOut" /> </wsdl:operation> <wsdl:operation name="receiveResponseXML"> <wsdl:input message="tns:receiveResponseXMLSoapIn" /> <wsdl:output message="tns:receiveResponseXMLSoapOut" /> </wsdl:operation> <wsdl:operation name="connectionError"> <wsdl:input message="tns:connectionErrorSoapIn" /> <wsdl:output message="tns:connectionErrorSoapOut" /> </wsdl:operation> <wsdl:operation name="getLastError"> <wsdl:input message="tns:getLastErrorSoapIn" /> <wsdl:output message="tns:getLastErrorSoapOut" /> </wsdl:operation> <wsdl:operation name="closeConnection"> <wsdl:input message="tns:closeConnectionSoapIn" /> <wsdl:output message="tns:closeConnectionSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="QBWebConnectorSvcSoap" type="tns:QBWebConnectorSvcSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <!-- this too was added... --> <wsdl:operation name="serverVersion"> <soap:operation soapAction="http://developer.intuit.com/serverVersion" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="clientVersion"> <soap:operation soapAction="http://developer.intuit.com/clientVersion" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="authenticate"> <soap:operation soapAction="http://developer.intuit.com/authenticate" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendRequestXML"> <soap:operation soapAction="http://developer.intuit.com/sendRequestXML" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="receiveResponseXML"> <soap:operation soapAction="http://developer.intuit.com/receiveResponseXML" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="connectionError"> <soap:operation soapAction="http://developer.intuit.com/connectionError" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getLastError"> <soap:operation soapAction="http://developer.intuit.com/getLastError" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="closeConnection"> <soap:operation soapAction="http://developer.intuit.com/closeConnection" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="QBWebConnectorSvc"> <wsdl:port name="QBWebConnectorSvcSoap" binding="tns:QBWebConnectorSvcSoap"> <soap:address location="https://idn.vogelfam.net/QBMSDonorSample/QBWebConnectorSvc.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
    

0
投票
根据这篇

post,我们可以从以下网址找到用于快速图书网络连接的 WSDL 文件:

https://test.developer.intuit.com/QBWC/TroubleshootWebServiceFS/Service.asmx?wsdl

© www.soinside.com 2019 - 2024. All rights reserved.