Move google play listener in place

This commit is contained in:
David Bomba 2023-02-17 15:46:07 +11:00
parent 93a9e207ee
commit d4943703c8
4 changed files with 69 additions and 22 deletions

View File

@ -59,8 +59,5 @@ class AppStoreRenewSubscription implements ShouldQueue
$account->save(); $account->save();
// $server_notification = $event->getServerNotification();
// $subscription = $event->getSubscription();
// $subscription_identifier = $event->getSubscriptionIdentifier();
} }
} }

View File

@ -0,0 +1,49 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Listeners\Subscription;
use Carbon\Carbon;
use App\Models\Account;
use App\Models\Company;
use App\Libraries\MultiDB;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Notifications\Ninja\RenewalFailureNotification;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRenewed;
class PlayStoreRenewSubscription implements ShouldQueue
{
public function handle(SubscriptionRenewed $event)
{
$notification = $event->getServerNotification();
nlog("google");
nlog($notification);
$in_app_identifier = $event->getSubscriptionIdentifier();
MultiDB::findAndSetDbByInappTransactionId($in_app_identifier);
$expirationTime = $event->getSubscription()->getExpiryTime();
$account = Account::where('inapp_transaction_id', $in_app_identifier)->first();
if ($account) {
$account->update(['plan_expires' => Carbon::parse($expirationTime)]);
}
if (!$account) {
$ninja_company = Company::on('db-ninja-01')->find(config('ninja.ninja_default_company_id'));
$ninja_company->notification(new RenewalFailureNotification("{$in_app_identifier}"))->ninja();
return;
}
}
}

View File

@ -23,7 +23,7 @@ class RenewalFailureNotification extends Notification
* @return void * @return void
*/ */
public function __construct(protected string $notification_message) public function __construct(protected ?string $notification_message)
{ {
} }

View File

@ -1,30 +1,31 @@
<?php <?php
use App\Listeners\Subscription\AppStoreRenewSubscription;
use Imdhemy\Purchases\Events\AppStore\Cancel; use Imdhemy\Purchases\Events\AppStore\Cancel;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalPref;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalStatus;
use Imdhemy\Purchases\Events\AppStore\DidFailToRenew;
use Imdhemy\Purchases\Events\AppStore\DidRecover;
use Imdhemy\Purchases\Events\AppStore\DidRenew;
use Imdhemy\Purchases\Events\AppStore\InitialBuy;
use Imdhemy\Purchases\Events\AppStore\InteractiveRenewal;
use Imdhemy\Purchases\Events\AppStore\PriceIncreaseConsent;
use Imdhemy\Purchases\Events\AppStore\Refund; use Imdhemy\Purchases\Events\AppStore\Refund;
use Imdhemy\Purchases\Events\AppStore\Revoke; use Imdhemy\Purchases\Events\AppStore\Revoke;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionCanceled; use Imdhemy\Purchases\Events\AppStore\DidRenew;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionDeferred; use Imdhemy\Purchases\Events\AppStore\DidRecover;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionExpired; use Imdhemy\Purchases\Events\AppStore\InitialBuy;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionInGracePeriod; use Imdhemy\Purchases\Events\AppStore\DidFailToRenew;
use App\Listeners\Subscription\AppStoreRenewSubscription;
use Imdhemy\Purchases\Events\AppStore\InteractiveRenewal;
use App\Listeners\Subscription\PlayStoreRenewSubscription;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalPref;
use Imdhemy\Purchases\Events\AppStore\PriceIncreaseConsent;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionOnHold; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionOnHold;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPaused; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPaused;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPauseScheduleChanged; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionExpired;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPriceChangeConfirmed; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRenewed;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRevoked;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalStatus;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionCanceled;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionDeferred;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPurchased; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPurchased;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRecovered; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRecovered;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRenewed;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRestarted; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRestarted;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRevoked; use Imdhemy\Purchases\Events\GooglePlay\SubscriptionInGracePeriod;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPauseScheduleChanged;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPriceChangeConfirmed;
return [ return [
'routing' => [], 'routing' => [],
@ -40,7 +41,7 @@ return [
* -------------------------------------------------------- * --------------------------------------------------------
*/ */
SubscriptionPurchased::class => [], SubscriptionPurchased::class => [],
SubscriptionRenewed::class => [], SubscriptionRenewed::class => [PlayStoreRenewSubscription::class],
SubscriptionInGracePeriod::class => [], SubscriptionInGracePeriod::class => [],
SubscriptionExpired::class => [], SubscriptionExpired::class => [],
SubscriptionCanceled::class => [], SubscriptionCanceled::class => [],