group('/idob', function () { $this->get('/betalen', function ($request, $response, $args) { $query = $request->getQueryParams(); $rekeningen = RekeningHelper::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! */ // Do overboeking Overboekingen::createOverboeking(IBAN::getIBAN($van), IBAN::getIBAN($rekening), $transactie['amount'], "Betaling aan " . $naam . " voor transactie " . $transactie['reference'], "id"); // Do Status update Transactie::setTransactionStatus($transactie['transactieId'], 2); // Do bericht BerichtenHelper::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()); } }