Integrando Pago Fácil con PHP [ 1 – 2 ]

Un SDK, o Software Development Kit, está diseñado para simplificar la vida del desarrollador, en nuestro caso no podía faltar un SDK para PHP, por lo que la intención de este POST es explicar como ocuparlo de buena manera.

Existen muchos sistemas Open Source basados en PHP, lo cual no es difícil de entender debido a la versatilidad que tiene este lenguaje, su facilidad de uso y aprendizaje, y la compatibilidad con distintos servidores.

Este mini tutorial está dividido en 2 partes.

  1. Iniciaremos con lo básico, desde la instalación de las librerías, creación del servicio de desarrollo y iniciar el proceso de pago.
  2. Crearemos el código requerido por el call back y el return URL, además de explicar algunas buenas prácticas que pueden ayudar al buen desarrollo de la conexión.

El código resultante lo puedes obtener en el siguiente link : https://github.com/ctala/ejemploSDKPagoFacil

Requerimientos.

Acá explicamos algunos requerimientos para iniciar con el proyecto. Cabe destacar que este proyecto es basado en PHP puro, y es extensible a cualquier framwork de desarrollo de PHP, como lo puede ser Yii, Yii2, Laravel, Lumen, etc.

  1. Instalar composer. Si bien puedes descargar directamente desde GitHub las librerías, es recomendable manejar las versiones y actualizaciones a través de composer. Si no lo conoces o no lo tienes instalado ve a este link : https://getcomposer.org/download/
  2. Tener PHP y un servidor web instalado. No importa si usas Linux, Windows, o Mac para desarrollar. Debes de tener un ambiente listo para poder probar el código. Dependiendo de tu nivel de conocimientos, puedes usar Docker para tener un ambiente de desarrollo para la aplicación en PHP.
  3. Usa un IDE. Un Entorno de Desarrollo Integrado facilita el desarrollo, pero no lo hace por ti. Es posible que sea mucho más cómodo hacerlo con uno de ellos.

 

Creando la carpeta e instalando las dependencias.

Por mi lado uso Ubuntu para el desarrollo de aplicaciones, además del uso diario de mi laptop, por lo que los ejemplos serán usando una consola de Linux.

Recuerda crear una carpeta en donde guardar el desarrollo y o el código que tendremos acá. Todo el código será publicado en el GITHUB.

 

mkdir ejemploSDKPagoFacil
cd ejemploSDKPagoFacil/
composer.phar init

 

 Luego de finalizar el wizard de composer, este nos pedirá las dependencias, las que ocuparemos son las siguientes :
  1. ctala/transaccion-default
  2. ctala/http-helper

En donde la primera corresponde al SDK para la transacción, y la segunda es un helper para retornar los headers de error o de éxito que ocuparemos en la siguiente etapa del tutorial.

Ahora ejecutamos el comando composer.phar update para instalar las librerías.

 

composer.phar update

 

 

Esto debería de crear la carpeta vendor en el directorio de nuestro código.

 

Creando y activando el servicio de pruebas.

Recuerda que debes de crear un servicio de pruebas en el dashboard de desarrollo : http://dashboard-dev.cristiantala.cl/index.php?r=site%2Flogin

El servidor de desarrollo funciona tal cual el servidor real, por lo que debes de activar tu servicio, puedes usar el código de comercios de pruebas  y los datos de tarjeta de crédito ficticias de Transbank.

Crearemos en este caso un servicio CUSTOM en donde estableceremos las direcciones URL en donde se hará el callback y el return URL. El callback se ejecutará por detrás de la aplicación, en el background antes del recibo de transbank, mientras que el return URL se ejecuta al final del proceso, luego del recibo de Transbank.

 

Creando el formulario para enviar al servidor.

Como la comunicación es basada en tokens, además de tener que redireccionar a la pantalla de pagos de Transbank, por el momento usaremos formularios POST para poder iniciar la transacción.

Con este formulario :

  1. Pago Fácil validará las credenciales y el servicio.
  2. Generará una nueva orden.
  3. Iniciará la conexión con Transbank.
  4. Creará la orden en Transbank
  5. Redireccionará a Transbank.

Es bastante sencillo iniciar la transacción. En la segunda parte del how to mostraremos como validar la información enviada por Pago Fácil a tu eCommerce o servicio.

 

<?php

include_once "vendor/autoload.php";
use ctala\transaccion\classes\Transaccion;

$token_servicio = "TUTOKENDESERVICIO";
$token_secret = "TUTOKENSECRETO";
$order_id_tienda = "123456";
$token_tienda = "1214124";
$amount = "100.00";
$email = "CORREOCLIENTE";

$url = "https://dev-env.sv1.tbk.cristiantala.cl/tbk/v2/initTransaction";

$transaccion = new Transaccion($order_id_tienda, $token_tienda, $amount, $token_servicio, $email);
$transaccion->setCt_token_secret($token_secret);
$pago_args = $transaccion->getArrayResponse();


?>

<form action="<?=$url?>" method="POST">

    <input type="text" name="ct_monto" value="<?=$amount?>">
    <input type="text" name="ct_order_id" value="<?=$order_id_tienda?>">
    <input type="text" name="ct_email" value="<?=$email?>">
    <input type="text" name="ct_token_service" value="<?=$token_servicio?>">
    <input type="text" name="ct_token_tienda" value="<?=$token_tienda?>">
    <input type="text" name="ct_firma" value="<?=$pago_args["ct_firma"]?>">
    
    
    <input type="submit">
</form>

 

 

Ameba Creative Studio Ameba Creative Studio