Hi,
All I see in the WSDL is sequences, so from looking at the WSDL I would
expect array's? For example the authenticateSoapIn defines one parameter
which is a sequence of strUserName and strPassword.
Are you sure the wsdl is correct?
Kind regards,
David
bowb wrote:
I am using php soap from php 5.0.4 and I am running into the following
situation. I am expecting two string parameters being passed into my
authenticate function but instead I am getting an array that looks like
this:
array("strUserName"=>"test","strPassword"=>"test")
my php code:
function authenticate($strUserName,$strPassword)
{
return null;
}
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("QBWebConnectorSvc.wsdl");
$server->addFunction("authenticate");
$server->handle();
my wsdl file:
<?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"
typ
e="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>
<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"
typ
e="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="qbXMLCountry"
type="s:s
tring" />
<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" t
ype="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:strin
g" />
<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="receiveResponseXMLResul
t" 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"
typ
e="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>
<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">
<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="docume
nt" />
<wsdl:operation name="authenticate">
<soap:operation soapAction="http://developer.intuit.com/authenticate"
styl
e="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" st
yle="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://test.webservice.com/~bowb/oscommerce_test/catalog/qbpos_webservice.php"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
and the raw post data:
[<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><authenticate
xmlns="http://developer.intuit.com/"><strUserName>test</strUserName><strPassword>test</strPassword></authenticate></soap:Body></soap:Envelope>]
Is the array parameter the expected behavior or should I be getting the two
parameters. I am new to php soap and wsdl and need some direction on what I
should be expecting from php soap and the wsdl file.
Thanks,
Truman
--
View this message in context: http://www.nabble.com/Expected-paramaters-not-matching-t1427250.html#a3848975
Sent from the Php - Soap forum at Nabble.com.
--
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php