Home  >  Article  >  PHP Framework  >  Laravel development: How to use Laravel Cashier to implement subscription payments?

Laravel development: How to use Laravel Cashier to implement subscription payments?

王林
王林Original
2023-06-13 13:35:06827browse

Laravel is a very popular PHP framework that is widely used in the field of web development. Laravel Cashier is an extension package that provides subscription payment functions, allowing developers to easily handle subscription and payment-related logic, which can greatly improve development efficiency.

This article will introduce how to use Laravel Cashier to implement the subscription payment function.

  1. Install Laravel Cashier

First, you need to install Laravel Cashier. To install through Composer, you only need to enter the following command in the terminal:

composer require laravel/cashier

After the installation is completed, you need to publish the Cashier configuration file and database migration file:

php artisan vendor:publish --provider="LaravelCashierCashierServiceProvider" --tag="cashier-migrations"
php artisan migrate
  1. Configure Stripe

Laravel Cashier uses Stripe as the payment platform by default, so you need to register an account on Stripe and obtain the API key (Secret key) and public key (Publishable key).

Set the relevant Stripe account information in the .env file:

STRIPE_KEY=your-stripe-publishable-key
STRIPE_SECRET=your-stripe-secret-key
  1. Create a subscription plan

Control in Stripe In the panel, multiple subscription plans can be created. For example, you can create a monthly subscription, quarterly subscription, or annual subscription, etc.

In Laravel, you can use the following code to create a subscription plan:

use IlluminateDatabaseEloquentModel;
use LaravelCashierSubscriptionBuilder;

class Plan extends Model
{
    public function createStripePlan()
    {
        $builder = new SubscriptionBuilder();
        $builder->nickname('Monthly')->interval(SubscriptionBuilder::INTERVAL_MONTH);
        $builder->name('Monthly Plan')->amount(1000);
        $builder->create();
    }
}

The above code creates a monthly subscription plan with a price of $10.

  1. Create subscription

In Laravel, you can use the following code to create a subscription:

$user = User::find(1);

$user->newSubscription('monthly', 'monthly-plan')->create($paymentMethod);

The above code creates a subscription named "monthly" , associated with the subscription plan created previously.

You need to pass a $paymentMethod parameter here, indicating the user's payment method. Laravel Cashier supports a variety of payment methods, including credit cards, bank cards, and Alipay.

  1. Cancel subscription

Cancel subscription is also very simple, just call the cancel() method:

$user->subscription('monthly')->cancel();
  1. Processing payment failure

If the user's payment fails, Laravel Cashier will automatically send an email to remind the user and ask the user to update their payment information. Developers can set up email templates in the system and easily customize email content.

namespace AppProviders;

use IlluminateSupportServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        IlluminateNotificationsNotification::observe(function ($notification) {
            $notification->setChannels(['mail']);
        });
    }
}

The above code tells Laravel Cashier to only use email notification.

  1. Conclusion

Laravel Cashier provides Laravel developers with an efficient and stable subscription payment function, avoiding the duplication of work in developing payment functions by themselves. For online malls, Very useful for business scenarios such as subscription services.

The above is the detailed content of Laravel development: How to use Laravel Cashier to implement subscription payments?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn