$table->string('stripe_id')->nullable();
$table->string('card_brand')->nullable();
$table->string('card_last_four')->nullable();
$table->timestamp('trial_ends_at')->nullable();
Y crear la tabla subscriptions con los campos:
$table->increments('id');
$table->integer('user_id');
$table->string('name');
$table->string('stripe_id');
$table->string('stripe_plan');
$table->integer('quantity');
$table->timestamp('trial_ends_at')->nullable();
$table->timestamp('ends_at')->nullable();
$table->timestamps();
Registrarte en stripe.com
Obtener las API Keys (Una vez obtenidas están en https://dashboard.stripe.com/account/apikeys)
Por ejemplo:
test secret key: sk_test_cOzxt2xxxxv3aBSWjlipAT3a
test publishable key: pk_test_BGxxxxk8V63jihNc1iolP9Fd
Si no hubiese ningún banco que trabaje con euros añadirlo en:
https://dashboard.stripe.com/account/transfers
Registar un nuevo plan en https://dashboard.stripe.com/test/plans, por ejemplo:
ID: uno
Name: uno
Price: €9.99 EUR/week
Trial period: No trial
En .env crear una nueva variable con el secret key:
STRIPE_SECRET=sk_test_cOzxt2xxxxv3aBSWjlipAT3a
En config/services.php:
'stripe' => [
'model' => App\User::class,
'secret' => env('STRIPE_SECRET'),
],
En tu aplicación Laravel debes tener previamente instalado el Auth con:
php artisan make:auth
Instalamos el cashier:
composer require laravel/cashier:~7.0
Lo añadimos al provider de config.app:
Laravel\Cashier\CashierServiceProvider::class,
En el modelo de app/User.php:
use Laravel\Cashier\Billable;
class User extends Authenticatable
{
...
use Billable;
...
}
En routes/web.php:
Route::get('/home', 'HomeController@index');
Route::post('/home', 'HomeController@subscription');
En HomeController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('home');
}
public function subscription(Request $request){
$token = $request->stripeToken;
\Auth::user()->newSubscription('main', 'uno')->create($token);
return ('you are subscribed now');
}
}
En la vista home.blade.php:
<form action="" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_BGxxxxk8V63jihNc1iolP9Fd"
data-amount="999"
data-name="Pago semanal"
data-description="Pagar 9.99 euros"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png">
</script>
</form>
A la hora de ejecutarlo utilizar como tarjeta de crédito de prueba:
4242 4242 4242 4242
No hay comentarios:
Publicar un comentario