|
|
||
|
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. |
||
|
|||