I wonder if you could help me query a SOAP API. I have all the documentation and passwords, but this isn't a lot of good when you're stuck at first base. OK here's a snapshot of my WSDL file:

<!-- User authentication -->

		<element name="UserAuthentication">
					<element name="iId" type="xsd:int" />
					<element name="sPassword" type="xsd:string" />
					<element name="sType" type="api:UserType" />

# 663
<operation name="getProductList">
		<soap:operation soapAction="" />
			<soap:header message="api:UserAuthentication" part="parameters" use="literal" />
			<soap:header message="api:getQuotaRequest" part="parameters" use="literal" />
			<soap:body use="literal" />
			<soap:header message="api:getQuotaResponse" part="return" use="literal" />
			<soap:body use="literal" />
		<fault name="ApiException">
			<soap:fault name="ApiException" use="literal" />

<!-- MESSAGES -->

<!-- Headers -->
<message name="UserAuthentication">
	<part name="parameters" element="api:UserAuthentication" />

<!-- Product List -->

		<element name="getProductList">
					<element name="sQuery" type="xsd:string" minOccurs="0" />
					<element name="bAdult" type="xsd:boolean" minOccurs="0" />
					<element name="bHotPick" type="xsd:boolean" minOccurs="0" />
					<element name="bIncludeTree" type="xsd:boolean" minOccurs="0" />
					<element name="sSort" type="api:ProductListSortOption" minOccurs="0" />
					<element name="iOffset" type="xsd:int" minOccurs="0" />
					<element name="iLimit" type="xsd:int" minOccurs="0" />
					<element name="oActiveRefineByGroup" minOccurs="0" maxOccurs="unbounded" type="api:RefineByGroup" />
					<element name="iLimitRefineBy" type="xsd:int" minOccurs="0" />
I'm only interested in the

PHP Code:
    [17] => struct getProductList {
string sQuery;
boolean bAdult;
boolean bHotPick;
boolean bIncludeTree;
ProductListSortOption sSort;
int iOffset;
int iLimit;
RefineByGroup oActiveRefineByGroup;
int iLimitRefineBy;

PHP Code:
method from the API.

Just to start with, I am correct to kick off with:

PHP Code:
$client = new SoapClient("http://api.example.com/v2/Example?wsdl",
'iId' => 123456
'sPassword' => 'gkgkgkgkgkgkgkkgkgkggkkgkgkgkg'
'sType' => 'fhfhfhfhhfhffhfhfhhffhhfhfhfhfhfh')); 
Is this right? I mean from the error message 'Authentication Failed' I'm thinking something is missing at this point. Moreover the rest of the script:

PHP Code:
$oRefineByDefinition = new stdClass();
$oRefineByDefinition->sId 1203;
$oRefineByDefinition->sName '';
$oRefineBy->oRefineByDefinition $oRefineByDefinition;

$aParams7 = array(
"sQuery"        =>    "jeans",
"bAdult"        =>    0,
"iOffset"        =>    0,
"iLimit"        =>    30,
//"oActiveRefineByGroup"    =>    $oRefineBy,
"sColumnToReturn"    =>    array("sDescription","sBrand"));

$products $client->getProductList($aParams7);

fails to execute?