I found more on this issue from usenet:
http://groups-beta.google.com/groups?q=viitenumero+php
specially thread:
http://groups-beta.google.com/group/sfnet....b6ebaee4d931352
The above mentioned URL has already expired, but the wayback machine at web.archive.org had archived the page. Here is the source for calculating bank reference number (viitenumero) in PHP (credits for Kari Lavikka). If you manage to tweak this into pre-payment module, please share your code here!
<?php
function viiteTarkistusNumero($sViite) {
// (c) Kari Lavikka <tuner@bdb.fi>
// Ruutiinia saa vapaasti käyttää ja kopioida kunhan tämä
// kommentti säilytetään funktion määrittelyssä.
$iKerroin = 7;
$iSumma = 0;
if (strlen($sViite) > 19) {
return "Viitenumero on liian pitkä! Maksimipituus on 19 + 1 merkkiä.";
} else if (strlen($sViite) == 0) {
return "";
}
if (!is_numeric($sViite)) {
return "Viitenumerossa on virheellisiä merkkejä!";
}
for ($iLaskuri = strlen($sViite); $iLaskuri > 0; $iLaskuri--) {
$iSumma += substr($sViite, $iLaskuri - 1, 1) * $iKerroin;
switch ($iKerroin) {
case 7:
$iKerroin = 3;
break;
case 3:
$iKerroin = 1;
break;
case 1:
$iKerroin = 7;
break;
}
}
$iSumma = substr(10 - ($iSumma % 10), -1);
settype($iSumma, "integer");
return $iSumma;
}
?>
<html>
<head>
<title>
Viitenumeron tarkistusnumerogeneraattori
</title>
<meta name="keywords" content="viitenumero, tarkistusnumero, rutiini, php, lähdekoodi" />
<style type="text/css">BODY { margin: 1cm; font-family: sans-serif; }</style>
</head>
<body>
<h1>Viitenumeron tarkistusnumerogeneraattori</h1>
<form action="viitenumero.php" method="get">
<p>Kirjoita alla olevaan kenttään viitenumeron alkuosa. Painettuasi "Laske!" nappulaa, tarkistusnumerolla varustettu viitenumero ilmestyy tekstikentän alapuolelle.</p>
<p>
<input type="text" name="viite">
<input type="submit" value="laske!">
</p><p>
<?php
$numero = viiteTarkistusNumero($HTTP_GET_VARS["viite"]);
if (is_numeric($numero)) {
echo $HTTP_GET_VARS["viite"]."<strong>" . $numero . "</strong>";
} else {
echo "<i>" . $numero . "</i>";
}
?>
</p>
</form>
<hr />
<p>© <a href="/~tuner/">Kari Lavikka</a> -
Tiedoston php lähdekoodi: <a href="viitenumero.phps">viitenumero.phps</a> -
Vastaava funktio Visual Basic muodossa: <a href="viitenumero.bas">viitenumero.bas</a></p>
</body>
</html>