Я получил это от клиентского запроса Мыла:
Исключение: исключение SoapFault: [soap:Client] Сервер не мог считать запрос.---> существует ошибка в XML-документе (2, 273).---> строка '2010-5-24' не является допустимым значением AllXsd. в/path/filinet.php:21 Отслеживании стека: № 0 [внутренняя функция]: SoapClient-> __ вызов ('SubIdDetailsByO...', Массив) № 1/path/filinet.php (21): SoapClient-> SubIdDetailsByOfferId (Массив) {основной} № 2
Кажется, что я отправляю неправильное значение, как я форматирую свое значение в AllXsd в php?
Вот мой код:
<?php
$start = isset($_GET['start']) ? $_GET['start'] : date("Y-m-d");
$end = isset($_GET['end']) ? $_GET['end'] : date("Y-m-d");
//define parameter array
$param = array('userName'=>'user', 'password'=>'pass', 'startDate' => $start, 'endDate' => $end, 'promotionId' => '');
//Get wsdl path
$serverPath = "https://webservices.filinet.com/affiliate/reports.asmx?WSDL";
//Declare Soap client
$client = new SoapClient($serverPath);
try {
//make the call
$result = $client->SubIdDetailsByOfferId($param);
//If error found display error
if(isset($fault))
{
echo "Error: ". $fault;
}
//If no error display response
else
{
//Used to display raw XML in the Web Browser
header("Content-Type: text/xml;");
//SubIdDetailsResult = XML results
echo $result->SubIdDetailsByOfferIdResult;
}
}
catch(SoapFault $ex) {
echo "<b>Exception:</b> ". $ex;
}
unset($client);
?>
Значения AllXsd выглядят примерно так: IIRC
2010-05-24T18: 13: 00
Проблема заключается в формате даты $ start или $ end. Вместо того, чтобы просто извлекать данные из строки запроса с помощью $ _GET и отправлять их, вам нужно выполнить некоторую проверку целостности, чтобы убедиться, что дата соответствует требуемому формату
2010-05-24T13:46:00
Вместо использования даты ("Ymd") попробуйте использовать:
$startDate = date("Y-m-d") . 'T' . date("H:i:s");