switched to paddle inline checkout, removed paypal and most of stripe. added product sync between app and paddle.

This commit is contained in:
Codex Agent
2025-10-27 17:26:39 +01:00
parent ecf5a23b28
commit 5432456ffd
117 changed files with 4114 additions and 3639 deletions

View File

@@ -2,7 +2,6 @@
use App\Http\Controllers\Api\EventPublicController;
use App\Http\Controllers\Api\PackageController;
use App\Http\Controllers\Api\StripeController;
use App\Http\Controllers\Api\Tenant\DashboardController;
use App\Http\Controllers\Api\Tenant\EmotionController;
use App\Http\Controllers\Api\Tenant\EventController;
@@ -13,10 +12,10 @@ use App\Http\Controllers\Api\Tenant\PhotoController;
use App\Http\Controllers\Api\Tenant\SettingsController;
use App\Http\Controllers\Api\Tenant\TaskCollectionController;
use App\Http\Controllers\Api\Tenant\TaskController;
use App\Http\Controllers\Api\TenantBillingController;
use App\Http\Controllers\Api\TenantPackageController;
use App\Http\Controllers\OAuthController;
use App\Http\Controllers\RevenueCatWebhookController;
use App\Http\Controllers\StripeWebhookController;
use App\Http\Controllers\Tenant\CreditController;
use Illuminate\Support\Facades\Route;
@@ -150,21 +149,15 @@ Route::prefix('v1')->name('api.v1.')->group(function () {
Route::post('/payment-intent', [PackageController::class, 'createPaymentIntent'])->name('packages.payment-intent');
Route::post('/complete', [PackageController::class, 'completePurchase'])->name('packages.complete');
Route::post('/free', [PackageController::class, 'assignFree'])->name('packages.free');
Route::post('/paypal-create', [PackageController::class, 'createPayPalOrder'])->name('packages.paypal-create');
Route::post('/paypal-capture', [PackageController::class, 'capturePayPalOrder'])->name('packages.paypal-capture');
});
Route::prefix('stripe')->group(function () {
Route::post('/payment-intent', [StripeController::class, 'createPaymentIntent'])->name('stripe.payment-intent');
Route::post('/subscription', [StripeController::class, 'createSubscription'])->name('stripe.subscription');
Route::post('/paddle-checkout', [PackageController::class, 'createPaddleCheckout'])->name('packages.paddle-checkout');
});
Route::prefix('tenant/packages')->group(function () {
Route::get('/', [TenantPackageController::class, 'index'])->name('tenant.packages.index');
});
Route::get('tenant/billing/transactions', [TenantBillingController::class, 'transactions'])
->name('tenant.billing.transactions');
});
// Stripe Webhook (no auth)
Route::post('/stripe/webhook', [StripeWebhookController::class, 'handleWebhook'])
->name('stripe.webhook');
});

View File

@@ -5,8 +5,8 @@ use App\Http\Controllers\CheckoutGoogleController;
use App\Http\Controllers\LegalPageController;
use App\Http\Controllers\LocaleController;
use App\Http\Controllers\MarketingController;
use App\Http\Controllers\PayPalController;
use App\Http\Controllers\PayPalWebhookController;
use App\Http\Controllers\PaddleCheckoutController;
use App\Http\Controllers\PaddleWebhookController;
use App\Http\Controllers\Tenant\EventPhotoArchiveController;
use App\Models\Package;
use Illuminate\Support\Facades\Route;
@@ -83,15 +83,11 @@ Route::post('/checkout/login', [CheckoutController::class, 'login'])->name('chec
Route::post('/checkout/register', [CheckoutController::class, 'register'])->name('checkout.register');
Route::get('/checkout/auth/google', [CheckoutGoogleController::class, 'redirect'])->name('checkout.google.redirect');
Route::get('/checkout/auth/google/callback', [CheckoutGoogleController::class, 'callback'])->name('checkout.google.callback');
Route::post('/stripe/create-payment-intent', [CheckoutController::class, 'createPaymentIntent'])->name('stripe.create-payment-intent');
Route::post('/stripe/confirm-payment', [CheckoutController::class, 'confirmPayment'])->name('stripe.confirm-payment');
Route::post('/checkout/track-abandoned', [CheckoutController::class, 'trackAbandonedCheckout'])->name('checkout.track-abandoned');
Route::post('/set-locale', [LocaleController::class, 'set'])->name('set-locale');
Route::middleware('auth')->group(function () {
Route::post('/paypal/create-order', [PayPalController::class, 'createOrder'])->name('paypal.create-order');
Route::post('/paypal/capture-order', [PayPalController::class, 'captureOrder'])->name('paypal.capture-order');
Route::post('/paypal/create-subscription', [PayPalController::class, 'createSubscription'])->name('paypal.create-subscription');
Route::post('/paddle/create-checkout', [PaddleCheckoutController::class, 'create'])->name('paddle.checkout.create');
});
Route::post('/paypal/webhook', [PayPalWebhookController::class, 'verify'])->name('paypal.webhook');
Route::post('/paddle/webhook', [PaddleWebhookController::class, 'handle'])->name('paddle.webhook');