Файловый менеджер - Редактировать - /home/clickysoft/public_html/somni.clickysoft.net/app/Http/Controllers/SubscriptionController.php
Назад
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Repositories\LandlordRepository; use App\Repositories\UserRepository; use App\Repositories\SubscriptionRepository; use App\Repositories\PropertyRepository; use App\Repositories\TenantRepository; use App\Repositories\NotificationRepository; use App\Repositories\TransactionRepository; use App\Repositories\PaymentRepository; use App\Interfaces\LandlordRepositoryInterface; use App\Interfaces\SubscriptionRepositoryInterface; use App\Interfaces\UserRepositoryInterface; use App\Interfaces\PropertyRepositoryInterface; use App\Interfaces\NotificationRepositoryInterface; use App\Interfaces\TransactionRepositoryInterface; use App\Interfaces\PaymentRepositoryInterface; class SubscriptionController extends Controller { private LandlordRepositoryInterface $landlordInterfaceObj; private UserRepositoryInterface $userInterfaceObj; private SubscriptionRepositoryInterface $subscriptionInterfaceObj; private NotificationRepositoryInterface $notificationInterfaceObj; private TransactionRepositoryInterface $transactionInterfaceObj; private PaymentRepositoryInterface $paymentInterfaceObj; public function __construct(PaymentRepository $paymentRepo ,TransactionRepository $transactionRepo,UserRepository $userRepo,LandlordRepository $landlordRepo, SubscriptionRepository $subscriptionRepo, NotificationRepository $notificationRepo){ $this->landlordInterfaceObj = $landlordRepo; $this->userInterfaceObj = $userRepo; $this->subscriptionInterfaceObj = $subscriptionRepo; $this->notificationInterfaceObj = $notificationRepo; $this->transactionInterfaceObj = $transactionRepo; $this->paymentInterfaceObj = $paymentRepo; } public function cancelSubscription(Request $request){ try { if($request->package_id != config('constants.subscriptions.free')){ $package = $this->subscriptionInterfaceObj->getPackageById($request->package_id); $user = auth()->user(); $user->subscription('Basic')->cancel(); // Subscription is canceled $methods = $user->paymentMethods(); $user->newSubscription('Free',config('constants.stripe_price_id.free'))->create($methods[0]->id); return back()->with('success','Subscription Downgraded'); }else{ return back()->with('error','Can not Cancel Basic Plan'); } } catch (\Throwable $th) { \Log::info('subscription Error ',[$th]); return back()->with('error',$th->getMessage()); } } public function newSubscription(Request $request){ try { $user = auth()->user(); $package = $this->subscriptionInterfaceObj->getPackageById($request->package_id); $user->subscription('Free')->cancelNow(); $user->newSubscription($package->package_name, $package->stripe_price_id)->create($request->paymentMethodId); $transaction = $this->transactionInterfaceObj->createTransaction($user->id, null, $package->price_monthly, 'paid', 'Subscription Bought', null, '', null, null, null, 'subscription_payment'); return back()->with('success','Subscription Bought'); } catch (\Throwable $th) { \Log::info('subscription Error ',[$th]); return back()->with('error',$th->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка