MANUAL DE INTEGRACIÓN payku



Contenido

1.- Control de versiones
2.- Definiciones
3.- Introducción
4.- Acceso a la plataforma payku
5.- Descripción general de la solución
6.- Procesos
6.1 Método “pago”
6.2 Método indicado en “notify_url” (desarrollado por el cliente).
6.3 Método “verificar”
6.4 EJEMPLO PARA WORDPRESS - WOOCOMERCE CON PHP

1.- Control de Versiones




2.- Definiciones

A continuación se entrega un listado de términos usados en este documento y su significado:
Payku S.p.A : Plataforma, la Aplicación o App.
Cliente: cualquier persona natural o jurídica, agrupación sin personalidad legal, o representante en cualquier forma de los mismos, que use los servicios y/o información contenidas en nuestra plataforma, estando sujeto a los términos y condiciones que rigen para la utilización de los Servicios de Recaudación que se describen en el presente documento.
Los Usuarios de la Plataforma son de dos tipos: (i) el Usuario que solicita el servicio de recaudación, en adelante “Cliente”, y (ii) el Usuario que paga el monto a recaudar, en adelante “Usuario”.


3.- Introducción

El presente documento corresponde al manual de integración del cliente con nuestro servicio de recaudación, y de esta manera comenzar a utilizar nuestras soluciones de pago electrónico.
Este Manual ha sido orientado a facilitar la integración entre los actores involucrados, describiendo aspectos técnicos de la integración, y su uso debe estar siempre dentro del marco legal especificado en la página web de payku, la cual puede ser accedida por medio del siguiente enlace https://payku.cl/legal/, el uso de la plataforma y su acceso se encuentran condicionados a la aceptación completa por parte del Cliente de los términos y condiciones.


4.- Acceso a la plataforma payku
Puede acceder al API de payku, registrándose en las siguientes endpoints:

Entorno
Producción: https://app.payku.cl
Pruebas: https://des.payku.cl

El entorno de Producción proporciona acceso directo para generar transacciones reales, el entorno de pruebas le permite probar la integración sin afectar los datos reales.

Para realizar pruebas de transacciones en https://des.payku.cl se pueden utilizar los siguientes datos en webpay:

VISA Card
Number: 4051885600446623
CVV: 123
Date: 12/2022

Bank data (user/password validation)
User: 11.111.111-1
Password: 123


5.- Descripción general de la solución

La integración con payku considera 3 métodos, de los cuales dos (2) serán provistos por payku y uno (1) desarrollado por el cliente (e-Commerce).
El siguiente diagrama ilustra la secuencia de pasos que se deben realizar para completar el pago de un producto o servicio ofrecido por un e-commerce.




6.- Procesos

6.1 Método “pago”

Crear instancia de pagos y cobros (del cliente a payku), llamando al método “pago” en payku.


- https://app.payku.cl/gateway/pago
- https://des.payku.cl/gateway/pago

6.2 Método indicado en “notify_url” (desarrollado por el cliente).

Luego de realizado el pago por parte del usuario, payku notificará al cliente el resultado de la operación (estatus), invocando al notify_url suministrado previamente en la creación de la transacción (sección 6.1 de este manual), y a su vez entregará una serie de datos para el consumo interno por parte de la aplicación del cliente, como son el order_id para que el cliente identifique la transacción en su sistema, la transaction_id que será el identificador único en payku y un verification_key (estos dos últimos datos, permitirán desarrollar al cliente un llamado automático al método de validación en payku llamado “_validar_”, el cual está diseñado para certificar el origen de la invocación al método y así descartar cualquier alteración de los datos o intento de fraude), este método detecta cualquier alteración de los datos (monto, status, origen, moneda, email y hasta el detalle de productos o servicios).



6.3 Método “verificar”

Permite la validación de datos de transacción y la certificación del origen de llamado al método notify_url por parte de payku.


- https://app.payku.cl/gateway/verificar
- https://des.payku.cl/gateway/verificar

6.4 EJEMPLO PARA WORDPRESS - WOOCOMERCE CON PHP
- Metodo -> Pago

<form action="https://app.payku.cl/gateway/pago" method="post">
<input type=" text " name="order_id" value=""></input>
<input type=" text " name="amount" value=""></input>
<input type=" text " name="amount_order" value=""></input>
<input type=" text " name="directpay" value=""></input>
<input type=" text " name="percent" value=""></input>
<input type=" text " name="currency" value=""></input>
<input type=" text " name="email_from" value=""></input>
<input type=" text " name="token" value=""></input>
<input type=" text " name="notify_url" value=""></input>
<input type=" text " name="return_url" value=""></input>
<input type=" text " name="detail" value=""></input>
<input type="text" name="adittional" value=""></input>
<input type="submit" value="Iniciar Pago"></input>
</form>

Metodo -> Callback (return_url creado por el cliente).

//VALIDACIONES
if (isset($_POST['order_id'])) {$order_id = $_POST['order_id']; } else { $order_id = 0; }
if (isset($_POST['transaction_id'])) { $transaction_id = $_POST['transaction_id']; } else { transaction_id = 0; }
if (isset($_POST['status'])) {$status = $_POST['status']; } else {$status = 2; }
if (isset($_POST['verification_key'])) { $verification_key = $_POST['verification_key']; } else {$verification_key = 0; }

//CONSULTO LA ORDEN
$payku= new Paykulib($order_id);
$payku->setContext($this);
if (!empty($payku->order)) {
$order_total = (int)($payku->getOrderTotal());
$order_total_additonal = $order_total + round(($order_total * (float)$payku->getIncremOrder())/100.0);
$validate_parameters = $payku->validate_parameters($transaction_id, $verification_key, $order_total_additonal);
if($status == 0)
{

// NO SE RECIBIO UN ESTATUS
error_log("A. Estatus no fue recibido: ".$status.", Para la orden : ".$order_id);
$payku->order->update_status( 'failed', ( 'Pago con Payku rechazado', 'woocommerce' ));
}
else if ($status == 1)
{

//SE RECIBIO EL ESTATUS DE TRANSACCIÓN APROBADO

//LLAMAMOS AL MÉTODO DE VERIFICACIÓN EN PAYKU
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, “https://app.payku.cl/gateway/verificar? transaction_id=var&verification_key=var&token=var&currency_code=var&amount=var&email=var&detail=valor”);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
curl_close($curl);
error_log("B. Respuesta obtenida : ".$response.", Para la orden : ".$order_id );

//SI SE COMPROBO LA TRANSACCIÓN EN PAYKU
if($response == 'VALID'){
$payku->order->add_order_note(('Pago verificado desde Payku', 'woocommerce'));
$payku->order->payment_complete();
}else{
//SI LA COMPROBACIÓN CON PAYKU FALLO
$payku->order->update_status( 'failed', ( $response.'Error. Pago con Payku rechazado'));
}
}
else if($status == 2)
{
//SE RECIBIO EL ESTATUS DE TRANSACCIÓN RECHAZADO
error_log("C. Estato obtenido : ".$status.", Para la orden : ".$order_id);
$payku->order->update_status( 'failed', ( 'Error! El pago se rechazó con Payku ', 'woocommerce' ));
}
}else{
//LA ORDEN NO SE ENCONTRO EN EL E-COMMERCE
error_log("D. Operacion cancelada : ".$status.", Para la orden : ".$order_id);
$payku->order->update_status( 'failed', ( 'Error! El pago se rechazó con Payku ', 'woocommerce' ));
}
echo("OK");
¿Este artículo te resultó útil?
Cancelar
¡Gracias!