subscription webhook updated
This commit is contained in:
@@ -142,8 +142,8 @@ class StripeWebhookController extends Controller
|
||||
$referralUserSubscriptionData->current_period_start = date('Y-m-d H:i:s', $SubscriptionObject->current_period_start);
|
||||
$referralUserSubscriptionData->current_period_end = date('Y-m-d H:i:s', $SubscriptionObject->current_period_end);
|
||||
$referralUserSubscriptionData->next_payment_date = date('Y-m-d H:i:s', $upcoming_invoice->next_payment_attempt);
|
||||
$referralUserSubscriptionData->next_invoice_amount = $upcoming_invoice->amount_due / 100;
|
||||
|
||||
$referralUserSubscriptionData->next_invoice_amount = $upcoming_invoice->amount_due / 100;
|
||||
|
||||
$referralUserSubscriptionData->save();
|
||||
|
||||
Log::info("Referral User Subscription Updated with Referral");
|
||||
@@ -192,7 +192,7 @@ class StripeWebhookController extends Controller
|
||||
'status' => 'complete',
|
||||
'next_payment_date' => date('Y-m-d H:i:s', $upcoming_invoice->next_payment_attempt),
|
||||
'next_invoice_amount' => $upcoming_invoice->amount_due / 100
|
||||
|
||||
|
||||
|
||||
]
|
||||
);
|
||||
@@ -230,8 +230,8 @@ class StripeWebhookController extends Controller
|
||||
$newUserSubscriptionDetails->current_period_start = date('Y-m-d H:i:s', $SubscriptionObject->current_period_start);
|
||||
$newUserSubscriptionDetails->current_period_end = date('Y-m-d H:i:s', $SubscriptionObject->current_period_end);
|
||||
$newUserSubscriptionDetails->next_payment_date = date('Y-m-d H:i:s', $upcoming_invoice->next_payment_attempt);
|
||||
$newUserSubscriptionDetails->next_invoice_amount = $upcoming_invoice->amount_due / 100;
|
||||
|
||||
$newUserSubscriptionDetails->next_invoice_amount = $upcoming_invoice->amount_due / 100;
|
||||
|
||||
$newUserSubscriptionDetails->save();
|
||||
|
||||
Log::info("new User Subscription Updated with Referral");
|
||||
@@ -272,6 +272,71 @@ class StripeWebhookController extends Controller
|
||||
//end
|
||||
}
|
||||
|
||||
if ($event->type === 'invoice.payment_succeeded') {
|
||||
|
||||
try {
|
||||
|
||||
DB::beginTransaction();
|
||||
$invoice = $event->data->object;
|
||||
|
||||
$metadata = $invoice->metadata;
|
||||
|
||||
//
|
||||
$productID = $invoice->lines->data[0]->price->product;
|
||||
$subscriptionProductData = SubscriptionProducts::where('stripe_product_id', $productID)->first();
|
||||
|
||||
$customerID = $invoice->customer;
|
||||
|
||||
$subscriptionId = $invoice->lines->data[0]->subscription;
|
||||
|
||||
$subscriptionObject = $stripe->subscriptions->retrieve($subscriptionId, []);
|
||||
|
||||
$upcoming_invoice = $stripe->invoices->upcoming([
|
||||
'subscription' => $subscriptionId, // use retrieved id from subscription
|
||||
]);
|
||||
|
||||
|
||||
$isCustomerStoredInSubscriptionTable = Subscriptions::where('stripe_customer_id', $customerID)->first();
|
||||
if ($isCustomerStoredInSubscriptionTable == null) {
|
||||
return response('Webhook received at null ', 200);
|
||||
}
|
||||
|
||||
$subscriptionInDatabase = Subscriptions::where('stripe_customer_id', $customerID)->where('subscription_id', $subscriptionId)->where('is_cancelled_subscription', 0)->first();
|
||||
|
||||
$subscriptionInDatabase->subscription_status = $subscriptionObject->status;
|
||||
$subscriptionInDatabase->current_period_end = date('Y-m-d H:i:s', $upcoming_invoice->next_payment_attempt);
|
||||
$subscriptionInDatabase->status = 'complete';
|
||||
$subscriptionInDatabase->next_payment_date = date('Y-m-d H:i:s', $upcoming_invoice->next_payment_attempt);
|
||||
$subscriptionInDatabase->save();
|
||||
|
||||
|
||||
$iamPrincialData = IamPrincipal::where('id', $subscriptionInDatabase->iam_principal_xid)->first();
|
||||
|
||||
|
||||
|
||||
$title = "Congratulations your Subscription has been Renewed";
|
||||
$message = $iamPrincialData->first_name . " has subscribed for " . $subscriptionProductData->product_name;
|
||||
$content_type = "recurring_subscription";
|
||||
|
||||
onesignalhelper::sendNotificationApi($iamPrincialData->one_signal_player_id, $title, $message, $content_type, $image = null, $id = null);
|
||||
|
||||
Log::info("Recurring Subscription has been Updated");
|
||||
DB::commit();
|
||||
|
||||
} catch (\Exception $e) {
|
||||
Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage());
|
||||
// return response()->json(['error' => __('something_went_wrong')], 500);
|
||||
|
||||
DB::rollBack();
|
||||
Log::error('Customer Subscription Invoice payment function failed:' . $e->getMessage());
|
||||
|
||||
}
|
||||
// write your code here
|
||||
// after successful event this actions will be taken
|
||||
|
||||
//hritik code
|
||||
|
||||
}
|
||||
|
||||
return response('Webhook received', 200);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user