notifications Notificaciones

Marcar todas como leídas

Ver más

lightbulb_outline

Integrar stripe en Laravel

timer 2 Min.

remove_red_eye 1937

calendar_today

Stripe es sin duda una de las pasarelas de pago más populares en la actualidad, y no es de extrañarse, con stripe es posible realizar pagos electrónicos de forma fácil y segura, además de poseer una, de las que considero yo, de las mejores documentaciones en el mercado. Esto sin duda hace a Stripe una excelente opción si lo que deseamos es implementar cobros en nuestras aplicaciones.

Es por ello que en esta ocasión aprenderemos a integrar Stripe a un proyecto con Django. Es bastante sencillo, veamos.

Stripe

Lo primero que haremos será obtener la llave pública y la llave privada de nuestra cuenta Stripe. A partir de estas llaves seremos capaces de comunicar nuestro proyecto con el API de stripe.

Para obtener las llaves es necesario autenticarse en Stripe, dirigirnos a Desarrolladores y Claves de API.

Configuración Laravel

Para comenzar lo que haremos será almacenar nuestras llaves dentro del archivo .env.


STRIPE_KEY=pk_test_tzfasfdfdsdfESe
STRIPE_SECRET=sk_test_uRN123ssadfG9

El siguiente paso será crear a un nuevo provedor dentro del archivo services.php, dentro de la carpeta config.


'stripe' => [
        'key' => env('STRIPE_KEY'),
        'secret' => env('STRIPE_SECRET')
]

Una vez que ya tenenemos agregadas nuestras llaves al proyecto vamos a instalar el paquete oficial de stripe.

composer require stripe/stripe-php

Ahora a generar cobros 😮.

Checkout

El siguiente, paso antes de realizar un cobro, es asociar un método de pago a nuestro objeto customer, para ello nos apoyaremos del siguiente formulario.

Ahora dentro del script tendremos que agregar nuestra key.

var stripe = Stripe("{{ config('services.stripe.key') }}");

Otro cambio que tenemos que hacer es agregar el @csrf token al formulario.

<form action="/payment" method="post" id="payment-form">
  @csrf

Dentro de nuestro controlador en el método post de nuestro formulario, vamos a proceder a realizar el cobro.

Lo primero que vamos a hacer es importar a nuestras clases.

use Stripe\Stripe;
use Stripe\Charge;

Ahora dentro de nuestro método vamos a configurar a stripe con nuestra llave privada.

Stripe::setApiKey(config('services.stripe.secret'));

Ahora bien otra cosa que tenemos que hacer es obtener al token que stripe genera por nosotros, y envia en el formulario. Para hacer esto vamos a agregar el request a nuestro método y a obtener el token.


public function pay(Request $request)

$token = $request->stripeToken;

Y como último paso procedemos a crear el cobro, usando a nuestro objecto charge.

$charge = Charge::create([
        'amount' => 100,
        'currency' => 'usd',
        'description' => 'Example charge',
        'source' => $token,
]);

El resultado final sería.


Stripe::setApiKey(config('services.stripe.secret'));
$token = $request->stripeToken;

$charge = Charge::create([
        'amount' => 100,
        'currency' => 'usd',
        'description' => 'Example charge',
        'source' => $token,
]);

Con los pasos anteriores, tendriamos la forma las básica de realizar cobros con stripe.

Otros artículos del blog

Comunidad