1
0

Finalized IDOB + small changes concerning redirects

This commit is contained in:
2017-04-02 11:50:45 +02:00
parent d982b97455
commit fe9d31a076
11 changed files with 434 additions and 71 deletions

View File

@ -21,16 +21,17 @@ class IBAN
$newword = "";
$wordarray = str_split($word);
foreach ($wordarray as $v) {
if(ctype_alpha($v)){
if (ctype_alpha($v)) {
$newword .= ord(strtolower($v)) - 87;
}else{
} else {
$newword .= $v;
}
}
return $newword;
}
private function getCheckDigits($bignum){
private function getCheckDigits($bignum)
{
//Modulo staartdeling
$modulo97 = (int)substr($bignum, 0, 6);
$modulo97 = $modulo97 % 97;
@ -46,8 +47,9 @@ class IBAN
}
return $checkdigits;
}
public function isValidIBAN($iban){
public function isValidIBAN($iban)
{
$iban = str_replace(" ", "", $iban);
$landcode = substr($iban, 0, 2);
$controle = substr($iban, 2, 2);
@ -57,19 +59,22 @@ class IBAN
$nummer = $this->wordToNumbers($identificatie);
return $controle == $this->getCheckDigits($nummer);
}
public function getRekeningNummer($iban){
public function getRekeningNummer($iban)
{
return substr(str_replace(" ", "", $iban), 8);
}
public function getBank($iban){
public function getBank($iban)
{
return substr(str_replace(" ", "", $iban), 4, 4);
}
public function getLand($iban){
public function getLand($iban)
{
return substr(str_replace(" ", "", $iban), 0, 2);
}
public function getIBAN($rekeningnr)
{
$landcode = "NL"; // NL in vertaling

View File

@ -0,0 +1,54 @@
<?php
/**
* Informatica Eindproject D4p
* 6in3, Stedelijk Gymnasium Nijmegen
* Docent: Hans de Wolf
*
* ==================
*
* Daniel Boutros,
* Christiaan Goossens,
* Jelmer Hinssen
*/
namespace Inforbank\Application\Helper\Idob;
use Inforbank\Application;
class Client
{
private $client;
public function __construct($id)
{
$container = Application::getContainer();
$db = $container->db;
$this->client = $db->idobc->where("clientId", $id)->limit(1)->fetch();
if (!$this->client) {
throw new \Exception("There is no client with this id");
}
}
public function getClientSecret()
{
return $this->client['clientSecret'];
}
public function getClientRedirectURI()
{
return $this->client['redirectUri'];
}
public function getClientName()
{
return $this->client['naam'];
}
public function getClientRekening()
{
return $this->client['rekeningnr'];
}
}

View File

@ -0,0 +1,75 @@
<?php
/**
* Informatica Eindproject D4p
* 6in3, Stedelijk Gymnasium Nijmegen
* Docent: Hans de Wolf
*
* ==================
*
* Daniel Boutros,
* Christiaan Goossens,
* Jelmer Hinssen
*/
namespace Inforbank\Application\Helper\Idob;
use Inforbank\Application;
class Transactie
{
public static function createTransactie($reference, $clientId, $amount, $description)
{
$container = Application::getContainer();
$db = $container->db;
$trans = $db->idobt->insert([
"reference" => $reference,
"clientId" => $clientId,
"amount" => $amount,
"description" => $description,
"status" => 1
]);
return $trans['id'];
}
public static function getTransactie($id)
{
$container = Application::getContainer();
$db = $container->db;
$transactie = $db->idobt->where("transactieId", $id)->limit(1)->fetch();
if (!$transactie) {
throw new \Exception("Transaction not found");
}
return array(
"transactieId" => $transactie['transactieId'],
"reference" => $transactie['reference'],
"clientId" => $transactie['clientId'],
"amount" => (double) $transactie['amount'],
"description" => $transactie['description'],
"status" => (int) $transactie['status']
);
}
public static function setTransactionStatus($id, $status)
{
$container = Application::getContainer();
$db = $container->db;
$transactie = $db->idobt->where("transactieId", $id)->limit(1);
if (!$transactie) {
throw new \Exception("Transaction not found");
}
$transactie->update(array(
"status" => $status
));
if (!$transactie) {
throw new \Exception("Failed to update status");
}
}
}

View File

@ -16,16 +16,18 @@ use Inforbank\Application;
*
* @author Sjelm
*/
class Overboekingen {
class Overboekingen
{
/**
*
*
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
* @param IBAN $naar De rekening waar het bedrag bijkomt
* @param double $bedrag Het bedrag
* @param string $omschrijving De omschrijving van de overoeking
* $param string $type Het type overboeking
*/
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type){
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type)
{
$rekeningen = Rekeningen::getCurrentUserRekeningen();
$vanRekening = false;
@ -59,7 +61,7 @@ class Overboekingen {
//TODO geldigheid bedrag onderzoeken
//$bedragValue = (double) $bedrag;
if (strlen($omschrijving) > 40) {
if (strlen($omschrijving) > 40 && $type !== "id") {
//error: te lange omschrijving
throw new Exception("De omschrijving is te lang");
}