Mac*_*ity 8 quickbooks qbwc intuit-partner-platform
我的QBWC应用程序一直运行良好,但我今天早上得到通知,说它突然停止了工作.具体来说,它无法进行身份验证.我检查了QWCLog.txt并找到了这个
20130510.14:25:19 UTC:QBWebConnector.SOAPWebService.do_authenticate():QBWC1012:由于以下错误消息,身份验证失败.SOAP-ERROR:解析WSDL:无法从' http://developer.intuit.com/uploadedFiles/Support/QBWebConnectorSvc.wsdl '加载:无法加载外部实体" http://developer.intuit.com/uploadedFiles/支持/ 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 ERROR 404:Not Found.
其他人得到这个吗?是否有我不知道的新网址?我只需要重新开始工作.
小智 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |