This article provides a comprehensive guide to integrating Braintree payments and subscriptions into a Laravel application. It focuses on simplifying subscription management, allowing developers to concentrate on core application features rather than complex billing code.
Key Features Covered:
This tutorial is divided into two parts. Part one covers the initial setup, including:
Part two (not included in this excerpt) will cover advanced features such as:
Getting Started:
Begin with a fresh Laravel installation:
composer create-project laravel/laravel lara-billable
Database Setup:
Configure your database connection in the .env
file (example using MySQL):
<code>DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret</code>
Authentication:
Scaffold authentication using:
php artisan make:auth php artisan migrate
Cashier Setup:
Install the Braintree Cashier package:
composer require laravel/cashier-braintree
Register the service provider in config/app.php
:
'providers' => [ // ... Laravel\Cashier\CashierServiceProvider::class, ],
Include the Billable
trait in your User
model:
use Laravel\Cashier\Billable; class User extends Authenticatable { use Billable; // ... }
Add necessary columns to the users
table via migration. Create a subscriptions
table migration as well. Remember to run php artisan migrate
.
Braintree Configuration:
Obtain your Braintree sandbox API keys (Merchant ID, Public Key, Private Key) and configure them in your .env
file and config/services.php
. Remember to set BRAINTREE_ENV=sandbox
.
Add Braintree SDK configuration to your AppServiceProvider
's boot
method.
Plan Creation and Synchronization:
Create plans in your Braintree sandbox dashboard. Create a Plan
model and migration to store plans locally. The tutorial provides a custom Artisan command (SyncPlans
) to synchronize these plans with your database. Run this command using php artisan braintree:sync-plans
.
The remainder of the tutorial details creating views to display plans, building a payment form using Braintree's Drop-in UI, and handling subscription creation via a controller. It also includes a section on frequently asked questions regarding Laravel and Braintree integration. The complete code for part one is available via a link provided in the original article.
The above is the detailed content of Laravel and Braintree, Sitting in a Tree.... For more information, please follow other related articles on the PHP Chinese website!