Stefan Eickhoff: XML Datei mit Zertifikat versenden via SOAP + PHP

Beitrag lesen

Hallo Markus,

Soweit so gut, die Frage ist nun, kann mir jemand sagen, wie ich mit einer PHP Anwendung mit diesem Server sprechen kann?

das Thema wird z.B. auch im Buch "Web APIs with PHP" behandelt.
Die Code-Beispiele dazu gibt es hier
http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764589547,descCd-download_code.html
Vielleicht kannst Du da auch ohne Buch was passendes finden.

Der für Dich interessante Teil dürfte das clientseitige Zertifikat sein.
Dafür kommt curl zum Einsatz.

<?php
function callAPI($endpoint, $requestBody)
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $endpoint);
  curl_setopt($ch, CURLOPT_SSLCERT, "../certs/cert_key_pem-1.txt");
  curl_setopt($ch, CURLOPT_POST, TRUE);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
  ob_start();
  curl_exec($ch);
  $response = ob_get_clean();
  if (curl_error($ch))
 {
   file_put_contents("/tmp/curl_error_log.txt", curl_errno($ch) . ": " .
    curl_error($ch), "a+");
   curl_close($ch);
   return null;
 }else
 {
    curl_close($ch);
    return $response;
 }
}
?>

$endpoint ist hier die URL, $requestBody der SOAP-request.
Wenn alles klappt solltest Du eine entsprechende Antwort erhalten.

Viele Grüße

Stefan

--
bythewaythewebsuxgoofflineandenjoytheday