From 29d56f69d59650bee4f5f482d37bb8fbff58fcf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 26 Aug 2021 15:38:28 +0200 Subject: [PATCH] Frontend for authorizing ACH --- app/PaymentDrivers/BraintreePaymentDriver.php | 15 +- .../braintree/ach/authorize.blade.php | 149 ++++++++++++++++++ 2 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 resources/views/portal/ninja2020/gateways/braintree/ach/authorize.blade.php diff --git a/app/PaymentDrivers/BraintreePaymentDriver.php b/app/PaymentDrivers/BraintreePaymentDriver.php index 7c0cdd278685..ca22ca6f4f68 100644 --- a/app/PaymentDrivers/BraintreePaymentDriver.php +++ b/app/PaymentDrivers/BraintreePaymentDriver.php @@ -23,6 +23,7 @@ use App\Models\Payment; use App\Models\PaymentHash; use App\Models\PaymentType; use App\Models\SystemLog; +use App\PaymentDrivers\Braintree\ACH; use App\PaymentDrivers\Braintree\CreditCard; use App\PaymentDrivers\Braintree\PayPal; use Braintree\Gateway; @@ -45,6 +46,7 @@ class BraintreePaymentDriver extends BaseDriver public static $methods = [ GatewayType::CREDIT_CARD => CreditCard::class, GatewayType::PAYPAL => PayPal::class, + GatewayType::BANK_TRANSFER => ACH::class, ]; const SYSTEM_LOG_TYPE = SystemLog::TYPE_BRAINTREE; @@ -72,9 +74,10 @@ class BraintreePaymentDriver extends BaseDriver { $types = [ GatewayType::PAYPAL, - GatewayType::CREDIT_CARD + GatewayType::CREDIT_CARD, + GatewayType::BANK_TRANSFER, ]; - + return $types; } @@ -125,9 +128,9 @@ class BraintreePaymentDriver extends BaseDriver $this->init(); try{ - + $response = $this->gateway->transaction()->refund($payment->transaction_reference, $amount); - + } catch (Exception $e) { $data = [ @@ -137,12 +140,12 @@ class BraintreePaymentDriver extends BaseDriver 'description' => $e->getMessage(), 'code' => $e->getCode(), ]; - + SystemLogger::dispatch(['server_response' => null, 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_BRAINTREE, $this->client, $this->client->company); return $data; } - + if($response->success) { diff --git a/resources/views/portal/ninja2020/gateways/braintree/ach/authorize.blade.php b/resources/views/portal/ninja2020/gateways/braintree/ach/authorize.blade.php new file mode 100644 index 000000000000..ba2e9357ba9a --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/braintree/ach/authorize.blade.php @@ -0,0 +1,149 @@ +@extends('portal.ninja2020.layout.payments', ['gateway_title' => 'ACH', 'card_title' => 'ACH']) + +@section('gateway_head') + +@endsection + +@section('gateway_content') + @if(session()->has('ach_error')) +
+

{{ session('ach_error') }}

+
+ @endif + +
+ @csrf + + + + + + +
+ + + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.account_type')]) + + + {{ __('texts.checking') }} + + + + {{ __('texts.savings') }} + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.account_holder_type')]) + + + {{ __('texts.individual_account') }} + + + + {{ __('texts.company_account') }} + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.account_holder_name')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.account_number')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.routing_number')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.address1')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.address2')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.locality')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.state')]) + + @endcomponent + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.postal_code')]) + + @endcomponent + + @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-bank-account']) + {{ ctrans('texts.add_payment_method') }} + @endcomponent +@endsection + +@section('gateway_footer') + + + + +@endsection