Como implementar una pasarela de pago con Stripe y PHP

En este artículo vamos a ver como implementar fácil y rápidamente una pasarela de pago básica con Stripe utilizando PHP.

Stripe es la mejor plataforma de software para gestionar una empresa en Internet. Opera con miles de millones de dólares anuales provenientes de los modelos de negocios más innovadores en todo el mundo. Esta es la descripción oficial.

Esta herramienta hace que el procesamiento de pagos por Internet para negocios en línea sea rápido y seguro.

Stripe tiene una API de pago muy potente que impulsa el comercio para empresas en línea de cualquier tamaño y que incluye prevención de fraude y gestión de suscripciones. Es ideal para aceptar y procesar pagos por Internet como solución de comercio fácil de usar.

La forma más rápida de comenzar a tener ingresos con Stripe es utilizar Stripe Checkout, un flujo de pago directo diseñado para impulsar la conversión, ya sea para vender productos únicos o suscripciones. Se integra en minutos y te permite aceptar pagos de manera segura con tarjeta.

Stripe Checkout se integra rápidamente en tu sitio Web basado en PHP para proporcionar a los usuarios una experiencia de pago optimizada y lista para dispositivos móviles.

Aunque en la mayoría de gestores de contenido y plataformas de e-commerce ya disponen de un plugin o módulo con esta implementación, siempre puede ser interesante realizar una pasarela de pago a medida sin necesidad de utilizar ningún gestor de contenido ni plataforma de e-commerce. Si esto es lo que necesitas, sigue con este tutorial.

En Stripe es posible utilizar la documentación para usar Checkout y PHP.

En el ejemplo en funcionamiento, estamos mostrando un botón que al pulsarlo se abre una ventana modal que te permite indicar un email, un número de tarjeta, la fecha de caducidad y el código de seguridad.

El ejemplo en funcionamiento es una página que permite enviar un donativo de 1€ para agradecer este tutorial que espero te sea de utilidad.

Requisitos

El entorno de desarrollo mínimo para trabajar con Stripe es:

  • PHP >= 5.3.3
  • Librería Stripe para PHP
  • Cuenta de Stripe Es gratis.

Instalación de Stripe

La librería PHP para usar Stripe en tu sitio Web puede ser instalada vía Composer ejecutando la siguiente línea en el terminal de tu computadora situándote previamente en el directorio donde esté tu proyecto:

composer require stripe/stripe-php

Si no lo tienes todavía, antes de ejecutar esta línea en la línea de comandos, descarga e instala en tu ordenador el programa Composer que puedes encontrar en la página oficial.

Después de ejecutar esta instrucción vía Composer debería aparecer algo como lo siguiente en la consola:

Donde se está indicando que el paquete necesario para utilizar los pagos mediante Stripe ya están disponibles para usar en la ruta de tu proyecto.

Datos de configuración

En la raiz de tu proyecto crea el archivo config.php  y agrega el siguiente código:

<?php
require_once('vendor/autoload.php');
 
$stripe = array(
    'secret_key' => 'TU CLAVE SECRETA AQUÍ',
    'publishable_key' => 'TU CLAVE PÚBLICA AQUÍ',
);
 
\Stripe\Stripe::setApiKey($stripe['secret_key']);
?>

La primera linea hace referencia a la biblioteca Stripe para PHP que has instalado previamente mediante el Composer.

A continuación creamos un array con la clave secreta y la clave pública de tu cuenta Stripe.

Cambia la clave secreta y la pública por las de tu cuenta Stripe. Lo puedes encontrar en el panel de control de tu cuenta Stripe, justamente en Desarrolladores – Claves de API.

Formulario

Dentro del cuerpo de la página o dentro de la etiqueta <body>, allí donde más desees puedes agregar el formulario para Stripe Checkout. De forma básica puedes agregar algo como lo siguiente:

<?php require_once('config.php'); ?>
<form action="charge.php" method="post">
    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="<?php echo $stripe['publishable_key']; ?>"
        data-description="Envia un donativo simbolico de 1€"
        data-amount="100"
        data-currency="eur"
        data-locale="es"></script>
</form>

Donde estamos incluyendo el archivo config.php que permite conectar con tu cuenta de Stripe.

Seguidamente, estamos armando el formulario de pago mediante Stripe que utiliza Checkout. Un formulario HTML incorporado que se hará cargo de la validación de los datos, el manejo de errores y el envío seguro de números de tarjetas de crédito a Stripe.

Si te fijas un poco en el código, puedes observar que la etiqueta <script> contiene unos atributos especiales que quizás no has visto nunca. Son como parámetros que puedes mandar a la plataforma Stripe para generar el pago con datos dinámicos.

En el caso del ejemplo en funcionamiento, estamos pasando la clave pública de la API, la descripción, la cantidad, el tipo de moneda y el idioma.

Procesamiento del pago con PHP

Tal y como puedes ver en el atributo action del formulario, los datos del formulario son enviados al servidor.

El archivo charge.php es el archivo que recibe los datos del formulario.  Este archivo puede contener el siguiente código:

<?php
require_once('config.php');
 
$token = $_POST['stripeToken'];
$email = $_POST['stripeEmail'];
 
$customer = \Stripe\Customer::create([
  'email' => $email,
  'source'  => $token,
]);
 
$charge = \Stripe\Charge::create([
  'customer' => $customer->id,
  'amount'   => 100,
  'currency' => 'eur',
]);
 
echo '<h1>Successfully charged 1€!</h1>';
?>

Donde incluimos el archivo config.php para conectar con la cuenta de Stripe. Recibimos el token y el email del formulario para crear el cliente y el pago. Así de simple.

En la documentación de Stripe Checkout PHP puede ver más información.

Resultado

El pago aparece reflejado en la cuenta de Stripe:

Ver demo Descargar

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…
Comparte en las redes sociales

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre