Читаем wsdl. Находим нужный запрос.
operation Tracking<operation name="Tracking">
<input message="tns:TrackingRequestMessage"/>
<output message="tns:TrackingResponseMessage"/>
</operation>
Значит запрос Tracking принимает на вход TrackingRequestMessage. Смотрим дальше
message TrackingRequestMessage<message name="TrackingRequestMessage">
<part name="parameters" element="tns:Tracking"/>
</message>
Единственное поле parameters с типом Tracking. Ищем этот тип.
element Tracking<xs:element name="Tracking">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" type="xs:string" nillable="true"/>
<xs:element name="Login" type="xs:string" nillable="true"/>
<xs:element name="Password" type="xs:string" nillable="true"/>
<xs:element name="Type" type="xs:string"/>
<xs:element name="Documents" type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Получаем объект или ассоциативный массив с текстовыми полями Language, Login, Password, Type и Documents, причём все поля кроме Type могут иметь значение null.
Значит запрос должен выглядеть как
$result = $client->Tracking([
'Language' => ?string,
'Login' => ?string,
'Password' => ?string,
'Type' => string,
'Documents' => ?string
]);
То же самое можно получить и средствами PHP. После подключения к клиенту получим список методов.
var_dump($client->__getFunctions());
/* ...
[92] => string(47) "TrackingResponse Tracking(Tracking $parameters)"
... */
Значит метод Tracking принимает один параметр с типом Tracking и возвращает ответ типа TrackingResponse.
Запросим типы.
var_dump($client->__getTypes());
Результат запроса/* ...
[120] => string(103) "struct Tracking {
string Language;
string Login;
string Password;
string Type;
string Documents;
}"
[121] => string(51) "struct TrackingResponse {
ResultTracking return;
}"
[24] => string(81) "struct ResultTracking {
TrackingInfo Items;
boolean Error;
string ErrorInfo;
}"
[28] => string(227) "struct TrackingInfo {
boolean Error;
string Type;
string Number;
string Info;
string AgentURL;
dateTime CreateDate;
string State;
dateTime DeliveryDate;
string DeliveryInfo;
TrackingEvent History;
Waybill Waybills;
}"
[27] => string(83) "struct TrackingEvent {
dateTime EventDate;
string EventName;
string EventInfo;
}"
[31] => string(546) "struct Waybill {
string Type;
string Number;
dateTime CreateDate;
string State;
dateTime DeliveryDate;
string Sender;
string SenderGeography;
string Recipient;
string RecipientGeography;
string RecipientAddress;
dateTime SendDate;
string Payer;
int CargoQty;
float NetWeight;
float GrossWeight;
string ConsolidationNumber;
string InventoryWaybillNumber;
string DeliveryMethod;
float Volume;
boolean RequirePaymentInCash;
float PaymentInCash;
string PaymentInCashCurrency;
string RecipientOfficial;
TrackingEvent History;
}"
... */
Единственное отличие от самостоятельного анализа wsdl - не указано, какие поля необязательные, какие можно заполнять null и являются ли какие-то поля массивами.