From ec144b41819e12a3163ffb04924b3055054fae32 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 9 Aug 2024 15:39:16 +1000 Subject: [PATCH] Fixes for Rotessa --- app/PaymentDrivers/Rotessa/PaymentMethod.php | 13 +++++++++++-- app/PaymentDrivers/RotessaPaymentDriver.php | 13 +++++++++---- .../ninja2020/payment_methods/index.blade.php | 11 +++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php index 3e617f76f963..4883490319e7 100755 --- a/app/PaymentDrivers/Rotessa/PaymentMethod.php +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -100,8 +100,17 @@ class PaymentMethod implements MethodInterface $customer = array_merge(['address' => $request->only('address_1','address_2','city','postal_code','province_code','country'), 'custom_identifier' => $request->input('custom_identifier') ], $request->all()); - $this->rotessa->findOrCreateCustomer($customer); - + try{ + $this->rotessa->findOrCreateCustomer($customer); + } + catch(\Exception $e){ + + $message = json_decode($e->getMessage(), true); + + return redirect()->route('client.payment_methods.index')->withErrors(array_values($message['errors'])); + + } + return redirect()->route('client.payment_methods.index')->withMessage(ctrans('texts.payment_method_added')); } diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index 040a8c65e935..e52b206e9823 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -202,7 +202,6 @@ class RotessaPaymentDriver extends BaseDriver public function findOrCreateCustomer(array $data) { - nlog($data); $result = null; try { @@ -219,7 +218,6 @@ class RotessaPaymentDriver extends BaseDriver if(!isset($data['id'])) { - nlog("no id, lets goo"); $result = $this->gatewayRequest('post', 'customers', $data); if($result->failed()) @@ -252,9 +250,16 @@ class RotessaPaymentDriver extends BaseDriver 'code' => 500 ]; - SystemLogger::dispatch(['server_response' => is_null($result) ? '' : $result->getMessage(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client, $this->company_gateway->company); + SystemLogger::dispatch(['server_response' => $data, 'data' => []], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client, $this->company_gateway->company); - throw $th; + try{ + $errors = explode("422:", $th->getMessage())[1]; + } + catch(\Exception){ + $errors = 'Unknown error occured'; + } + + throw new \Exception($errors, $th->getCode()); } } diff --git a/resources/views/portal/ninja2020/payment_methods/index.blade.php b/resources/views/portal/ninja2020/payment_methods/index.blade.php index 8bdde30840f7..9e73a95b3e36 100644 --- a/resources/views/portal/ninja2020/payment_methods/index.blade.php +++ b/resources/views/portal/ninja2020/payment_methods/index.blade.php @@ -2,6 +2,17 @@ @section('meta_title', ctrans('texts.payment_methods')) @section('body') + + @section('header') + @if($errors->any()) +
+ @foreach($errors->all() as $error) +

{{ $error }}

+ @endforeach +
+ @endif + @endsection +
@livewire('payment-methods-table', ['client_id' => $client->id, 'db' => $company->db])