From 3b6a4b75385a44074085f7bd26a61077ef85acb2 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 14 May 2022 07:54:19 +1000 Subject: [PATCH] Minor fixes for Stripe connect webhooks --- app/Jobs/Mail/NinjaMailerJob.php | 5 +++-- app/PaymentDrivers/StripePaymentDriver.php | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/Jobs/Mail/NinjaMailerJob.php b/app/Jobs/Mail/NinjaMailerJob.php index c128088de30d..80487f24912d 100644 --- a/app/Jobs/Mail/NinjaMailerJob.php +++ b/app/Jobs/Mail/NinjaMailerJob.php @@ -131,7 +131,7 @@ class NinjaMailerJob implements ShouldQueue $response = $e->getResponse(); $message_body = json_decode($response->getBody()->getContents()); - if(property_exists($message_body, 'Message')){ + if($message_body && property_exists($message_body, 'Message')){ $message = $message_body->Message; nlog($message); } @@ -268,9 +268,10 @@ class NinjaMailerJob implements ShouldQueue return false; /* On the hosted platform, if the user is over the email quotas, we do not send the email. */ - if(Ninja::isHosted() && $this->company->account->emailQuotaExceeded()) + if(Ninja::isHosted() && $this->company->account && $this->company->account->emailQuotaExceeded()) return true; + /* Ensure the user has a valid email address */ if(!str_contains($this->nmo->to_user->email, "@")) return true; diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index 731f254d6c2a..7f0537fe3503 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -601,9 +601,14 @@ class StripePaymentDriver extends BaseDriver } } elseif ($request->type === 'source.chargeable') { + $this->init(); foreach ($request->data as $transaction) { + + if(!$request->data['object']['amount'] || empty($request->data['object']['amount'])) + continue; + $charge = \Stripe\Charge::create([ 'amount' => $request->data['object']['amount'], 'currency' => $request->data['object']['currency'], @@ -619,6 +624,7 @@ class StripePaymentDriver extends BaseDriver ->orWhere('transaction_reference', $transaction['id']); }) ->first(); + if ($payment) { $payment->status_id = Payment::STATUS_COMPLETED; $payment->save();