Hi, I have a wsdl I have to conform to that looks like this: [code] <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.paaleads.com/LeadConsumerService/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.paaleads.com/LeadConsumerService/"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://www.paaleads.com/LeadConsumerService/"> <s:element name="ConsumeLead"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="request" type="tns:ConsumeLeadRequest" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ConsumeLeadRequest"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="LeadType" type="tns:LeadType" /> <s:element minOccurs="0" maxOccurs="1" name="LeadXml" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="AuthenticationUsername" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="AuthenticationPassword" type="s:string" /> </s:sequence> </s:complexType> <s:simpleType name="LeadType"> <s:restriction base="s:string"> <s:enumeration value="Unknown" /> <s:enumeration value="Mortgage" /> <s:enumeration value="TermAssurance" /> <s:enumeration value="Travel" /> <s:enumeration value="PMI" /> <s:enumeration value="SecuredLoan" /> <s:enumeration value="CreditHelp" /> <s:enumeration value="Stakeholder" /> <s:enumeration value="TermPostal" /> <s:enumeration value="Pension" /> <s:enumeration value="Savings" /> <s:enumeration value="Investments" /> <s:enumeration value="UnsecuredLoan" /> <s:enumeration value="OverseasMortgage" /> <s:enumeration value="Debt" /> <s:enumeration value="ASU" /> <s:enumeration value="LegalServices" /> </s:restriction> </s:simpleType> <s:element name="ConsumeLeadResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ConsumeLeadResult" type="tns:ConsumeLeadResponse" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ConsumeLeadResponse"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="LeadReceived" type="s:boolean" /> <s:element minOccurs="0" maxOccurs="1" name="FailureMessage" type="s:string" /> </s:sequence> </s:complexType> </s:schema> </wsdl:types> <wsdl:message name="ConsumeLeadSoapIn"> <wsdl:part name="parameters" element="tns:ConsumeLead" /> </wsdl:message> <wsdl:message name="ConsumeLeadSoapOut"> <wsdl:part name="parameters" element="tns:ConsumeLeadResponse" /> </wsdl:message> <wsdl:portType name="LeadConsumerServiceSoap"> <wsdl:operation name="ConsumeLead"> <wsdl:input message="tns:ConsumeLeadSoapIn" /> <wsdl:output message="tns:ConsumeLeadSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="LeadConsumerServiceSoap" type="tns:LeadConsumerServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="ConsumeLead"> <soap:operation soapAction="http://www.paaleads.com/LeadConsumerService/ConsumeLead" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="LeadConsumerServiceSoap12" type="tns:LeadConsumerServiceSoap"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="ConsumeLead"> <soap12:operation soapAction="http://www.paaleads.com/LeadConsumerService/ConsumeLead" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="LeadConsumerService"> <wsdl:port name="LeadConsumerServiceSoap" binding="tns:LeadConsumerServiceSoap"> <soap:address location="http://localhost:8080/dealdirectfinancial.co.uk/paaleads/PAALeadServer.php" /> </wsdl:port> <wsdl:port name="LeadConsumerServiceSoap12" binding="tns:LeadConsumerServiceSoap12"> <soap12:address location="http://localhost:8080/dealdirectfinancial.co.uk/paaleads/PAALeadServer.php" /> </wsdl:port> </wsdl:service> </wsdl:definitions> [/code] At the moment I can get my input to pass the wsdl, but I can't seem to pass a response back. My server code looks like this: [code] <?php # PAALeadServer.php # SiteWeavers Web Solutions (http:www.siteweavers.co.uk) # function ConsumeLead($data) $response = array( 'ConsumeLeadResponse' => array( 'ConsumeLeadResult' => array( 'LeadReceived' => 'true' ) ) ); return $response; } ini_set("soap.wsdl_cache_enabled", "0"); $server = new SoapServer("http://localhost:8080/dealdirectfinancial.co.uk/paaleads/LeadConsumerService.wsdl"); $server->addFunction("ConsumeLead"); $server->handle(); ?> [/code] My client like this: [code] <?php $leadType = 'Mortgage'; $leadXML = ' <ns1:LeadAssigned xmlns:ns1="http://PAA.LeadDelivery.Generic.Schemas.LeadAssigned" xmlns:ns0="http://PAA.LeadDelivery.Generic.Schemas.Lead" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns0:Lead> <Reference> 1234 </Reference> <Product> <Mnemonic> Mortgage </Mnemonic> <Description> Mortgage Leads </Description> <SubType> Other </SubType> </Product> <ExtendedInfo> <Mortgage> <MortgageValue> 75000 </MortgageValue> <MortgageValueLowerBound> 1 </MortgageValueLowerBound> <MortgageValueUpperBound> 500 </MortgageValueUpperBound> <PropertyValue> 100000 </PropertyValue> <PropertyValueLowerBound> 1 </PropertyValueLowerBound> <PropertyValueUpperBound> 500 </PropertyValueUpperBound> <Adverse> false </Adverse> <FirstTime> false </FirstTime> </Mortgage> </ExtendedInfo> <Applicants> <Applicant1> <Title> Mr </Title> <Forename> SampleForename </Forename> <Surname> SampleSurname </Surname> <DateOfBirth> 1903-02-01 </DateOfBirth> <Smoker> false </Smoker> <TelephoneNumbers> <TelephoneNumber> <Number> 01244123456 </Number> <Type> Mobile </Type> </TelephoneNumber> </TelephoneNumbers> <EmailAddresses> <EmailAddress> <Email> test@moneysupermarket.com </Email> <Type> Business </Type> </EmailAddress> </EmailAddresses> <Addresses> <Address> <Street> Sample Street </Street> <District> Sample District </District> <Town> Sample Town </Town> <County> Sample County </County> <Postcode> CH53UZ </Postcode> <Type> Home </Type> </Address> </Addresses> </Applicant1> </Applicants> </ns0:Lead> <Assignment> <Price> 20 </Price> <AssignmentDateTime> 2010-02-01T00:00:00 </AssignmentDateTime> <Subscription> <Reference> 1234 </Reference> <Subscriber> <Title> Mr </Title> <Forename> SampleForename </Forename> <Surname> SampleSurname </Surname> </Subscriber> </Subscription> <Account> <Reference> 1234 </Reference> <CompanyName> Sample Company </CompanyName> </Account> <LeadType> SampleLeadType </LeadType> <TerritoryName> UNITED KINGDOM </TerritoryName> </Assignment> </ns1:LeadAssigned> '; $server = "http://localhost:8080/dealdirectfinancial.co.uk/paaleads/"; $wsdl = $server . "LeadConsumerService.wsdl"; try { $client = new SoapClient($wsdl, array("trace"=>1,"exceptions"=>1)); ob_start(); var_dump($client->__getFunctions()); $dump = ob_get_contents(); ob_end_clean(); printf("<br />Dumping client object functions:<br /><pre>%s</pre>", $dump); // Create the parameters $params = array( 'ConsumeLead' => array( 'request' => array( "LeadType" => $leadType, "LeadXml" => $leadXML, "AuthenticationUsername" => 'dealdirectfinancial', "AuthenticationPassword" => 'opensesame' ) ) ); //$params = array(new SoapParam($params, 'ConsumeLeadRequest')); // Make the call to the service #$result = $client->ConsumeLead($params); $result = $client->__soapCall('ConsumeLead', $params); // Print the result printf("Printing the response: <br /><br />"); print_r($result->ConsumeLeadResponse); } catch (SoapFault $e) { echo "Error: {$e->faultstring}"; } // display what was sent to the server (the request) printf("Request: %s <br />", htmlspecialchars($client->__getLastRequest())); // display what came back from the server (the response) printf("Response: %s <br />", htmlspecialchars($client->__getLastResponse())); ?> [/code] The output I see shows the request xml gets generated correctly, but the response xml just has a closing tag for the output parameters and the php debugger shows [code] $result: object(stdClass) = [/code] ie. the result appears to be an empty object of stdClass. The output is as follows: [code] Dumping client object functions: array(2) { [0]=> string(56) "ConsumeLeadResponse ConsumeLead(ConsumeLead $parameters)" [1]=> string(56) "ConsumeLeadResponse ConsumeLead(ConsumeLead $parameters)" } Printing the response: Request: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.paaleads.com/LeadConsumerService/"><SOAP-ENV:Body><ns1:ConsumeLead><ns1:request><ns1:LeadType>Mortgage</ns1:LeadType><ns1:LeadXml> &lt;ns1:LeadAssigned xmlns:ns1="http://PAA.LeadDelivery.Generic.Schemas.LeadAssigned" xmlns:ns0="http://PAA.LeadDelivery.Generic.Schemas.Lead" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt; &lt;ns0:Lead&gt; &lt;Reference&gt; 1234 &lt;/Reference&gt; &lt;Product&gt; &lt;Mnemonic&gt; Mortgage &lt;/Mnemonic&gt; &lt;Description&gt; Mortgage Leads &lt;/Description&gt; &lt;SubType&gt; Other &lt;/SubType&gt; &lt;/Product&gt; &lt;ExtendedInfo&gt; &lt;Mortgage&gt; &lt;MortgageValue&gt; 75000 &lt;/MortgageValue&gt; &lt;MortgageValueLowerBound&gt; 1 &lt;/MortgageValueLowerBound&gt; &lt;MortgageValueUpperBound&gt; 500 &lt;/MortgageValueUpperBound&gt; &lt;PropertyValue&gt; 100000 &lt;/PropertyValue&gt; &lt;PropertyValueLowerBound&gt; 1 &lt;/PropertyValueLowerBound&gt; &lt;PropertyValueUpperBound&gt; 500 &lt;/PropertyValueUpperBound&gt; &lt;Adverse&gt; false &lt;/Adverse&gt; &lt;FirstTime&gt; false &lt;/FirstTime&gt; &lt;/Mortgage&gt; &lt;/ExtendedInfo&gt; &lt;Applicants&gt; &lt;Applicant1&gt; &lt;Title&gt; Mr &lt;/Title&gt; &lt;Forename&gt; SampleForename &lt;/Forename&gt; &lt;Surname&gt; SampleSurname &lt;/Surname&gt; &lt;DateOfBirth&gt; 1903-02-01 &lt;/DateOfBirth&gt; &lt;Smoker&gt; false &lt;/Smoker&gt; &lt;TelephoneNumbers&gt; &lt;TelephoneNumber&gt; &lt;Number&gt; 01244123456 &lt;/Number&gt; &lt;Type&gt; Mobile &lt;/Type&gt; &lt;/TelephoneNumber&gt; &lt;/TelephoneNumbers&gt; &lt;EmailAddresses&gt; &lt;EmailAddress&gt; &lt;Email&gt; test@moneysupermarket.com &lt;/Email&gt; &lt;Type&gt; Business &lt;/Type&gt; &lt;/EmailAddress&gt; &lt;/EmailAddresses&gt; &lt;Addresses&gt; &lt;Address&gt; &lt;Street&gt; Sample Street &lt;/Street&gt; &lt;District&gt; Sample District &lt;/District&gt; &lt;Town&gt; Sample Town &lt;/Town&gt; &lt;County&gt; Sample County &lt;/County&gt; &lt;Postcode&gt; CH53UZ &lt;/Postcode&gt; &lt;Type&gt; Home &lt;/Type&gt; &lt;/Address&gt; &lt;/Addresses&gt; &lt;/Applicant1&gt; &lt;/Applicants&gt; &lt;/ns0:Lead&gt; &lt;Assignment&gt; &lt;Price&gt; 20 &lt;/Price&gt; &lt;AssignmentDateTime&gt; 2010-02-01T00:00:00 &lt;/AssignmentDateTime&gt; &lt;Subscription&gt; &lt;Reference&gt; 1234 &lt;/Reference&gt; &lt;Subscriber&gt; &lt;Title&gt; Mr &lt;/Title&gt; &lt;Forename&gt; SampleForename &lt;/Forename&gt; &lt;Surname&gt; SampleSurname &lt;/Surname&gt; &lt;/Subscriber&gt; &lt;/Subscription&gt; &lt;Account&gt; &lt;Reference&gt; 1234 &lt;/Reference&gt; &lt;CompanyName&gt; Sample Company &lt;/CompanyName&gt; &lt;/Account&gt; &lt;LeadType&gt; SampleLeadType &lt;/LeadType&gt; &lt;TerritoryName&gt; UNITED KINGDOM &lt;/TerritoryName&gt; &lt;/Assignment&gt; &lt;/ns1:LeadAssigned&gt; </ns1:LeadXml><ns1:AuthenticationUsername>dealdirectfinancial</ns1:AuthenticationUsername><ns1:AuthenticationPassword>opensesame</ns1:AuthenticationPassword></ns1:request></ns1:ConsumeLead></SOAP-ENV:Body></SOAP-ENV:Envelope> Response: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.paaleads.com/LeadConsumerService/"><SOAP-ENV:Body><ns1:ConsumeLeadResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope> [/code] I cannot figure out how to build the response as a nested array that matches the wsdl. Can anyone help? -- View this message in context: http://old.nabble.com/Need-help-generating-a-response-that-matches-wsdl-tp29890878p29890878.html Sent from the Php - Soap mailing list archive at Nabble.com. -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php