From d1f8b6fa86ed35562978b9afd2f6dc8965d3b007 Mon Sep 17 00:00:00 2001 From: sayliraut Date: Fri, 2 Aug 2024 11:25:33 +0530 Subject: [PATCH] changes --- .../Customer_API/CustomerControllerApi.php | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/APIs/Customer_API/CustomerControllerApi.php b/app/Http/Controllers/APIs/Customer_API/CustomerControllerApi.php index 3c4214d..c4ea730 100644 --- a/app/Http/Controllers/APIs/Customer_API/CustomerControllerApi.php +++ b/app/Http/Controllers/APIs/Customer_API/CustomerControllerApi.php @@ -12,6 +12,8 @@ use Carbon\Carbon; use Tymon\JWTAuth\Facades\JWTAuth; use Illuminate\Support\Facades\Session; use Illuminate\Http\Request; +use App\Models\Subscriptions; +use Stripe\Subscription; class CustomerControllerApi extends Controller { @@ -168,7 +170,42 @@ class CustomerControllerApi extends Controller if ($token) { $iamPrincipalId = $token['sub']; - $deleteUser = IamPrincipal::find($iamPrincipalId); + $stripeSecret = (config('constants.subscription.stripe_secret_key')); + // $stripeSecret = env('STRIPE_SECRET'); + + $stripe = new \Stripe\StripeClient($stripeSecret); + $userId = $iamPrincipalId; + + // dd($id,$stripeSecret); + + $getSubscriptionData = Subscriptions::where('iam_principal_xid', $userId)->where('subscription_status', 'active')->first(); + if ($getSubscriptionData) { + $subscriptionId = $getSubscriptionData->subscription_id; + + $cancelledSubscription = $stripe->subscriptions->update( + $subscriptionId, + ['cancel_at_period_end' => true] + ); + + $subscriptionFromDatabase = Subscriptions::where('subscription_id', $subscriptionId)->first(); + $subscriptionFromDatabase->cancelled_at = date('Y-m-d H:i:s', $cancelledSubscription->canceled_at); + + $subscriptionFromDatabase->subscription_status = $cancelledSubscription->status; + $subscriptionFromDatabase->is_cancelled_subscription = 1; + $subscriptionFromDatabase->status = "cancelled"; + + $subscriptionFromDatabase->save(); + + + $getSubscription = $stripe->subscriptions->retrieve($subscriptionFromDatabase->subscription_id, []); + + + $getSubscribeCustomer = $stripe->customers->retrieve( + $subscriptionFromDatabase->stripe_customer_id, + [] + ); + } + $deleteUser = IamPrincipal::find($userId); $deleteUser->one_signal_player_id = null; $deleteUser->save(); @@ -189,7 +226,7 @@ class CustomerControllerApi extends Controller } - /** + /** * Created By : sayli Raut * Created at : 15 July 2024 * Use : To get user subscription status. @@ -203,7 +240,6 @@ class CustomerControllerApi extends Controller $customerIamId = $token['sub']; $response = $this->CustomerApiServices->CheckSubscription($customerIamId); return jsonResponseWithSuccessMessageApi(__('auth.data_fetched_successfully'), ['is_subscribed' => $response], 200); - } else { return jsonResponseWithErrorMessageApi(__('auth.user_deleted'), 409); }