Laravel and the Rinvex Subscriptions package to create a subscription system for a website

onoja.stanleyugo@gmail.com

Laravel yabacon paystack donation website

Laravel is a popular PHP framework that is widely used for web development. Yabacon Paystack is a payment gateway service that allows businesses to accept online payments. Combining these two technologies, it is possible to create a donation website where users can make donations using the Paystack payment gateway.

onoja.stanleyugo@gmail.com

Write code using Laravel rinvex\subscriptions

Here is an example of how you could use Laravel and the Rinvex Subscriptions package to create a subscription system for a website. This code is for illustrative purposes only and is not intended to be used as-is in a production environment.

Copy code<?php

namespace App\Http\Controllers;

use Rinvex\Subscriptions\Models\Plan;
use Illuminate\Http\Request;

class SubscriptionController extends Controller
{
    public function index()
    {
        // Get all available plans
        $plans = Plan::all();

        return view('subscriptions.index', compact('plans'));
    }

    public function subscribe(Request $request)
    {
        // Validate the request data
        $request->validate([
            'plan_id' => 'required|exists:plans,id',
            'payment_method' => 'required',
        ]);

        // Get the selected plan and user
        $plan = Plan::findOrFail($request->input('plan_id'));
        $user = auth()->user();

        // Create a new subscription for the user
        $user->newSubscription('main', $plan)->create($request->input('payment_method'));

        // Redirect the user to the subscriptions page with a success message
        return redirect()->route('subscriptions.index')
                         ->with('success', 'Successfully subscribed to the '.$plan->name.' plan.');
    }

    public function cancel()
    {
        // Get the user and their current subscription
        $user = auth()->user();
        $subscription = $user->subscription('main');

        // Cancel the subscription
        if ($subscription && $subscription->cancel()) {
            return redirect()->route('subscriptions.index')
                             ->with('success', 'Successfully cancelled your subscription.');
        }

        return redirect()->route('subscriptions.index')
                         ->with('error', 'Could not cancel your subscription.');
    }
}

In this example, the SubscriptionController provides three methods: index, subscribe, and cancel. The index method retrieves a list of all available subscription plans and displays them on a page. The subscribe method creates a new subscription for the authenticated user using the selected plan and payment method. The cancel method cancels the user’s current subscription.

Leave a comment