geçerli bir AllXsd değer

4 Cevap ûnet

Ben bir Soap istemci isteği bu var:

Exception: SoapFault exception: [soap:Client] Server was unable to read request. ---> There is an error in XML document (2, 273). ---> The string '2010-5-24' is not a valid AllXsd value. in /path/filinet.php:21 Stack trace: #0 [internal function]: SoapClient->__call('SubIdDetailsByO...', Array) #1 /path/filinet.php(21): SoapClient->SubIdDetailsByOfferId(Array) #2 {main}

Ben nasıl php bir AllXsd benim değer biçimlendirmek yok, yanlış bir değer yolluyorum gibi görünüyor?

İşte benim kod:

<?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);
?>

4 Cevap

AllXsd değerleri bu IIRC benzeyecektir

2010-05-24T18: 13:00

Sen ISO 8601 tarih biçimini date('c', strtotime($my_date)); kullanmanız gerekir

http://php.net/date

Sorun $ başlatmak ya $ sonlandırmak ya tarih biçimi ile. Bunun yerine sadece $ _GET ile sorgu dizesinden verileri kapma ve üzerinde gönderme, sen tarih gerekli formatı eşleşen emin olmak için kontrol bazı bütünlüğünü yapmak gerekir

2010-05-24T13:46:00

Bunun yerine tarihini ("Y-m-d") kullanarak kullanmayı deneyin:

$startDate = date("Y-m-d") . 'T' . date("H:i:s");

Kovalamaca ve kullanım kesti

date('c');