KONTOPRUEF-Logo
Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz

PHP-Beispielskripte zu KONTOPRUEF

Inhalt 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]";

?>

Nach oben

Skript ohne CURL für Bankverbindungen

Hierzu 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";
?>

Nach oben

Skript mit CURL für Adressen

Im 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'] . "]";
}
?>

Nach oben

Skript ohne CURL für Adressen

Hierzu 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 Bankverbindungen

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

Nach oben

Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz