Home > Article > PHP Framework > Laravel development: How to use Laravel Cashier to implement subscription payments?
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.
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
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
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.
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.
Cancel subscription is also very simple, just call the cancel()
method:
$user->subscription('monthly')->cancel();
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.
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!