Skip to content
Menu
DevSecOps Now!!!
  • About
  • Certifications
  • Contact
  • Courses
  • DevSecOps Consulting
  • DevSecOps Tools
  • Training
  • Tutorials
DevSecOps Now!!!

How to Build a Laravel-Based SaaS Subscription System with PayPal and PayTM (Without Stripe/Paddle) — Self-Hosted, Spark-Like Module

Posted on April 25, 2025

Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

Laravel Spark offers a pre-built SaaS solution with Stripe/Paddle integration—but what if you want full control, Indian-friendly payments, and no dependency on Stripe/Paddle?

This tutorial walks you through building your own subscription-based SaaS module in Laravel—with PayPal and PayTM as your payment gateways.
It’s fully self-hosted, integrates easily into other Laravel projects, and works for both web and mobile platforms.


🧠 Why Avoid Laravel Spark + Stripe/Paddle?

ReasonExplanation
❌ Stripe/Paddle LimitationsThese don’t support Indian merchants natively (especially recurring logic).
❌ Hosted Payment UIYou can’t fully control the look and flow of your payment pages.
❌ Vendor Lock-inYou’re tied to their terms, limits, and region availability.

✅ Instead, you’ll build a Spark-like system that’s modular, flexible, and fully yours!


Features You’ll Build

  • User Auth (Register/Login)
  • Plan Management (Free, Monthly, Yearly)
  • Payment Gateways: PayPal + PayTM
  • Subscription Logic (Start, Cancel, Expire)
  • Webhook Listeners (for transaction updates)
  • Invoicing (PDF download)
  • Admin Panel
  • API Support for App Integration

🛠️ Tools You’ll Use

CategoryTools
FrameworkLaravel 10+
AuthLaravel Breeze / Jetstream
UI ComponentsBlade / Inertia + TailwindCSS
Payment GatewaysPayPal REST API, PayTM Checksum
PDF InvoicingDomPDF / Laravel Snappy
Admin PanelLaravel Nova (optional)
DeploymentYour VPS / Shared Hosting

🗂️ Project Setup (Day 0)

composer create-project laravel/laravel saas-system
cd saas-system
composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate

📋 Step 1: Build Plans & Subscriptions Schema

php artisan make:migration create_plans_table
php artisan make:migration create_subscriptions_table
php artisan make:migration create_invoices_table

plans table

Schema::create('plans', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->decimal('price');
    $table->string('interval'); // monthly/yearly
    $table->text('features')->nullable(); // JSON
    $table->timestamps();
});

subscriptions table

Schema::create('subscriptions', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->onDelete('cascade');
    $table->foreignId('plan_id')->constrained()->onDelete('cascade');
    $table->string('status'); // active, cancelled, expired
    $table->timestamp('start_date');
    $table->timestamp('end_date')->nullable();
    $table->string('gateway'); // paypal, paytm
    $table->string('transaction_id')->nullable();
    $table->timestamps();
});

invoices table

Schema::create('invoices', function (Blueprint $table) {
    $table->id();
    $table->foreignId('subscription_id')->constrained()->onDelete('cascade');
    $table->decimal('amount');
    $table->string('pdf_url')->nullable();
    $table->string('status'); // paid, pending
    $table->timestamps();
});
php artisan migrate

💳 Step 2: Integrate PayPal Checkout (Server-Side)

Install SDK:

composer require paypal/rest-api-sdk-php

Setup PayPal Config in .env

PAYPAL_CLIENT_ID=your_client_id
PAYPAL_SECRET=your_secret
PAYPAL_MODE=sandbox

Create service class PayPalService.php to handle:

  • Order Creation
  • Approval Redirection
  • Capture Payment
  • Store Transaction in DB

👉 [Want full PayPal code? Let me know in the comments!]


🇮🇳 Step 3: Integrate PayTM Gateway

Use PayTM’s official checksum kit in Laravel.

Steps:

  • Set keys in .env
  • Create PaytmController to handle:
    • Form submission
    • Generate checksum
    • Redirect to PayTM
    • Callback route to verify checksum
  • Update subscription status post payment

👉 [Full PayTM integration tutorial here — coming soon!]


📄 Step 4: Blade UI – Plans & Subscriptions

/plans.blade.php

@foreach ($plans as $plan)
  <div class="plan-box">
    <h2>{{ $plan->name }}</h2>
    <p>{{ $plan->price }} INR</p>
    <a href="{{ route('checkout', $plan->id) }}">Choose Plan</a>
  </div>
@endforeach

Subscription Controller Flow:

public function checkout($planId)
{
    $plan = Plan::findOrFail($planId);
    return view('checkout', compact('plan'));
}

🧾 Step 5: Generate Invoices (PDF)

Install package:

composer require barryvdh/laravel-dompdf
$pdf = PDF::loadView('invoice-pdf', ['subscription' => $sub]);
$path = 'invoices/' . uniqid() . '.pdf';
Storage::put($path, $pdf->output());

🛠️ Step 6: Admin Panel

Use Laravel Nova, Filament, or a custom admin UI:

  • View all subscriptions
  • Create/edit/delete plans
  • View payments and invoices

📱 Step 7: API Support for Mobile

Install Sanctum:

composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

Add routes:

Route::middleware('auth:sanctum')->get('/subscriptions', function () {
    return auth()->user()->subscriptions;
});

🚀 Deployment Guide

  • Use Forge, DigitalOcean, or manually deploy to your VPS.
  • Use Laravel scheduler to handle subscription expiry.
  • Use Supervisor to queue webhook handling and PDF generation jobs.

Post Views: 1,277
  • Build a Laravel-Based SaaS Subscription
  • How to Build a Laravel-Based SaaS Subscription System
  • laravel
  • Laravel-Based SaaS Subscription System
  • Laravel-Based SaaS Subscription System with PayPal
  • Laravel-Based SaaS Subscription System with PayTm
  • PayPal
  • Paytm
  • SaaS Subscription System
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
  • Strategies to Align DevSecOps With Agile and DevOps Practices
  • How to Fix Laravel Migration Error: Field ‘id’ Doesn’t Have a Default Value in the Migrations Table
  • A Practical Guide to Proving DevSecOps Business Value for Engineering Leaders
  • Mastering Secure Software Delivery by Solving DevSecOps Adoption Challenges
  • Operationalizing Security for Faster and Safer Software Deployments
  • DevSecOps Server Security Checklist 2026: 50 Must-Check Points Before Going Live
  • The Complete DevOps Salary Overview for IT Professionals
  • The Modern DevOps Certification Guide: Roadmaps for Every Engineering Role
  • Security Champions in DevSecOps: Responsibilities and Best Practices
  • The DevSecOps Handbook for Shift-Left Security
  • Top DevSecOps Principles for Effective Secure Software Delivery
  • Guide to DevSecOps Maturity Levels for Platform and Security Teams
  • Canada PR CRS Calculator: Express Entry Points System Explained
  • Austria PR Points Calculator: Ultimate Guide to Navigating the Red-White-Red Card System
  • The Essential Guide to Enterprise DevSecOps Implementation
  • How to Set Up Claude Code Agent on a Local Windows Laptop and Use claude Command from Anywhere
  • DevOps and DevSecOps Explained: Bridging the Gap Between Speed and Security
  • Comprehensive Manual on DevOps Methodologies and Cloud Native Engineering
  • The Master Guide to Immigration Points: Calculating Your Path to Canada, Australia, and Beyond
  • How to Skip the Activation Email and Password Reset After Google Login in Keycloak Auto-Link Existing Users in First Broker Login
  • Free SSL Certificate Generation Tutorial for Any Website Using Certbot and Apache
  • The Ultimate Guide to Certified FinOps Professional: Skills, Levels, and Career Impact
  • Certified FinOps Manager: Essential Skills for Modern Cloud Operations
  • How to Use Claude AI for Programming: Complete Guide for Developers to Boost Productivity
  • The Definitive Guide to Certified FinOps Engineer: Master Cloud Value Engineering
  • A Comprehensive Guide to the Certified FinOps Architect Certification and Training
  • Linux Server Diagnostic Commands: Complete Guide for Performance, Network & System Troubleshooting
  • The Ultimate Guide to CDOM – Certified DataOps Manager Certification
  • The Practical Path to AI Reliability: A Guide to the Certified MLOps Manager
  • Master the Machine Learning Lifecycle:Guide to Becoming a Certified MLOps Architect

Recent Comments

  1. emmy day on SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘provider’ in ‘field list’
  2. digital banking on Complete Tutorial: Setting Up Laravel Telescope Correctly (Windows + XAMPP + Custom Domain)
  3. SAHIL DHINGRA on How to Uninstall Xampp from your machine when it is not visible in Control panel programs & Feature ?
  4. Abhishek on MySQL: List of Comprehensive List of approach to secure MySQL servers.
  5. Kristina on Best practices to followed in .httacess to avoid DDOS attack?

Archives

  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022

Categories

  • Ai
  • AI Blogging
  • AiOps
  • ajax
  • Android Studio
  • Antimalware
  • Antivirus
  • Apache
  • Api
  • API Security
  • Api Testing
  • APK
  • Aws
  • Bike Rental Services
  • ChatGPT
  • Code Linting
  • Composer
  • cPanel
  • Cyber Threat Intelligence
  • Cybersecurity
  • Data Loss Prevention
  • Database
  • dataops
  • Deception Technology
  • DeepSeek
  • Devops
  • DevSecOps
  • DevTools
  • Digital Asset Management
  • Digital Certificates
  • Docker
  • Drupal
  • emulator
  • Encryption Tools
  • Endpoint Security Tools
  • Error
  • facebook
  • Firewalls
  • Flutter
  • git
  • GITHUB
  • Google Antigravity
  • Google play console
  • Google reCAPTCHA
  • Gradle
  • Guest posting
  • health and fitness
  • IDE
  • Identity and Access Management
  • Incident Response
  • Instagram
  • Intrusion Detection and Prevention Systems
  • jobs
  • Joomla
  • Keycloak
  • Laravel
  • Law News
  • Lawyer Discussion
  • Legal Advice
  • Linkedin
  • Linkedin Api
  • Linux
  • Livewire
  • Mautic
  • Medical Tourism
  • MlOps
  • MobaXterm
  • Mobile Device Management
  • Multi-Factor Authentication
  • MySql
  • Network Traffic Analysis tools
  • Paytm
  • Penetration Testing
  • php
  • PHPMyAdmin
  • Pinterest Api
  • Quora
  • SAST
  • SecOps
  • Secure File Transfer Protocol
  • Security Analytics Tools
  • Security Auditing Tools
  • Security Information and Event Management
  • Seo
  • Server Management Tools
  • Single Sign-On
  • Site Reliability Engineering
  • soft 404
  • software
  • SSL
  • SuiteCRM
  • SysOps
  • Threat Model
  • Twitter
  • Twitter Api
  • ubuntu
  • Uncategorized
  • Virtual Host
  • Virtual Private Networks
  • VPNs
  • Vulnerability Assessment Tools
  • Web Application Firewalls
  • Windows Processor
  • Wordpress
  • WSL (Windows Subsystem for Linux)
  • X.com
  • Xampp
  • Youtube
©2026 DevSecOps Now!!! | WordPress Theme: EcoCoded
wpDiscuz