Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php调用soap api?_Php_Xml_Web Services_Soap_Wsdl - Fatal编程技术网

如何使用php调用soap api?

如何使用php调用soap api?,php,xml,web-services,soap,wsdl,Php,Xml,Web Services,Soap,Wsdl,我有以下soap响应。我如何使用php调用soap。有什么想法吗。提前谢谢 <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

我有以下soap响应。我如何使用php调用soap。有什么想法吗。提前谢谢

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
         <wsse:UsernameToken>
            <wsse:Username>XXXXXXXXXXXX</wsse:Username>
            <wsse:Password>XXXXXXXXXXXXXXXXX</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soapenv:Body>
      <cus1:GetCustomerDetailsRequest xmlns:cus1="XXXXXXXXXXXXXXXXXXXXXXX" xmlns:com="XXXXXXXXXXXXXXXXXXXXXXXX" xmlns:cus="XXXXXXXXXXXXXXXXX">
         <cus:GetCustomerDetails>
            <AccountMSISDN>1234567890</AccountMSISDN>
         </cus:GetCustomerDetails>
      </cus1:GetCustomerDetailsRequest>
   </soapenv:Body>
</soapenv:Envelope>

XXXXXXXXXX
XXXXXXXXXXXXXX
1234567890

您应该能够通过使用免费的在线soap工具(如下所示)来玩转所需的字段、参数和方法:


另外,你应该看看这个答案:

可能重复我尝试过你的方法,但无法得到想要的结果。你能看看我的答案吗?
$soapUrl = "http://www.example.com/masterdata/masterdata.asmx?wsdl";

$soapUser = "username";  //  username

$soapPassword = "password"; // password

// xml post structure

$xml_post_string = 'soap string';   // data from the form, e.g. some ID number

$headers = array(
          "Content-type: text/xml;charset=\"utf-8\"",
          "Accept: text/xml",
          "Cache-Control: no-cache",
          "Pragma: no-cache",
          "SOAPAction: http://tempuri.org/GetMasterData", 
          "Content-length: ".strlen($xml_post_string),
      ); //SOAPAction: your op URL

$url = $soapUrl;

// PHP cURL  for https connection with auth
$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_USERPWD, $soapUser.":".$soapPassword); // username and password - declared at the top of the doc

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// converting
$response = curl_exec($ch); 

curl_close($ch);

    // a new dom object 
 $dom = new domDocument('1.0', 'utf-8'); 

 // load the html into the object 
 $dom->loadXml($response);         

 $array = json_decode($dom->textContent,TRUE);

  print_r($array);