From 0bd0c0d2a1bddc10ff820bf489d9a5b5cd41afd8 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 20 Feb 2022 19:02:57 +1100 Subject: [PATCH 1/5] Fixes for mollie webhooks with credit cards --- app/PaymentDrivers/Mollie/CreditCard.php | 12 ++++++++++++ app/Providers/MailServiceProvider.php | 2 +- app/Providers/NinjaTranslationServiceProvider.php | 1 + routes/web.php | 6 +++--- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/PaymentDrivers/Mollie/CreditCard.php b/app/PaymentDrivers/Mollie/CreditCard.php index 8a6af3dd2daf..1c96455d86ff 100644 --- a/app/PaymentDrivers/Mollie/CreditCard.php +++ b/app/PaymentDrivers/Mollie/CreditCard.php @@ -70,6 +70,12 @@ class CreditCard 'sequenceType' => 'recurring', 'description' => \sprintf('Hash: %s', $this->mollie->payment_hash->hash), 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), + 'metadata' => [ + 'client_id' => $this->mollie->client->hashed_id, + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::CREDIT_CARD, + 'payment_type_id' => PaymentType::CREDIT_CARD_OTHER, + ], ]); if ($payment->status === 'paid') { @@ -106,6 +112,12 @@ class CreditCard 'hash' => $this->mollie->payment_hash->hash, ]), 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), + 'metadata' => [ + 'client_id' => $this->mollie->client->hashed_id, + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::CREDIT_CARD, + 'payment_type_id' => PaymentType::CREDIT_CARD_OTHER, + ], 'cardToken' => $request->gateway_response, ]; diff --git a/app/Providers/MailServiceProvider.php b/app/Providers/MailServiceProvider.php index cc16f654f77e..0abea01a9dac 100644 --- a/app/Providers/MailServiceProvider.php +++ b/app/Providers/MailServiceProvider.php @@ -33,7 +33,7 @@ class MailServiceProvider extends MailProvider protected function registerIlluminateMailer() { - + //this is not octane safe $this->app->singleton('mail.manager', function($app) { return new GmailTransportManager($app); }); diff --git a/app/Providers/NinjaTranslationServiceProvider.php b/app/Providers/NinjaTranslationServiceProvider.php index 985987bc0288..7054f32514d0 100644 --- a/app/Providers/NinjaTranslationServiceProvider.php +++ b/app/Providers/NinjaTranslationServiceProvider.php @@ -33,6 +33,7 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider * */ + //this is not octane safe $this->app->singleton('translator', function ($app) { $loader = $app['translation.loader']; diff --git a/routes/web.php b/routes/web.php index f29bf383ab55..67513dc9cc9c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -41,7 +41,7 @@ Route::group(['middleware' => ['url_db']], function () { Route::get('stripe/signup/{token}', 'StripeConnectController@initialize')->name('stripe_connect.initialization'); Route::get('stripe/completed', 'StripeConnectController@completed')->name('stripe_connect.return'); -Route::get('checkout/3ds_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\Checkout3dsController@index')->name('checkout.3ds_redirect'); -Route::get('mollie/3ds_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\Mollie3dsController@index')->name('mollie.3ds_redirect'); -Route::get('gocardless/ibp_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\GoCardlessController@ibpRedirect')->name('gocardless.ibp_redirect'); +Route::get('checkout/3ds_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\Checkout3dsController@index')->middleware('domain_db')->name('checkout.3ds_redirect'); +Route::get('mollie/3ds_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\Mollie3dsController@index')->middleware('domain_db')->name('mollie.3ds_redirect'); +Route::get('gocardless/ibp_redirect/{company_key}/{company_gateway_id}/{hash}', 'Gateways\GoCardlessController@ibpRedirect')->middleware('domain_db')->name('gocardless.ibp_redirect'); Route::get('.well-known/apple-developer-merchantid-domain-association', 'ClientPortal\ApplePayDomainController@showAppleMerchantId'); From a37bf5cb70198e05211b2c40ecdddc8627b2e27d Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 20 Feb 2022 21:09:20 +1100 Subject: [PATCH 2/5] Center auth login logo --- app/Providers/MailServiceProvider.php | 9 ++++++++- app/Utils/SystemHealth.php | 2 ++ resources/views/portal/ninja2020/auth/login.blade.php | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/Providers/MailServiceProvider.php b/app/Providers/MailServiceProvider.php index 0abea01a9dac..55f0b372908e 100644 --- a/app/Providers/MailServiceProvider.php +++ b/app/Providers/MailServiceProvider.php @@ -17,6 +17,7 @@ use Coconuts\Mail\PostmarkTransport; use GuzzleHttp\Client as HttpClient; use Illuminate\Mail\MailServiceProvider as MailProvider; use Illuminate\Mail\TransportManager; +use Illuminate\Container\Container; class MailServiceProvider extends MailProvider { @@ -33,11 +34,17 @@ class MailServiceProvider extends MailProvider protected function registerIlluminateMailer() { - //this is not octane safe + // //this is not octane safe $this->app->singleton('mail.manager', function($app) { return new GmailTransportManager($app); }); + + //this is octane ready - but is untested + // $this->app->bind('mail.manager', function ($app){ + // return new GmailTransportManager($app); + // }); + $this->app->bind('mailer', function ($app) { return $app->make('mail.manager')->mailer(); }); diff --git a/app/Utils/SystemHealth.php b/app/Utils/SystemHealth.php index b6ae0d3c880c..2b510d8c5c08 100644 --- a/app/Utils/SystemHealth.php +++ b/app/Utils/SystemHealth.php @@ -164,6 +164,8 @@ class SystemHealth private static function extensions(): array { + $loaded_extensions = null; + $loaded_extensions = []; foreach (self::$extensions as $extension) { diff --git a/resources/views/portal/ninja2020/auth/login.blade.php b/resources/views/portal/ninja2020/auth/login.blade.php index 5fbc2a052730..44fdaf5d3975 100644 --- a/resources/views/portal/ninja2020/auth/login.blade.php +++ b/resources/views/portal/ninja2020/auth/login.blade.php @@ -26,7 +26,7 @@ @elseif(isset($company) && !is_null($company))
{{ $company->present()->name() }} logo + class="mx-auto border-b border-gray-100 h-18 pb-4" alt="{{ $company->present()->name() }} logo">
@endif From 291b0c5669ba0a4201658ffbf9b5fed8508b5d7c Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 21 Feb 2022 07:41:13 +1100 Subject: [PATCH 3/5] Revert for markdown parser --- app/Utils/Helpers.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Utils/Helpers.php b/app/Utils/Helpers.php index 6f633612e4f8..ca4a7e5d5b7f 100644 --- a/app/Utils/Helpers.php +++ b/app/Utils/Helpers.php @@ -262,9 +262,11 @@ class Helpers } } - $x = str_replace(["\n", "
"], ["\r", "
"], $value); + return $value; - return $x; + // $x = str_replace(["\n", "
"], ["\r", "
"], $value); + + // return $x; } /** From ce0bcd494d7fe951bb429e3c59c6cb622d2fb3ed Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 21 Feb 2022 07:51:49 +1100 Subject: [PATCH 4/5] Revert for gateway query --- app/Services/Client/PaymentMethod.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/Services/Client/PaymentMethod.php b/app/Services/Client/PaymentMethod.php index 4a18387d2215..f36fb2b2d3db 100644 --- a/app/Services/Client/PaymentMethod.php +++ b/app/Services/Client/PaymentMethod.php @@ -70,16 +70,16 @@ class PaymentMethod $transformed_ids = $this->transformKeys(explode(',', $company_gateways)); - $this->gateways = - CompanyGateway::with('gateway') - ->where('company_id', $this->client->company_id) + $this->gateways = $this->client + ->company + ->company_gateways ->whereIn('id', $transformed_ids) ->where('is_deleted', false) ->whereNull('deleted_at') ->where('gateway_key', '!=', '54faab2ab6e3223dbe848b1686490baa') ->sortby(function ($model) use ($transformed_ids) { //company gateways are sorted in order of priority return array_search($model->id, $transformed_ids);// this closure sorts for us - })->get(); + }); } else { @@ -105,15 +105,16 @@ class PaymentMethod $transformed_ids = $this->transformKeys(explode(',', $company_gateways)); - $this->gateways = CompanyGateway::with('gateway') - ->where('company_id', $this->client->company_id) + $this->gateways = $this->client + ->company + ->company_gateways ->whereIn('id', $transformed_ids) ->where('is_deleted', false) ->whereNull('deleted_at') ->where('gateway_key', '54faab2ab6e3223dbe848b1686490baa') ->sortby(function ($model) use ($transformed_ids) { //company gateways are sorted in order of priority return array_search($model->id, $transformed_ids);// this closure sorts for us - })->get(); + }); } else { From 091ad58bb37318f983146e0c21ee004f4852f66b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 21 Feb 2022 08:35:03 +1100 Subject: [PATCH 5/5] Format due date in client portal --- resources/views/portal/ninja2020/invoices/payment.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/portal/ninja2020/invoices/payment.blade.php b/resources/views/portal/ninja2020/invoices/payment.blade.php index a3969763b6e5..b45fd4435575 100644 --- a/resources/views/portal/ninja2020/invoices/payment.blade.php +++ b/resources/views/portal/ninja2020/invoices/payment.blade.php @@ -78,7 +78,7 @@ {{ ctrans('texts.due_date') }}
- {{ $invoice->due_date }} + {{ $invoice->translateDate($invoice->due_date, $invoice->client->date_format(), $invoice->client->locale()) }}
@endif