Kontonummer kostenlos auf Richtigkeit prüfen

Kontonummer kostenlos auf Richtigkeit prüfen

Wir stellen hier nur ein Beispiel vor wie man den Service zur Kontonummer-Prüfung nutzen kann.

Was man für den Service braucht:

  1. Eine aktuelle Datei der Bankleitzahlen der Bundesbank.
    Diese muss die Bankleitzahlen und die Daten für die Prüfberechnungsmethode enthalten.
  2. Eine Möglichkeit die aus der Datei von der Bundesbank die Prüfberechnungsmethode lesen kann. In unserem Beispiel macht dies die Methode „getFlag“ aus der Klasse „fantService“
  3. Einen Vermittler, der die Daten vom Widget liest und an den FreeAccountNumberTest Service weiter gibt und zurück an das Widget zur Ausgabe gibt.
  4. Als letztes eine HTML Datei die das Widget darstellt.

Der Code der Klasse fantService als Beispiel

<?php
 
namespace de\detecmedia\freeaccountnumber\service;
 
/**
* Description of fantService
*
* @author Markus Potthast <mpt@detecmedia.de>
*/
class fantService {
 
private $bankCodeFile;
 
function __construct($bankCodeFile) {
$this->bankCodeFile = $bankCodeFile;
}
 
public function test($accountNumber, $bankCode) {
$flag = $this->getFlag($bankCode);
if ($flag === false) {
return null;
}
if ($accountNumber == null) {
return null;
}
$json = null;
 
if (($flag == "52") || ($flag == "53") || ($flag == "B6") || ($flag == "C0")) {
$json = file_get_contents('http://www.detecmedia.de/freeaccountnumbertest/checksum.json?method=' . $flag . '&accountNumber=' . $accountNumber . "&bankCode=" . $bankCode);
} else {
$json = file_get_contents('http://www.detecmedia.de/freeaccountnumbertest/checksum.json?method=' . $flag . '&accountNumber=' . $accountNumber);
}
return $json;
}
 
private function getFlag($bankCode) {
$fp = fopen($this->bankCodeFile, "r");
$buffer = "";
$flag = false;
while (($buffer = fgets($fp)) !== false) {
$line['bankCode'] = mb_convert_encoding(trim(substr($buffer, 0, 8)), "UTF-8");
$line['flag'] = mb_convert_encoding(trim(substr($buffer, 150, 2)), "UTF-8");
if ($line['bankCode'] == $bankCode) {
$flag = $line['flag'];
break;
}
}
 
fclose($fp);
return $flag;
}
 
}

Die Datei zur Kommonikation

<?php
 
namespace de\detecmedia\freeaccountnumber\service;
 
require_once './fantClass.php';
 
$fantService = new fantService(__DIR__."/blz_2015_03_09_txt.txt");
echo $fantService->test($_GET['accountNumber'],$_GET['bankCode']);
 
?>

Javascript und CSS für den Rest

 
 
function loadCSS(filename) {
 
var file = document.createElement("link");
file.setAttribute("rel", "stylesheet");
file.setAttribute("type", "text/css");
file.setAttribute("href", filename);
 
if (typeof file !== "undefined")
document.getElementsByTagName("head")[0].appendChild(file);
}
 
function load(bankCode,accountNumber) {
$('#result').text("Anfrage fehlerhaft");
$.ajax({
url: serviceURL+"?bankCode="+bankCode+"&accountNumber="+accountNumber,
type: 'get',
dataType: 'json',
success: function (data) {
if (data.result == false) {
$('#result').text("Kontonummer nicht richtig");
} else if (data.result == true) {
$('#result').text("Kontonummer richtig");
} else if (data == null) {
$('#result').text("Fehler bei der Anfrage");
} else {
$('#result').text("Fehler bei der Anfrage");
}
},
 
});
}
 
function loadWidget(obj) {
var container = $('<div></div>');
var accountNumberLabel = $('<label></label>').attr("for", "accountNumber").text("Kontonummer:");
var bankCodeLabel = $('<label></label>').attr("for", "bankCode").text("Bankleitzahl:");
var accountNumber = $('<input />').attr("type", "text").attr("id", "accountNumber");
var bankCode = $('<input />').attr("type", "text").attr("id", "bankCode");
var button = $('<input />').attr("type", "button").attr("id", "submit").attr("value", "Test").on("click", function () {
load($('#bankCode').val(),$('#accountNumber').val());
});
var result = $('<div id="result">Result</div>');
 
container.append(bankCodeLabel);
container.append(bankCode);
 
container.append(accountNumberLabel);
container.append(accountNumber);
 
container.append(button);
 
obj.append(container);
obj.append(result);
 
}
 
 
$(document).ready(function () {
loadCSS(fantCssURL);
loadWidget($('#fantWidget'));
});
/* 
Created on : 15.03.2015, 14:28:09
Author     : Markus Potthast <mpt@detecmedia.de>
*/
 
 
 
#fantWidget {
 
}
#fantWidget input {
margin: 0 10px;
}

Hier der Beispiel-Code der in die HTML-Seite integriert wird.

<div id="fantWidget"></div>
 
<script src="/fant/fantWidget.js"></script>
<script>
var serviceURL= "fantService.php";
var fantCssURL = "fantWidget.css";
</script>

Was der komplette Code ergibt seht ihr hier.

Das Widget zum Kontonummer prüfen


Donwload des Widget wie er hier gezeigt wird demo.zip

Der Senior Software Developer im Angestelltenverhältnis hat zum Hauptthema natürlich die Programmierung und Entwicklung von Webanwendungen. Gelegentlich finden sich hier auch Krazy Netzfundstücke.

Über Markus Potthast 54 Artikel
Der Senior Software Developer im Angestelltenverhältnis hat zum Hauptthema natürlich die Programmierung und Entwicklung von Webanwendungen. Gelegentlich finden sich hier auch Krazy Netzfundstücke.

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.