Finalized IDOB + small changes concerning redirects
This commit is contained in:
103
src/Application/Idob.php
Normal file
103
src/Application/Idob.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Informatica Eindproject D4p
|
||||
* 6in3, Stedelijk Gymnasium Nijmegen
|
||||
* Docent: Hans de Wolf
|
||||
*
|
||||
* ==================
|
||||
*
|
||||
* Daniel Boutros,
|
||||
* Christiaan Goossens,
|
||||
* Jelmer Hinssen
|
||||
*/
|
||||
|
||||
namespace Inforbank\Application;
|
||||
|
||||
use \Slim\App;
|
||||
use Inforbank\Application\Auth\Middleware;
|
||||
use Inforbank\Application\Helper\Header;
|
||||
use Inforbank\Application\Helper\Idob\Transactie;
|
||||
use Inforbank\Application\Helper\Idob\Client;
|
||||
use Inforbank\Application\Helper\Rekeningen;
|
||||
use Inforbank\Application\Helper\Berichten;
|
||||
use Inforbank\Application\Helper\Overboekingen;
|
||||
use Inforbank\Application\Helper\Redirect;
|
||||
use Inforbank\Application\Helper\IBAN;
|
||||
|
||||
class Idob
|
||||
{
|
||||
public function __construct(App $app)
|
||||
{
|
||||
/**
|
||||
* Create the API route group
|
||||
*/
|
||||
$app->group('/idob', function () {
|
||||
$this->get('/betalen', function ($request, $response, $args) {
|
||||
$query = $request->getQueryParams();
|
||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||
|
||||
try {
|
||||
$transactie = Transactie::getTransactie($query['trxid']);
|
||||
$client = new Client($transactie['clientId']);
|
||||
$naam = $client->getClientName();
|
||||
} catch (\Exception $e) {
|
||||
$transactie = false;
|
||||
}
|
||||
|
||||
return $this->renderer->render($response, 'idob.phtml', [
|
||||
'header' => Header::getHeaderData(),
|
||||
'transactie' => $transactie,
|
||||
'webwinkel' => $naam,
|
||||
'rekeningen' => $rekeningen
|
||||
]);
|
||||
});
|
||||
|
||||
$this->get('/mislukt', function ($request, $response, $args) {
|
||||
return $this->renderer->render($response, 'idobmislukt.phtml', [
|
||||
'header' => Header::getHeaderData()
|
||||
]);
|
||||
});
|
||||
|
||||
$this->post('/betalen', function ($request, $response, $args) {
|
||||
$query = $request->getQueryParams();
|
||||
$post = $request->getParsedBody();
|
||||
$van = $post['van'];
|
||||
|
||||
try {
|
||||
$transactie = Transactie::getTransactie($query['trxid']);
|
||||
$client = new Client($transactie['clientId']);
|
||||
$redirectUri = $client->getClientRedirectURI();
|
||||
$rekening = $client->getClientRekening();
|
||||
$naam = $client->getClientName();
|
||||
|
||||
try {
|
||||
/**
|
||||
* All set to pay!
|
||||
*/
|
||||
$ibanhelper = new IBAN();
|
||||
|
||||
// Do overboeking
|
||||
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $ibanhelper->getIBAN($rekening), $transactie['amount'], "Betaling aan " . $naam . " voor transactie " . $transactie['reference'], "id");
|
||||
|
||||
// Do Status update
|
||||
Transactie::setTransactionStatus($transactie['transactieId'], 2);
|
||||
|
||||
// Do bericht
|
||||
Berichten::newBericht($this->auth->getUserID(), $naam, "Betaling met transactiereferentie " . $transactie['reference'] . " gelukt.");
|
||||
|
||||
$response = $response->withStatus(302);
|
||||
$response = $response->withHeader('Location', $redirectUri . "?trxid=".$transactie['transactieId']);
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
$response = $response->withStatus(302);
|
||||
$response = $response->withHeader('Location', $redirectUri . "?error=".$e->getMessage());
|
||||
return $response;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return Redirect::create($request, $response, "/idob/mislukt");
|
||||
}
|
||||
});
|
||||
})->add(new Middleware());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user