diff --git a/app/Helpers/Bank/Nordigen/Nordigen.php b/app/Helpers/Bank/Nordigen/Nordigen.php index 2cef264335c6..ae060d860c4b 100644 --- a/app/Helpers/Bank/Nordigen/Nordigen.php +++ b/app/Helpers/Bank/Nordigen/Nordigen.php @@ -52,12 +52,12 @@ class Nordigen } // requisition-section - public function createRequisition(string $redirect, string $initutionId, string $reference) + public function createRequisition(string $redirect, string $initutionId, string $reference, string $userLanguage) { if ($this->test_mode && $initutionId != $this->sandbox_institutionId) throw new \Exception('invalid institutionId while in test-mode'); - return $this->client->requisition->createRequisition($redirect, $initutionId, null, $reference); + return $this->client->requisition->createRequisition($redirect, $initutionId, null, $reference, $userLanguage); } public function getRequisition(string $requisitionId) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 30e511d67aec..0850b7f59214 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -113,8 +113,8 @@ class TransactionTransformer implements BankRevenueInterface 'transaction_id' => $transaction["transactionId"], 'amount' => abs((int) $transaction["transactionAmount"]["amount"]), 'currency_id' => $this->convertCurrency($transaction["transactionAmount"]["currency"]), - 'category_id' => null, // nordigen has no categories - 'category_type' => array_key_exists('additionalInformation', $transaction) ? $transaction["additionalInformation"] : null, // TODO: institution specific keys like: GUTSCHRIFT, ABSCHLUSS, MONATSABSCHLUSS etc + 'category_id' => null, + 'category_type' => array_key_exists('additionalInformation', $transaction) ? $transaction["additionalInformation"] : '', 'date' => $transaction["bookingDate"], 'description' => $description, 'participant' => $participant, diff --git a/app/Http/Controllers/Bank/NordigenController.php b/app/Http/Controllers/Bank/NordigenController.php index 72292b5ff561..ce9e56a2d9f6 100644 --- a/app/Http/Controllers/Bank/NordigenController.php +++ b/app/Http/Controllers/Bank/NordigenController.php @@ -34,7 +34,8 @@ class NordigenController extends BaseController /** @var array $context */ $context = $request->getTokenContent(); - $lang = $data['lang'] ?? 'en'; + $company = $request->getCompany(); + $lang = $company->locale(); $context["lang"] = $lang; if (!$context) @@ -87,7 +88,7 @@ class NordigenController extends BaseController // redirect to requisition flow try { - $requisition = $nordigen->createRequisition(config('ninja.app_url') . '/nordigen/confirm', $data['institution_id'], $request->token); + $requisition = $nordigen->createRequisition(config('ninja.app_url') . '/nordigen/confirm', $data['institution_id'], $request->token, $lang); } catch (NordigenException $e) { // TODO: property_exists returns null in these cases... => why => therefore we just get unknown error everytime $responseBody is typeof GuzzleHttp\Psr7\Stream $responseBody = (string) $e->getResponse()->getBody(); @@ -135,12 +136,14 @@ class NordigenController extends BaseController public function confirm(ConfirmNordigenBankIntegrationRequest $request) { $data = $request->all(); - + $company = $request->getCompany(); + $account = $company->account; + $lang = $company->locale(); + /** @var array $context */ $context = $request->getTokenContent(); if (!array_key_exists('lang', $data) && $context['lang'] != 'en') - return redirect()->route('nordigen.confirm', array_merge(["lang" => $context['lang']], $request->query())); // redirect is required in order for the bank-ui to display everything properly - $lang = $data['lang'] ?? 'en'; + return redirect()->route('nordigen.confirm', array_merge(["lang" => $context['lang']], $request->query())); if (!$context || $context["context"] != "nordigen" || !array_key_exists("requisitionId", $context)) return view('bank.nordigen.handler', [ @@ -149,9 +152,6 @@ class NordigenController extends BaseController "redirectUrl" => ($context && array_key_exists("redirect", $context) ? $context["redirect"] : config('ninja.app_url')) . "?action=nordigen_connect&status=failed&reason=ref-invalid", ]); - $company = $request->getCompany(); - $account = $company->account; - if (!(config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key'))) return view('bank.nordigen.handler', [ 'lang' => $lang,