|
|||
KONTOPRUEF-Navigation: |
PHP-Beispielskripte zu KONTOPRUEFInhalt dieser Seite:
Skript mit CURL für Bankverbindungen<?php /* Hier wird der String für den GET per URL aufgebaut */ $ktopruef_get="un="$un"."&"."pw="$pw"."&"."blz="$blz"."&"."kto="$kto"; /* Zur Verbindung mit dem Server wird CURL verwendet */ /* mit curl_init wird zunächst die URL festgelegt */ $ch = curl_init ("http://wddx.hanft.de/ktopruef?$ktopruef_get"); /* Hier werden noch einige Parameter für CURL gesetzt */ curl_setopt ($ch, CURLOPT_HEADER, 0); /* Header nicht in die Ausgabe */ curl_setopt ($ch, CURLOPT_NOBODY, 0); /* Ausgabe nicht in die HTML-Seite */ curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); /* Umleitung der Ausgabe in eine Variable ermöglichen */ /* Aufruf von CURL und Ausgabe mit WDDX deserialisieren */ $des_out = wddx_deserialize (curl_exec($ch)); curl_close ($ch); /* Die deserialisierte Ausgabe in ein Array schreiben */ while (list($key, $val) = each($des_out)) { $ergebnis[$key] = $val; } /* und das Ergebnis ausgeben */ echo "Ergebnis: $ergebnis[result]"; echo "Ergebnistext: $ergebnis[resulttext]"; echo "Bankname: $ergebnis[bankname]"; ?> Skript ohne CURL für BankverbindungenHierzu muß die PHP-Variable allow_url_fopen = on gesetzt sein! Beachten Sie, daß dadurch auch Skripte von externen Servern nachgeladen werden können, was Bestandteil von Hacker-Angriffen sein kann. Sicherer ist daher die obige Methode mit CURL. <?php $url="http://wddx.hanft.de/ktopruef?un=mustermann&pw=geheim&blz=76010085&kto=1856"; if (!$r=fopen($url,"r")) { echo "WDDX-Server down!";exit(); } while (!feof($r)) { $wddxreply.=fgets($r,65535); } fclose($r); require_once("xml.php"); /* Open Source XML Library von Keith Devens */ /* ersetzen Sie in dieser Datei $this->parser = &xml_parser_create(); durch $this->parser = &xml_parser_create('ISO-8859-1'); */ $outerdata = XML_unserialize($wddxreply); $innerdata = $outerdata["wddxPacket"]["data"]["struct"]["var"]; while (list($outerkey, $outerval) = each($innerdata)) { list($innerkey, $innerval) = each($outerval); if (strpos($outerkey, "attr")) $varname = $innerval; else $ergebnis[$varname] = $innerval; } echo "Result: $ergebnis[result]<br>\n"; echo "ResultText: $ergebnis[resulttext]<br>\n"; echo "BankName: $ergebnis[bankname]<br>\n"; echo "NewBlz: $ergebnis[newblz]<br>\n"; ?> Skript mit CURL für AdressenIm folgenden Beispiel werden die Bibliotheken CURL und WDDX von PHP verwendet: <? $un = "demo"; $pw = "demo"; $plz = "99999"; $ort = "Demostadt"; ?> <?php /* Hier wird der String für den GET per URL aufgebaut */ $address_get = "func=check&rewrite=1&un=$un&pw=$pw&plz=$plz&ort=$ort"; $url = "http://wddx.hanft.de/address?$address_get"; echo "<br>Prüfe Adresse mit URL: $url<br> " ; /* Zur Verbindung mit dem Server wird CURL verwendet */ /* mit curl_init wird zunächst die URL festgelegt */ $ch = curl_init ($url); /* Hier werden noch einige Parameter für CURL gesetzt */ curl_setopt ($ch, CURLOPT_HEADER, 0); /* Header nicht in die Ausgabe */ curl_setopt ($ch, CURLOPT_NOBODY, 0); /* Ausgabe nicht in die HTML-Seite */ curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); /* Umleitung der Ausgabe in eine Variable ermöglichen */ /* soll die Verbindung verschlüsselt mit SSL aufgebaut werden, gibt es zwei Möglichkeiten: 1. ohne Prüfung des Zertifikats curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 2. mit Prüfung des Zertifikats curl_setopt ($ch, CURLOPT_CAINFO, "Dateiname"); Als Dateiname geben Sie die Datei mit den Root-Zertifikaten an. Falls Ihr CURL nicht ohnehin bereits eine solche Datei installiert hat (z.B. unter /usr/share/ssl o.ä.; der übliche Dateiname ist "curl-ca-bundle.crt" o.ä.), können Sie eine aktuelle Version herunterladen unter http://curl.haxx.se/ca/cacert.pem */ /* Aufruf von CURL und Ausgabe mit WDDX deserialisieren */ $result = curl_exec($ch); if (curl_errno($ch)) { echo "<br>cURL-Fehler: " . curl_error($ch); } else { $des_out = wddx_deserialize($result); curl_close ($ch); /* Die deserialisierte Ausgabe in ein Array schreiben */ while (list($key, $val) = each($des_out)) { $ergebnis[$key] = $val; } /* und das Ergebnis ausgeben */ echo "<br>Ergebnis: [" . $ergebnis['result'] . "]"; echo "<br>Ergebnistext: [" . $ergebnis['resulttext'] . "]"; } ?> Skript ohne CURL für AdressenHierzu muß die PHP-Variable allow_url_fopen = on gesetzt sein! Beachten Sie, daß dadurch auch Skripte von externen Servern nachgeladen werden können, was Bestandteil von Hacker-Angriffen sein kann. Sicherer ist daher die obige Methode mit CURL. <?php $url="http://wddx.hanft.de/address?un=mustermann&pw=geheim&func=check&plz=90425&ort=Nürnberg"; if (!$r=fopen($url,"r")) { echo "WDDX-Server down!";exit(); } while (!feof($r)) { $wddxreply.=fgets($r,65535); } fclose($r); require_once("xml.php"); /* Open Source XML Library von Keith Devens */ $outerdata = XML_unserialize($wddxreply); $innerdata = $outerdata["wddxPacket"]["data"]["struct"]["var"]; while (list($outerkey, $outerval) = each($innerdata)) { list($innerkey, $innerval) = each($outerval); if (strpos($outerkey, "attr")) $varname = $innerval; else $ergebnis[$varname] = $innerval; } echo "Result: $ergebnis[result]<br>\n"; echo "ResultText: $ergebnis[resulttext]<br>\n"; ?> Skript mit WebServices/SOAP für BankverbindungenWDDX ist ab Version 7.4 nicht mehr in PHP enthalten. Spätestens dann müssen Sie auf den SoapClient umsteigen. Ein Beispiel für Bankverbindungen finden Sie hier: $myClient = new SoapClient('https://webservices.hanft.de/wsdl/IKtoPruef', array('encoding' => 'ISO-8859-1')); $myResponse = $myClient->TestBlzKto('demo', 'demo', '89999999', '1234'); // überflüssige Parameter können weggelassen werden var_dump($myResponse); Diese Abfrage ergibt: array(6) { ["Result"]=> int(0) ["ResultText"]=> string(2) "Ok" ["BankName"]=> string(9) "Demo-Bank" ["NewBlz"]=> string(0) "" ["Iban"]=> string(22) "DE00123456781234567890" ["Bic"]=> string(11) "DEMODEFF000" } Die Funktionen, Parameter und Ergebnisse finden Sie auf der WebServices-Seite. |
||
|