Migrate billing from Paddle to Lemon Squeezy

This commit is contained in:
Codex Agent
2026-02-03 10:59:54 +01:00
parent 2f4ebfefd4
commit a0ef90e13a
228 changed files with 4369 additions and 4067 deletions

View File

@@ -444,7 +444,7 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
Route::post('/purchase', [PackageController::class, 'purchase'])->name('packages.purchase');
Route::post('/complete', [PackageController::class, 'completePurchase'])->name('packages.complete');
Route::post('/free', [PackageController::class, 'assignFree'])->name('packages.free');
Route::post('/paddle-checkout', [PackageController::class, 'createPaddleCheckout'])->name('packages.paddle-checkout');
Route::post('/lemonsqueezy-checkout', [PackageController::class, 'createLemonSqueezyCheckout'])->name('packages.lemonsqueezy-checkout');
Route::get('/checkout-session/{session}/status', [PackageController::class, 'checkoutSessionStatus'])
->name('packages.checkout-session.status');
});

View File

@@ -15,9 +15,9 @@ Route::prefix('_testing')->middleware(EnsureE2ETestingAccess::class)->group(func
Route::post('/coupons/seed', [TestCouponController::class, 'store'])->name('testing.coupons.seed');
Route::get('/checkout/sessions/latest', [TestCheckoutController::class, 'latest'])->name('testing.checkout.sessions.latest');
Route::post('/checkout/sessions/{session}/simulate-paddle', [TestCheckoutController::class, 'simulatePaddle'])
Route::post('/checkout/sessions/{session}/simulate-lemonsqueezy', [TestCheckoutController::class, 'simulateLemonSqueezy'])
->whereUuid('session')
->name('testing.checkout.sessions.simulate-paddle');
->name('testing.checkout.sessions.simulate-lemonsqueezy');
Route::get('/events/join-token', [TestEventController::class, 'joinToken'])->name('testing.events.join-token');
Route::post('/guest-events', [TestGuestEventController::class, 'store'])->name('testing.guest-events.store');

View File

@@ -7,11 +7,12 @@ use App\Http\Controllers\CheckoutFacebookController;
use App\Http\Controllers\CheckoutGoogleController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\LegalPageController;
use App\Http\Controllers\LemonSqueezyCheckoutController;
use App\Http\Controllers\LemonSqueezyReturnController;
use App\Http\Controllers\LemonSqueezyWebhookController;
use App\Http\Controllers\LocaleController;
use App\Http\Controllers\Marketing\GiftVoucherPrintController;
use App\Http\Controllers\MarketingController;
use App\Http\Controllers\PaddleCheckoutController;
use App\Http\Controllers\PaddleWebhookController;
use App\Http\Controllers\ProfileAccountController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ProfileDataExportController;
@@ -415,13 +416,13 @@ Route::middleware('auth')->group(function () {
Route::post('/checkout/session/{session}/confirm', [CheckoutController::class, 'confirmSession'])
->whereUuid('session')
->name('checkout.session.confirm');
Route::post('/paddle/create-checkout', [PaddleCheckoutController::class, 'create'])->name('paddle.checkout.create');
Route::post('/lemonsqueezy/create-checkout', [LemonSqueezyCheckoutController::class, 'create'])->name('lemonsqueezy.checkout.create');
});
Route::get('/paddle/return', \App\Http\Controllers\PaddleReturnController::class)
->name('paddle.return');
Route::get('/lemonsqueezy/return', LemonSqueezyReturnController::class)
->name('lemonsqueezy.return');
Route::post('/paddle/webhook', [PaddleWebhookController::class, 'handle'])
Route::post('/lemonsqueezy/webhook', [LemonSqueezyWebhookController::class, 'handle'])
->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class])
->middleware('throttle:paddle-webhook')
->name('paddle.webhook');
->middleware('throttle:lemonsqueezy-webhook')
->name('lemonsqueezy.webhook');