Skip to content

Commit f9bb3d6

Browse files
committed
[Updated] Subscription System
1 parent 800c3d9 commit f9bb3d6

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

src/Http/Controllers/Subscription/SubscriptionController.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,11 @@ public function cancel(Request $request)
221221
$user = $this->user();
222222
$subscription = $user->subscription();
223223

224-
$subscription->cancel();
224+
if ($subscription->pastDue() || $subscription->hasIncompletePayment()) {
225+
$subscription->cancelNow();
226+
} else {
227+
$subscription->cancel();
228+
}
225229

226230
$user->notify(new SubscriptionCancelNotification($user, $subscription));
227231
} catch (\Exception $e) {

src/Http/Middleware/CheckSubscribed.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@ class CheckSubscribed
1717
public function handle($request, Closure $next, $subscribed = false)
1818
{
1919
$user = $this->user();
20+
$subscription = $user->subscription();
2021
if ($user->subscribed()) {
2122
return $next($request);
22-
} else if ($user->subscription() && $user->subscription()->cancelled()) {
23+
} else if ($subscription && $subscription->canceled()) {
2324
return response()->json([
2425
'cancelled' => true,
2526
'message' => trans('coderstm::messages.subscription.canceled', [
26-
'date' => $user->subscription()->ends_at->format('d M, Y')
27+
'date' => $subscription->ends_at->format('d M, Y')
2728
])
2829
], 200);
2930
} else {

stubs/routes/api.stub

+4-8
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ use Coderstm\Http\Controllers\CashierWebhookController;
1515
use Coderstm\Http\Controllers\Auth\ForgotPasswordController;
1616
use Coderstm\Http\Controllers\Subscription\SubscriptionController;
1717
use Coderstm\Http\Controllers\Subscription\PaymentMethodController;
18-
use Coderstm\Http\Controllers\PaymentMethodController as ShopPaymentMethodController;
1918
use Coderstm\Http\Controllers\Subscription\CouponController;
19+
use Coderstm\Http\Controllers\PaymentMethodController as ShopPaymentMethodController;
2020

2121
/*
2222
|--------------------------------------------------------------------------
@@ -123,18 +123,13 @@ Route::middleware(['auth:sanctum'])->group(function () {
123123
Route::get('', 'index')->name('index');
124124
Route::get('setup-intent', 'getSetupIntent')->name('setup-intent');
125125
Route::post('subscribe', 'subscribe')->name('subscribe');
126-
Route::post('pay', 'pay')->name('pay');
127-
Route::post('check-promo-code', 'checkPromoCode')->name('check-promo-code');
128126
Route::post('resume', 'resume')->name('resume');
129127
Route::post('confirm', 'confirm')->name('confirm');
128+
Route::post('pay', 'pay')->name('pay');
130129
Route::post('cancel-downgrade', 'cancelDowngrade')->name('cancel-downgrade');
131130
Route::post('invoices', 'invoices')->name('invoices');
132131
Route::get('invoices/{invoiceId}', 'downloadInvoice')->name('invoices.download');
133-
134-
//Only for subscriber
135-
Route::middleware(['subscribed'])->group(function () {
136-
Route::post('cancel', 'cancel')->name('cancel');
137-
});
132+
Route::post('cancel', 'cancel')->name('cancel');
138133
});
139134
Route::prefix('payment-methods')->name('payment-methods.')->controller(PaymentMethodController::class)->group(function () {
140135
Route::post('{paymentMethod}/update', 'update')->name('update');
@@ -177,6 +172,7 @@ Route::middleware(['auth:sanctum', 'guard:admins'])->group(function () {
177172
Route::resource('coupons', CouponController::class);
178173
});
179174

175+
Route::post('subscription/check-promo-code', [SubscriptionController::class, 'checkPromoCode'])->name('subscription.check-promo-code');
180176
Route::get('qrcode/{user}.png', [UserController::class, 'qrcode'])->name('users.qrcode');
181177

182178
// Stripe webhook

0 commit comments

Comments
 (0)