Created
March 30, 2017 16:13
-
-
Save tiagoandrepro/ff8d1753e934fd5270b0aded79d48bcf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Data, connection, auth | |
$dataFromTheForm = $_POST['fieldName']; // request data from the form | |
$soapUrl = "https://connecting.website.com/soap.asmx?op=DoSomething"; // asmx URL of WSDL | |
$soapUser = "username"; // username | |
$soapPassword = "password"; // password | |
// xml post structure | |
$xml_post_string = '<?xml version="1.0" encoding="utf-8"?> | |
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> | |
<soap:Body> | |
<GetItemPrice xmlns="http://connecting.website.com/WSDL_Service"> // xmlns value to be set to your's WSDL URL | |
<PRICE>'.$dataFromTheForm.'</PRICE> | |
</GetItemPrice > | |
</soap:Body> | |
</soap:Envelope>'; // 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://connecting.website.com/WSDL_Service/GetPrice", | |
"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, 0); | |
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); | |
// converting | |
$response1 = str_replace("<soap:Body>","",$response); | |
$response2 = str_replace("</soap:Body>","",$response1); | |
// convertingc to XML | |
$parser = simplexml_load_string($response2); | |
// user $parser to get your data out of XML response and to display it. | |
?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$soap_request = "<?xml version=\"1.0\"?>\n"; | |
$soap_request .= "<soap:Envelope xmlns:soap=\"http://www.w3.org/2001/12/soap-envelope\" soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\">\n"; | |
$soap_request .= " <soap:Body xmlns:m=\"http://www.example.org/stock\">\n"; | |
$soap_request .= " <m:GetStockPrice>\n"; | |
$soap_request .= " <m:StockName>IBM</m:StockName>\n"; | |
$soap_request .= " </m:GetStockPrice>\n"; | |
$soap_request .= " </soap:Body>\n"; | |
$soap_request .= "</soap:Envelope>"; | |
$header = array( | |
"Content-type: text/xml;charset=\"utf-8\"", | |
"Accept: text/xml", | |
"Cache-Control: no-cache", | |
"Pragma: no-cache", | |
"SOAPAction: \"run\"", | |
"Content-length: ".strlen($soap_request), | |
); | |
$soap_do = curl_init(); | |
curl_setopt($soap_do, CURLOPT_URL, "http://localhost/php-soap-curl/soap-server.php" ); | |
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10); | |
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10); | |
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true ); | |
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false); | |
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); | |
curl_setopt($soap_do, CURLOPT_POST, true ); | |
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $soap_request); | |
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header); | |
if(curl_exec($soap_do) === false) { | |
$err = 'Curl error: ' . curl_error($soap_do); | |
curl_close($soap_do); | |
print $err; | |
} else { | |
curl_close($soap_do); | |
print 'Operation completed without any errors'; | |
} | |
?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$xml = '<?xml version="1.0" encoding="utf-8"?>'. | |
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'. | |
' xmlns:xsd="http://www.w3.org/2001/XMLSchema"'. | |
' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'. | |
'<soap:Body>'. | |
'<GetShirtInfo xmlns="http://api.soap.website.com/WSDL_SERVICE/">'. | |
'<ItemId>15</ItemId>'. | |
'</GetShirtInfo>'. | |
'</soap:Body>'. | |
'</soap:Envelope>'; | |
$url = "https://api.soap.website.com/soap.asmx?wsdl"; | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
$headers = array(); | |
array_push($headers, "Content-Type: text/xml; charset=utf-8"); | |
array_push($headers, "Accept: text/xml"); | |
array_push($headers, "Cache-Control: no-cache"); | |
array_push($headers, "Pragma: no-cache"); | |
array_push($headers, "SOAPAction: http://api.soap.website.com/WSDL_SERVICE/GetShirtInfo"); | |
if($xml != null) { | |
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml"); | |
array_push($headers, "Content-Length: " . strlen($xml)); | |
} | |
curl_setopt($ch, CURLOPT_USERPWD, "user_name:password"); /* If required */ | |
curl_setopt($ch, CURLOPT_POST, true); | |
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | |
$response = curl_exec($ch); | |
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); | |
curl_close($ch); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment