Blog

Crear pasarela de pago con PHP: pasos de implementación

Flexibility of payments is power to your business

¿Qué es una pasarela de pago?

La pasarela de pago es una herramienta que permite realizar pagos entre usuarios a través de la web. 

Es una forma sencilla y eficiente de gestionar el pago de servicios o productos en línea. Funciona mediante la transferencia automática de dinero entre los usuarios, lo que reduce el riesgo para ambas partes. 

Además, ofrece diversas herramientas para monitorear y analizar el funcionamiento del proceso, ofreciendo así un mejor servicio a los usuarios.

Para establecer una pasarela de pago es necesario disponer de algunos conocimientos básicos sobre la administración de páginas web. 

Necesitarás establecer las condiciones para el pago, crear una base de datos con los datos del usuario y el producto/servicio que se quiere cobrar, así como configurar la pasarela de pago.

En este artículo vamos a explicar cada uno de estos pasos a través de ejemplos sencillos, pero antes te decimos cómo funciona una pasarela de pago.

¿Cómo funciona una pasarela de pago?

La pasarela de pago es una herramienta que permite realizar pagos entre usuarios mediante la transferencia de fondos entre ellos. 

La pasarela funciona a través de un sistema automático que determina el orden en el que se pagan los gastos y se envía automáticamente el dinero al usuario final. 

La forma más sencilla de implementar una pasarela de pago es utilizando un programa como Paypal, pero existen muchas otras opciones como Stripe o Square Cash.

Se deben establecer las condiciones para el pago para que el usuario solicite su dinero. Para ello, debes saber cuánto va a costar el producto/servicio, qué formato de pago va a utilizarse y qué datos deberá registrar el usuario.

Luego se debe crear la base de datos con los datos del usuario y el producto/servicio, esta parte es la que más dificultades tendrá.

Pasos para implementar una pasarela de pago en PHP

La integración de pasarela de pago es una de las formas más efectivas de hacer crecer tu negocio online, por lo que debes tener claro con qué plataforma quieres integrarte.

Algunas de las cosas que debes tener en cuenta a la hora de implementar una pasarela de pago a tu negocio online son:

  1. Implementar una clave de autenticación en el sistema de pagos.
  2. Crear una lista de clientes registrados con la clave de autenticación.
  3. Crear un formulario para solicitar el pago, incluyendo el nombre y dirección de los clientes registrados.
  4. Realizar el pago a través de una tarjeta de crédito o débito a los clientes registrados.
  5. Envíar una confirmación de pago a los clientes registrados.
  6. Archivar el formulario para solicitar el pago.
  7. Activa la pasarela de pago en el sistema de pagos.
  8. Configurar el sistema de pagos para autorizar las transferencias a través de la pasarela de pago.

Sigue los pasos correspondientes

Ingresa a la plataforma, regístrate o inicia sesión para obtener las credenciales de conexión y  establecer la URL de retorno. Cada pasarela tiene sus propias características y procesos.

Por ejemplo, las plataformas utilizan protectores de hardware para evitar daños y ciberataques, en lo que respecta a seguridad de pasarelas de pago esto es más que necesario.

Usaremos el ejemplo de Sandbox para nuestro propósito, en cuyo caso las credenciales estarán definidas de esta manera:

define("UID", "CAMBIAR_VALOR");
define("WSK", "CAMBIAR_VALOR");
define("AMBIENTE_SANDBOX",true);

Usando el lenguaje de programación PHP integrado al código inicial para trabajar con la pasarela, sería algo como esto:

$PLATAFORMA = new PLATAFORMA(UID, WSK);
if (AMBIENTE_SANDBOX) {
$PLATAFORMA->mode_sandbox_on();
}

Como puedes ver, se crea la instancia de la pasarela y luego el constructor recibe las credenciales de conexión de acuerdo a los parámetros establecidos. 

Lo que puedes ver en la línea que sigue es la evaluación  que se hace para ver si la integración se está haciendo en ambiente Sandbox o en producción.

Como dijimos antes, cada pasarela tiene sus formas de llevar a cabo los procesos, pero por lo general, para comunicarte con la plataforma de pago deberás validar tus credenciales. Cuando se haya verificado esto, verás algo así:

if ($PLATAFORMA->connect()) {
//conexión exitosa, continuar
}

Implementando una pasarela de pago mediante tarjeta de crédito utilizando PHP

Ahora bien, ¿qué pasa si quieres implementar una pasarela de pago mediante tarjeta de crédito con PHP empleando un determinado servidor?

En ese caso se construyen los parámetros necesarios para mandar al Servidor del TPV Virtual:

<form class="form-amount" action="index.php" method="post">
    <div class="form-group">
        <label for="amount">Cantidad</label>
        <input type="text" id="amount" name="amount" class="form-control" placeholder="Por ejemplo: 100.00">
    </div>
    <input class="btn btn-lg btn-primary btn-block" name="submitPayment" type="submit" value="Pagar">
</form>

Hora de integrar el código PHP en el mismo fichero, así se reciben los datos para ser procesados, en este ejemplo, enviar la cantidad que el usuario desea pagar:

<?php
if ($_POST['submitPayment']) {
    include "api/api(Plataforma de pago Virtual).php";  
    $miObj = new (Plataforma de pago Virtual)API;
 
    $amount = $_POST['amount'];    
    $url_tpv = 'https://sis.(Dominio de la Plataforma de pago Virtual)/sis/realizarPago';
    $version = "HMAC_SHA256_V1"; 
    $clave = 'TU CLAVE DE COMERCIO'; //poner la clave SHA-256 facilitada por el banco
    $name = 'TU NOMBRE DE COMERCIO';
    $code = 'TU CODIGO DE COMERCIO';
    $terminal = '1';
    $order = date('ymdHis');
    $amount = $amount * 100;
    $currency = '978';
    $consumerlng = '001';
    $transactionType = '0';
    $urlMerchant = 'http://your-domain.com/';
    $urlweb_ok = 'http://your-domain.com/tpv_ok.php';
    $urlweb_ko = 'http://your-domain.com/tpv_ko.php';
 
    $miObj->setParameter("DS_MERCHANT_AMOUNT", $amount);
    $miObj->setParameter("DS_MERCHANT_CURRENCY", $currency);
    $miObj->setParameter("DS_MERCHANT_ORDER", $order);
    $miObj->setParameter("DS_MERCHANT_MERCHANTCODE", $code);
    $miObj->setParameter("DS_MERCHANT_TERMINAL", $terminal);
    $miObj->setParameter("DS_MERCHANT_TRANSACTIONTYPE", $transactionType);
    $miObj->setParameter("DS_MERCHANT_MERCHANTURL", $urlMerchant);
    $miObj->setParameter("DS_MERCHANT_URLOK", $urlweb_ok);      
    $miObj->setParameter("DS_MERCHANT_URLKO", $urlweb_ko);
    $miObj->setParameter("DS_MERCHANT_MERCHANTNAME", $name); 
    $miObj->setParameter("DS_MERCHANT_CONSUMERLANGUAGE", $consumerlng);    
 
    $params = $miObj->createMerchantParameters();
    $signature = $miObj->createMerchantSignature($clave);
    ?>
    <form id="realizarPago" action="<?php echo $url_tpv; ?>" method="post">
        <input type='hidden' name='Ds_SignatureVersion' value='<?php echo $version; ?>'> 
        <input type='hidden' name='Ds_MerchantParameters' value='<?php echo $params; ?>'> 
        <input type='hidden' name='Ds_Signature' value='<?php echo $signature; ?>'> 
    </form>
    <<script>
    $(document).ready(function () {
        $("#realizarPago").submit();
    });
    </script>

<?php
}  
?>

¿Qué te parece? No es tan complicado crear una pasarela de pago con PHP, ¿no crees? Dale fuerza y seguridad a tu ecommerce implementando un código abierto adecuado para el desarrollo web.