Toggle navigation

Documentación

Version 2.0.0

Conecte su plataforma con el API de GlobalPay Redeban en minutos, usando SDK, botones de pago, ligas para pagar,  desde su Celular o su página Web.


Ya sea que esté creando un cobro único o guardando los datos de la tarjeta de su cliente para realizar los cobros después,  utilizar la información de la tarjeta con GlobalPay Redeban es un procesos de dos pasos:

  1. Recopile de forma segura segura información de pago mediante la tokenización de la tarjeta.
  2. Use la información de pago en una solicitud de cargo o guárdela para más adelante.

La tokenización del lado del cliente es el método que GlobalPay Redeban usa para recopilar información de la tarjeta directamente de sus clientes de manera segura. Durante este proceso, un token que representa esta información se devuelve a su servidor para su uso en una solicitud de cargo  (o para guardar los detalles de la tarjeta para su uso posterior).

La tokenización  asegura que ningún dato sensible de la tarjeta necesite estar en su servidor para que su integración pueda operar de manera compatible con PCI. Si alguna información de la tarjeta pasara por,  o se llegase a almacenar en su servidor,  usted sería responsable de cualquier penalidad o auditoría que imponga PCI DSS.

DEMO ADD CARD SDK

Github Repository

Instalación

Primero necesitas incluir jQuery y los archivos payment_[version].min.js y payment_[version].min.css dentro de tu página web especificando "UTF-8" como charset.

<script src="https://code.jquery.com/jquery-3.7.1.min.js" charset="UTF-8"></script>

<link href="https://cdn.globalpay.com.co/ccapi/sdk/payment_stable.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdn.globalpay.com.co/ccapi/sdk/payment_stable.min.js" charset="UTF-8"></script>

Uso

Para revisar ejemplos funcionales utilizando GlobalPayRedebanJS, revisa los ejemplos dentro de este proyecto.

Utilizando el Form de GlobalPay Redeban

Cualquier elemento con la clase payment-form será automáticamente convertido en una entrada de tarjeta de crédito básica con fecha de vencimiento y el check de CVC.

La manera más fácil de comenzar con la GlobalPayRedebanForm es insertando el siguiente pedazo de código:

<div class="payment-form" id="my-card" data-capture-name="true"></div>

Para obtener el objeto Card de la instancia PaymentForm, pregunte al formulario por su tarjeta.

let myCard = $('#my-card');
let cardToSave = myCard.PaymentForm('card');
if(cardToSave == null){
  alert("Invalid Card Data");
}

Si la tarjeta (Card) regresada es null, el estado de error mostrará los campos que necesitan ser arreglados.

Una vez que obtengas un objeto no null de la tarjeta (Card) del widget, podrás llamar addCard.

Biblioteca Init

Siempre debes inicializar la biblioteca.

/**
  * Init library
  *
  * @param env_mode `prod`, `stg`, `local` para cambiar ambiente. Por defecto es `stg`
  * @param client_app_code proporcionado por GlobalPay Redeban.
  * @param client_app_key proporcionado por GlobalPay Redeban.
  */
Payment.init('stg', 'CLIENT_APP_CODE', 'CLIENT_APP_KEY');

addCard Agregar una Tarjeta

La función addCard convierte los datos confidenciales de una tarjeta, en un token que puede pasar de forma segura a su servidor, para realizar el cobro al usuario.

Esta funcionalidad consume el servicio de nuestro API pero de manera segura para comercios que no cuentan con certificación PCI. Aquí podras encontrar la descripción de cada campo en la respuesta.

// Definir los handlers primero
let successHandler = function(cardResponse) {
  console.log(cardResponse.card);
  if(cardResponse.card.status === 'valid'){
    $('#messages').html('Tarjeta correctamente agregada<br>'+
                  'Estado: ' + cardResponse.card.status + '<br>' +
                  "Token: " + cardResponse.card.token + "<br>" +
                  "Referencia de transacción: " + cardResponse.card.transaction_reference
                );
  }else if(cardResponse.card.status === 'review'){
    $('#messages').html('Tarjeta en revisión<br>'+
                  'Estado: ' + cardResponse.card.status + '<br>' +
                  "Token: " + cardResponse.card.token + "<br>" +
                  "Referencia de transacción: " + cardResponse.card.transaction_reference
                );
  }else{
    $('#messages').html('Error<br>'+
                  'Estado: ' + cardResponse.card.status + '<br>' +
                  "Mensaje: " + cardResponse.card.message + "<br>"
                );
  }
  submitButton.removeAttr("disabled");
  submitButton.text(submitInitialText);
};

let errorHandler = function(err) {
  console.log(err.error);
  $('#messages').html(err.error.type);
  submitButton.removeAttr("disabled");
  submitButton.text(submitInitialText);
};

/*
 * @param uid Identificador del usuario. Este es el id que usas del lado de tu aplicativo.
 * @param email Email del usuario para iniciar la compra. Usar el formato válido para e-mail.
 * @param card La tarjeta que se desea tokenizar.
 * @param success_callback Funcionalidad a ejecutar cuando el servicio de la pasarela responde correctamente. (Incluso si se recibe un estado diferente a "valid")
 * @param failure_callback Funcionalidad a ejecutar cuando el servicio de la pasarela responde con un error.
 * @param payment_form Instancia del formulario de Pago
 */
Payment.addCard(uid, email, cardToSave, successHandler, errorHandler, myCard);

El tercer argumento para el addCard es un objeto Card que contiene los campos requeridos para realizar la tokenización.

getSessionId

El Session ID es un parámetro que GlobalPay Redeban utiliza para fines del antifraude. Llame este método si usted desea recolectar la información del dispositivo del usuario.

let session_id = Payment.getSessionId();

Una vez que tenga el Session ID, puedes pasarlo a tu servidor para realizar el cargo al usuario.

PaymentForm Referencia Completa

Inserción Manual

Si desea alterar manualmente los campos utilizados por PaymentForm para añadir clases adicionales, el placeholder o id. Puedes rellenar previamente los campos del formulario como se muestra a continuación.

Esto podría ser útil en caso de que desees procesar el formulario en otro idioma (de forma predeterminada, el formulario se representa en español), o para hacer referencia a alguna entrada por nombre o id.

Por ejemplo si desea mostrar el formulario en Inglés y añadir una clase personalizada para el card_number

<div class="payment-form">
  <input class="card-number my-custom-class" name="card-number" placeholder="Card number">
  <input class="name" id="the-card-name-id" placeholder="Card Holders Name">
  <input class="expiry-month" name="expiry-month">
  <input class="expiry-year" name="expiry-year">
  <input class="cvc" name="cvc">
</div>

Seleccionar Campos

Puedes determinar los campos que mostrará el formulario.

Field Description
data-capture-name Input para nombre del Tarjetahabiente, requerido para tokenizar
data-capture-email Input para email del usuario
data-capture-cellphone Input para teléfono celular del usuario
data-icon-colour Color de los íconos
data-use-dropdowns Utiliza una lista desplegable para establecer la fecha de expiración de la tarjeta
data-exclusive-types Define los tipos de tarjetas permitidos
data-invalid-card-type-message Define un mensaje personalizado para mostrar cuando se registre una tarjeta no permitida

El campo 'data-use-dropdowns' puede resolver el problema que se presenta con la mascara de expiración en dispositivos móviles antiguos.

Se integra en el form de manera simple, como se muestra a continuación:

<div class="payment-form"
id="my-card"
data-capture-name="true"
data-capture-email="true"
data-capture-cellphone="true"
data-icon-colour="#569B29"
data-use-dropdowns="true">

Tipos de tarjetas específicos

Si deseas especificar los tipos de tarjetas permitidos en el formulario, como Exito o Alkosto. Puedes configurarlo como en el siguiente ejemplo: Cuando una tarjeta de un tipo no permitido es capturado, el formulario se reinicia, bloqueando las entradas y mostrando un mensaje Tipo de tarjeta invalida para está operación.

<div class="payment-form"
id="my-card"
data-capture-name="true"
data-exclusive-types="ex,ak"
data-invalid-card-type-message="Tarjeta invalida. Por favor ingresa una tarjeta Exito / Alkosto."
>

Revisa todos los tipos de tarjetas permitidos por GlobalPay Redeban.

Leyendo los Valores

PaymentForm proporciona funcionalidad que le permite leer los valores del campo de formulario directamente con JavaScript.

Genera un elemento de PaymentForm y asigne un id único (en este ejemplo my-card)

<div class="payment-form" id="my-card" data-capture-name="true"></div>

El siguiente javascript muestra cómo leer cada valor del formulario en variables locales.

let myCard = $('#my-card');

let cardType = myCard.PaymentForm('cardType');
let name = myCard.PaymentForm('name');
let expiryMonth = myCard.PaymentForm('expiryMonth');
let expiryYear = myCard.PaymentForm('expiryYear');
let fiscalNumber = myCard.PaymentForm('fiscalNumber');

Funciones

Para llamar a una función en un elemento PaymentForm, sigue el patrón a continuación. Remplace el texto 'function' con el nombre de la función que desea llamar.

$('#my-card').PaymentForm('function')

Las funciones disponibles se enumeran a continuación

Function Description
card Obtiene la tarjeta del objeto
cardType Obtiene el tipo de tarjeta que se capturó
name Obtiene el nombre capturado
expiryMonth Obtiene el mes de expiración de la tarjeta
expiryYear Obtiene el año de expiración de la tarjeta
fiscalNumber Obtiene el número fiscal del usuario / cédula

Función CardType

La función cardType devolverá una cadena según el número de tarjeta ingresado. Si no se puede determinar el tipo de tarjeta, se le dará una cadena vacía.

Marcas permitidas

GlobalPay Redeban Checkout, simplifica el procesamiento de pagos en línea de manera segura. Integra rápidamente el Checkout en su sitio para proporcionar a sus usuarios una solución optimizada, ofreciendo una experiencia de pago preparada para dispositivos móviles que mejora constantemente.

La forma más fácil de integrar GlobalPay Redeban es a través de Checkout, una herramienta integrada que se encarga de crear un formulario HTML, validar la entrada del usuario y proteger los datos de la tarjeta de sus clientes. Al usar Checkout, la información confidencial de la tarjeta de crédito se envía directamente a GlobalPay Redeban y no toca tu servidor. GlobalPay Redeban devuelve a tu sitio un objeto de transacción con el resultado de la operación.

Para ver el Checkout en acción, haz clic en el botón de arriba y completa el formulario con:

  • Cualquier dirección de correo electrónico aleatoria y sintácticamente válida (cuanto más aleatoria, mejor)
  • Cualquier número de teléfono, como 777777777
  • Nombre de cualquier titular de tarjeta
  • Uno de los números de tarjeta de prueba, como 4111111111111111
  • Cualquier código CVC de tres dígitos
  • Cualquier fecha de vencimiento a futuro

Ver ejemplo de trabajo

Integración

La integración personalizada requiere habilidades sólidas de JavaScript.

Cuando se carga su página, debe crear un objeto controlador utilizando paymentCheckout.modal(). Luego puede llamar la función open() en el controlador en respuesta a cualquier evento. Si necesita abortar el proceso de pago, por ejemplo, cuando la navegación ocurre en una aplicación de una sola página, llame la función close() en el controlador.

<!DOCTYPE html>
<html>
<head>
  <title>Example | Payment Checkout Js</title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://cdn.globalpay.com.co/ccapi/sdk/payment_checkout_3.1.0.min.js"></script>
</head>
<body>
<button class="js-payment-checkout">Pay with Card</button>
<div id="response"></div>

<script>
  let paymentCheckout = new PaymentCheckout.modal({
    env_mode: 'stg', // `prod`, `stg`: to change environment. Default is `stg`
    onOpen: function () {
      console.log('modal open');
    },
    onClose: function () {
      console.log('modal closed');
    },
    onResponse: function (response) { // The callback to invoke when the Checkout process is completed

      /*
        In Case of an error, this will be the response.
        response = {
          "error": {
            "type": "Server Error",
            "help": "Try Again Later",
            "description": "Sorry, there was a problem loading Checkout."
          }
        }

        Cuando el usuario completa el flujo en el Checkout, esta será la respuesta.
        response = {
          "transaction":{
              "status": "success", // Estado de la transacccion
              "id": "CB-81011", // Id de la transaccion de lado de la pasarela
              "status_detail": 3 // Para mas detalles de los estados: /api/#detalle-de-los-estados
          }
        }
      */
      console.log('modal response');
      document.getElementById('response').innerHTML = JSON.stringify(response);
    }
  });

  let btnOpenCheckout = document.querySelector('.js-payment-checkout');
  btnOpenCheckout.addEventListener('click', function () {
    paymentCheckout.open({
      reference: '8REV4qMyQP3w4xGmABO' // reference received for Payment Gateway
    });
  });

  window.addEventListener('popstate', function () {
    paymentCheckout.close();
  });
</script>
</body>
</html>

Opciones de configuración

Cambia la apariencia y el comportamiento de Checkout con las siguientes opciones de configuración.

PaymentCheckout.modal

| Parámetro | Requerido | Descripción | | env_mode | yes | prod, stg: to change environment. Default is stg | | onOpen | no | function() Callback a invocar cuando el Checkout es abierto | | onClose | no | function() Callback a invocar cuando el Checkout es cerrado | | onResponse | yes | function(responseObject) The callback to invoke when the Checkout process is complete |

Objeto de respuesta

Cuando el usuario complete todo el flujo en el proceso de pago, esta será la respuesta.

{  
  "transaction": {  
    "status": "success", // Estado de la transacción
    "id": "CB-81011", // Id de la transacción de lado de la pasarela
    "status_detail": 3 // Para más detalles de los detalles de estado: /api/#detalle-de-los-estados
  }
}

En caso de error, esta será la respuesta.

{
  "error": {
    "type": "Server Error",
    "help": "Try Again Later",
    "description": "Sorry, there was a problem loading Checkout."
  }
}

PaymentCheckout.open

Parametro Requirido Descripción
reference yes Reference transaction. Se obtiene esta referencia al llamar al servicio init transaction.

Generar Reference

Antes de invocar el checkout, se debe generar una referencia con los datos del pago, ver /api/#metodos-de-pago-tarjetas-inicializar-una-referencia

Requisitos HTTPS

Todos los envíos de información de pago mediante Checkout se realizan a través de una conexión HTTPS segura. Sin embargo, para protegerse de ciertas formas de ataques man-in-the-middle, también debe servir la página que contiene el formulario de pago a través de HTTPS. En resumen, la dirección de la página que contiene Checkout debe comenzar con https: // en lugar de solo http: //.

Navegadores compatibles

Checkout se esfuerza por admitir todas las versiones recientes de los principales navegadores. Por razones de seguridad y para proporcionar la mejor experiencia a la mayoría de los clientes, no admitimos navegadores que ya no reciben actualizaciones de seguridad y representan una pequeña minoría de tráfico.

Evitar que se bloquee Checkout

Puede evitar que se bloquee la ventana emergente de Checkout llamando a paymentCheckout.open cuando el usuario hace clic en un elemento de la página. No llames a paymentCheckout.open dentro de un callback. Este diseño indica al navegador que el usuario está solicitando explícitamente la ventana emergente. De lo contrario, los dispositivos móviles y algunas versiones de Internet Explorer bloquearán la ventana emergente y evitarán que el uso adecuado por el cliente.

 

Qué es 3DS2 y cómo funciona

3D Secure 2 es la nueva generación de tecnología de autenticación introducida por EMVCo, una compañía  de American Express, Discover, JCB, MasterCard, UnionPay y Visa  en propiedad colectiva. Esta tecnología permite a los titulares de tarjetas autenticarse con el emisor de su tarjeta mientras realizan compras en línea sin tarjeta presente.

La nueva especificación incluye:

  • Admite compras de manera nativa  en  aplicaciones móviles  y otros dispositivos
  • Mejora la experiencia del consumidor al permitir decisiones inteligentes basadas en el riesgo que fomentan la autenticación del consumidor sin fricción
  • Ofrece características de seguridad líderes en la industria.
  • Especifica el uso de múltiples opciones para la autenticación progresiva, incluidas las contraseñas de un solo uso (OTP), así como los datos biométricos a través de la autenticación fuera de banda
  • Mejora la funcionalidad que permite a los comercios integrar el proceso de autenticación en sus experiencias de pago, tanto para aplicaciones móviles como implementaciones basadas en navegador
  • Ofrece mejoras de rendimiento para el procesamiento de mensajes de extremo a extremo
  • Agrega una categoría de mensaje sin pago para proporcionar detalles de verificación del titular de la tarjeta, para admitir diversas actividades que no conllevan pagos, como agregar una tarjeta  a una billetera digital.

A diferencia de la versión anterior donde los compradores son redirigidos a otro sitio, en 3D Secure 2 el emisor de la tarjeta realiza la autenticación dentro de su aplicación o formulario de pago. El banco emisor puede verificar la identidad del comprador utilizando enfoques de autenticación pasiva, biométrica y de dos factores.

Una transacción puede pasar por un flujo de autenticación pasiva sin fricción o un flujo de autenticación con  desafío donde el emisor requiere una mayor interacción con un comprador.

 

Flujo sin fricción

En un flujo sin fricción, el adquirente,  el emisor y la franquicia de la tarjeta intercambian toda la información necesaria en segundo plano, a través de una autenticación pasiva, utilizando la huella digital del dispositivo (device fingerprint)  del comprador.

En su integración, necesitará obtener la huella digital del dispositivo 3D Secure 2 y, sí el emisor lo valida y lo aprueba, la transacción será completada por sin más interacción por parte del comprador. (Pasos 1-4 en la siguiente figura).

Flujo con desafío

En el flujo con desafío, el emisor requiere interacción adicional del comprador para la verificación, ya sea a través de autenticación de dos factores, bromearía o métodos similares.

En 3DS 2.0, el resultado del desafío se comunica a través del DS. (Paso 6 en la figura a continuación) Por lo tanto, el comercio  es informado sobre los resultados de autenticación a través de un canal separado, que es más seguro.

Integración para sólo autenticar

Admitimos la autenticación 3D Secure 2 para transacciones web y en la aplicación móvil, con su integración de pagos en línea.

Es posible realizar solo la autenticación, sin realizar el pago.

Para mayor información revise la documentación de nuestra API para este caso.

Para una integración Web, el flujo es distinto:

Para mayor información revise la documentación de nuestra API para este caso.

 

Cobro con autenticación 3DS2

En este tipo de integración, realizaremos la autenticación e inmediatamente después se procede con el cobro.

El cobro puede llevarse a cabo a través de los distintos servicios que proveemos, dependiendo del país y del tipo de integración. Las posibilidades son: Agregar una Tarjeta, Cobro con Token, Cobro con Tarjeta Crédito y Autorizar.

Para el flujo de Agregar una Tarjeta, la autenticación será llevada a cabo antes de añadir la tarjeta en nuestra bóveda.

Para una integración Web, el flujo es el siguiente:

El flujo de autenticación 3DS 2 comienza con una solicitud de cobro. Envíe una solicitud de cobro desde su servidor con los objetos requeridos para 3D Secure2.

Maneje la transacción de acuerdo al Status and Status detail que haya obtenido. Por ejemplo, si recibe un Status Pending y un Status detail 35 proceda a renderizar el iframe oculto proporcionado en la respuesta, y después solicite la verificación (endpoint Verificar).

Las posibles respuestas de la verificación son:

  • Success: Esto significa que la autenticación fue sin fricción y el cobro ha sido autorizado.
  • Pending: El emisor requiere interacción adicional con el comprador. Prosiga con el flujo de desafío.
  • Failure:  La autenticación fue fallida o algo salió mal. En la respuesta se incluye el motivo de rechazo.

 

PSE / ACH

Los usuarios realizan una transferencia bancaria, desde su propia cuenta. La aprobación puede tomar hasta 72 horas.

Los pasos a seguir son los siguientes:

  1. Primero es necesario consultar la lista de bancos disponibles.
  2. Luego crear una transferencia bancaria, en este paso le regresaremos una URL del banco.
  3. Se deberá redireccionar al usuario al *URL del banco* que se regresó en el paso anterior.
  4. Cuando el usuario termine la transacción en la oficina virtual de su banco, será redirigido la url que fue proporcionada en la creación de la transacción response_url.
  5. Una vez que el cliente regrese a su plataforma, usted deberá consultar  el estado de la transacción, de tal manera que PSE cierre la transacción y regrese el status final. Usted obtendrá el estado final de la transacción por este servicio  y también a través del  web hook.

Efectivo

El comercio genera una referencia para que el usuario pueda pagar en una institución, con la cual se tenga un acuerdo.

Generamos referencias de pago para baloto, efecty, dimonex, puntored y reservi.

Los pasos son los siguientes:

  1. Genera una referencia.
  2. Espere hasta que el cliente final realize el pago.

Tarjetas Tuya

Es posible utilizar las tarjetas Tuya a través de nuestra plataforma, esté es una guía rápida para su uso:

  • Flujo para agregar una tarjeta Tuya

 

  1. Agregar una tarjeta utilizando nuestro  javascript, al hacerlo, obtendrá un card.token, card.status, transaction.id, entre otra información. Si el cliente tiene clave temporal clave con autenticación fuerte, el card.status será pending y el siguiente paso será el paso 2, de otra manera la tarjeta estará activa y por tanto el siguiente  paso será el 5.
  2. Si el card.status es pending entonces el card.message deberá de contener un objeto son con los datos del email o teléfono celular del cliente, para este caso deberá de mostrar uno de los siguientes mensajes a su cliente:

    Mensaje con teléfono y email:

    Enviamos a tu número de celular {phone} y a tu correo electrónico {email} una clave temporal con una vigencia de un minuto, por favor ingrésala cuando la recibas. Si no es tu número de celular o correo electrónico debes actualizar tus datos personales en los centros de atención de tu entidad financiera.

    Mensaje solo con email:

    Enviamos a tu correo electrónico {email} una clave temporal con una vigencia de un minuto, por favor ingrésala cuando la recibas. Si no es tu correo electrónico debes actualizar tus datos personales en los centros de atención de tu entidad financiera.

    Mensaje solo con teléfono celular:

    Enviamos a tu número de celular {phone} una clave temporal con una vigencia de un minuto, por favor ingrésala cuando la recibas. Si no es tu número de celular debes actualizar tus datos personales en los centros de atención de tu entidad financiera.

  3. En este paso el cliente debe de confirmar su  clave temporal,  para eso usted necesitará invocar el endpoint verificar para poder activar la tarjeta.
  4. En la respuesta del paso 3, podrá saber si la tarjeta está lista para usarse.
  5. Una vez que la tarjeta esta lista para usarse puede utilizar el cobro con token (aquí necesitará el card.token obtenido en el punto 1).
  6. Como en el paso 2 dependiendo del tipo de autenticación de la tarjeta, usted obtendrá un status y status detail, utilizados para determinar si necesita verificar la transacción o no.

Magento 2

Si ya tiene su plataforma de comercio electrónico en Magento 2, tenemos el módulo para usar nuestras soluciones de pago.

Cómo instalar el módulo GlobalPay Redeban para Magento 2:

This module is a solution that allows Magento users to easily process payments with Globalpay.

Descarga e instalación

1. Execute this command for install our package:

Install the latest version. composer require globalpay/payment-gateway

Install a specific version. composer require globalpay/payment-gateway:2.3.1

Once the installation finished, continue with the next commands in your bash terminal.

2. Update dependency injection:

php bin/magento setup:di:compile

3. Update modules registry:

php bin/magento setup:upgrade

Optional.- This command is optional for production environments:

php bin/magento setup:static-content:deploy

Now you can see the Globalpay settings in this path Stores > Configuration > Sales > Payment Methods on your Magento admin dashboard.

Mantenimiento

If you need update the plugin to latest version execute: composer update globalpay/payment-gateway or composer require globalpay/payment-gateway:2.3.1 for specific version.

Notificaciones del webhook y actualización de pedidos

Every time a transaction changes their status you will get an HTTP POST request from Globalpay to your webhook.

The URL that will be used for the order updates via webhook is: https://magentodomain.com/rest/V2/webhook/globalpay

This URL will be configured on Globalpay.

La configuración del módulo en el panel de administración se ve así:

Configuración para LinkToPay:

WooCommerce

Globalpay Payment Gateway Plugin para WooCommerce

Descargar última versión en GitHub

Este es un plugin de WordPress que integra la pasarela de pagos de Globalpay en WooCommerce, ofreciendo dos métodos de pago independientes:

Globalpay Checkout: Pagos con tarjeta de crédito/débito mediante un modal seguro usando el SDK oficial de Globalpay.

Globalpay Link to Pay: Enlace de pago hospedado que redirige al cliente a la plataforma de Globalpay, con soporte para PSE, efectivo, billeteras digitales y más.

Requisitos

  • WordPress 6.5 o superior
  • WooCommerce 8.0 o superior
  • PHP 7.4 o superior (compatible con PHP 8.x)

1.- Prerrequisitos

1.1.- XAMPP, LAMPP, MAMPP, Bitnami o cualquier entorno de desarrollo PHP

  • XAMPP: https://www.apachefriends.org/download.html
  • LAMPP: https://www.apachefriends.org/download.html
  • MAMPP: https://www.mamp.info/en/mac/
  • Bitnami: https://bitnami.com/stack/wordpress

1.2.- Wordpress

Si ya instaló la opción Bitnami, este paso se puede omitir.

La documentación necesaria para instalar y configurar Wordpress se encuentra en el siguiente enlace:

https://wordpress.org/support/article/how-to-install-wordpress/

Se deben cumplir todos los requisitos mínimos (PHP y MySQL) para que el plugin desarrollado funcione correctamente.

1.3.- WooCommerce

La documentación necesaria para instalar WooCommerce se encuentra en el siguiente enlace:

https://docs.woocommerce.com/document/installing-uninstalling-woocommerce/

Allí también encontrará la información necesaria para solucionar problemas relacionados con la instalación.

1.4.- WooCommerce Admin

La documentación necesaria para instalar WooCommerce se encuentra en el siguiente enlace:

https://wordpress.org/plugins/woocommerce-admin/

Allí también encontrará la información necesaria para solucionar problemas relacionados con la instalación.

2.- Repositorio de Git

Puede descargar la versión estable actual desde:

https://github.com/globalpayredeban/globalpay_woocommerce_v3/releases

3.- Instalación del Plugin

El desarrollo funciona como un complemento de Wordpress que se conecta a otro complemento de Wordpress, WooCommerce.

Entonces, cuando está instalado y activado, se utilizan los hooks y actions de WooCommerce y Wordpress.

3.1 Instalación y Activación a Través del Administrador de WordPress

Cuando tengamos el proyecto comprimido en formato .zip, procedemos a la instalación a través de Administrador de WordPress.

  1. El primer paso será iniciar sesión en Administrador de WordPress como administrador.

  2. Estando en la pantalla principal del administrador hacemos clic en la pestaña Plugins.

  3. Dentro de la pantalla de Plugins hacemos clic en Agregar nuevo.

  4. Dentro de la pantalla Agregar Plugins, hacemos clic en Cargar Plugin.

  5. Se mostrará la opción de cargar nuestro plugin en formato .zip. Lo subimos y hacemos clic en el botón Instalar ahora.

  6. Seremos redirigidos a la pantalla de instalación del plugin. Esperamos que el mensaje "Plugin se ha instalado correctamente" y hacemos clic en el botón Activar plugin.

  7. Seremos redirigidos a la pantalla de Plugins dónde veremos nuestro plugin instalado y activado.

3.2. Idiomas

El idioma del plugin se selecciona dinámicamente de acuerdo con el idioma configurado en WordPress. Los idiomas disponibles son:

  • Inglés (Default)
  • Español
  • Portugués

4.- Activación y Configuración del Complemento en WooCommerce

Luego de haber instalado el plugin en WordPress debemos proceder a configurarlo en el administrador de WooCommerce. El plugin registra dos métodos de pago independientes que deben activarse y configurarse por separado.

Navegamos a WooCommerce → Configuración → Pagos donde veremos ambos métodos detectados e instalados: Globalpay Checkout y Globalpay Link to Pay.

4.1 Activación de las Pasarelas de Pago

Para cada método de pago, activamos el botón Habilitado en la pantalla de Pagos de WooCommerce. Esta habilitación es independiente de la activación del plugin en WordPress que realizamos anteriormente.

4.2 Configuración de Globalpay Checkout (Pago con Tarjeta)

Hacemos clic en Gestionar al costado de Globalpay Checkout.

Las opciones a configurar son:

  • Habilitar/Deshabilitar: Activa este método de pago en el checkout de la tienda.

  • Entorno: Selecciona Staging (pruebas) o Producción. En Staging el plugin apuntará al servidor de pruebas de Globalpay.

  • Título: Texto que verá el cliente junto al método de pago en el checkout.

  • Descripción: Mensaje que verá el cliente al seleccionar este método de pago.

  • Texto del Botón: Texto que se mostrará en el botón de pago del modal.

  • Código de App: Identificador único proporcionado por Globalpay.

  • Clave de App: Clave utilizada para cifrar la comunicación con Globalpay.

4.3 Configuración de Globalpay Link to Pay

Hacemos clic en Gestionar al costado de Globalpay Link to Pay. Las opciones a configurar son:

  • Habilitar/Deshabilitar: Activa este método de pago en el checkout de la tienda. Soporta PSE, efectivo, billeteras digitales y transferencias bancarias.

  • Entorno: Selecciona Staging (pruebas) o Producción.

  • Título: Texto que verá el cliente junto al método de pago en el checkout.

  • Descripción: Mensaje que verá el cliente al seleccionar este método de pago.

  • Código de App: Identificador único proporcionado por Globalpay.

  • Clave de App: Clave utilizada para cifrar la comunicación con Globalpay.

5.- Seleccionar el Plugin en el Checkout de la Tienda

Cuando tengamos nuestro plugin activado y configurado en WooCommerce, lo veremos disponible para ser seleccionado por los clientes en la página de Checkout de nuestra tienda.

Simplemente selecciónelo, complete los Detalles de facturación y haga clic en el botón Realizar pedido.

Al hacer clic llegaremos a la ventana Order-Pay o Pay For Order en la que veremos un resumen de nuestro pedido. Se mostrará el botón Pagar con Tarjeta y/o Pagar con Efectivo/Transferencia Bancaria, que abrirá el proceso de pago.

6.- Proceso para Hacer un Reembolso

El proceso de reembolso comenzará en la ventana principal de administración de Wordpress.

Seleccionamos la pestaña WooCommerce y hacemos clic en la opción Pedidos.

Seleccionamos el pedido que queremos reembolsar y se abrirá la ventana Editar pedido.

En el detalle del artículo encontraremos el botón Reembolso, hacemos clic y se mostrarán las opciones de reembolso.

Tecleamos la cantidad a reembolsar y hacemos clic en el botón Reembolso vía Globalpay. El estado dentro de WooCommerce cambiará y también lo hará el estado en la puerta de enlace.

7.- Configuración del Webhook

El complemento incluye un endpoint de webhook para recibir notificaciones de transacciones desde Globalpay y actualizar automáticamente los estados de los pedidos en WooCommerce. La validación se realiza mediante HMAC-SHA256.

Para configurarlo, el comercio debe registrar la URL del webhook en el panel de Globalpay. La URL sigue el siguiente formato:

https://{{URL-COMMERCE}}/wp-json/globalpay/webhook/v1/params

Nota: Si el sitio usa permalinks planos (plain permalinks), utilizar el formato alternativo:

https://{{URL-COMMERCE}}/?rest_route=/globalpay/webhook/v1/params

Globalpay Payment Gateway Plugin para Prestashop

Descargar la última versión en GitHub

Este complemento integra la pasarela de pago de Globalpay en Prestashop.

Requisitos

  • PrestaShop 8.0.0 o superior (8.x y 9.x)
  • PHP 7.4 o superior (compatible con PHP 8.x)
  • Cualquier entorno de desarrollo PHP como XAMPP, LAMPP, MAMPP o Bitnami

1.- Instalación

Importante para instalaciones junto con otros plugins Globalpay: al descargar el ZIP de este repositorio, renombre la carpeta a un nombre soportado distinto de pg_prestashop_plugin para evitar conflictos.

Nombres de carpeta soportados actualmente:

  • pg_prestashop_plugin
  • globalpay_payment
  • pg_globalpay_plugin
  1. Descargue el ZIP del repositorio.
  2. Descomprima y renombre la carpeta (recomendado): pg_prestashop_pluginpg_globalpay_plugin.
  3. Suba la carpeta a /modules/ en su servidor PrestaShop.
  4. Vaya a Back Office → Módulos, busque Globalpay e instálelo.

2.- Prerrequisitos

2.1.- XAMPP, LAMPP, MAMPP, Bitnami o cualquier entorno de desarrollo PHP

  • XAMPP: https://www.apachefriends.org/download.html
  • LAMPP: https://www.apachefriends.org/download.html
  • MAMPP: https://www.mamp.info/en/mac/
  • Bitnami: https://bitnami.com/stack/prestashop

2.2.- Prestashop

Advertencia: si ya instaló la opción Bitnami, este paso se puede omitir.

Prestashop es una solución de comercio electrónico desarrollada en PHP. Este plugin es compatible con PrestaShop 8.0.0 y versiones posteriores (8.x y 9.x).

Descargar  |  Guía de instalación

3.- Repositorio Git

Puede descargar la versión estable actual desde:

https://github.com/globalpayredeban/pg_prestashop_plugin/releases

4.- Instalación del plugin en Prestashop

  1. Primero, necesitamos descargar la versión estable actual del plugin de Globalpay para Prestashop del paso anterior.
  2. Necesitamos descomprimir el archivo y localizar la carpeta del plugin.
  3. Ahora renombre la carpeta a globalpay_payment.
  4. Comprima la carpeta en formato zip para obtener un archivo llamado globalpay_payment.zip.
  5. Necesitamos iniciar sesión en el panel de administración de Prestashop.
  6. Ahora hacemos clic en Modules -> Module Manager
  7. En el administrador de módulos hacemos clic en el botón Upload a module
  8. Hacemos clic en select file, o podemos drop el archivo del plugin de Globalpay para Prestashop en formato .zip
  9. Esperamos hasta que la pantalla Installing module cambie a Module installed!.
  10. Ahora podemos hacer clic en el botón Configure que se muestra en la pantalla o en el botón Configure de la sección Payment en el Module manager.
  11. Dentro de las Payment Gateway Configurations debemos configurar las Server credentials proporcionadas por Globalpay, seleccionar el Idioma de checkout que verá el usuario y elegir un entorno; por defecto STG (Staging) está seleccionado.
  12. ¡Felicitaciones! Ahora tenemos el plugin de Globalpay para Prestashop correctamente configurado.

5.- Consideraciones y comentarios

5.1.- Reembolsos

  • El plugin soporta Reembolsos parciales y Reembolsos estándar para pagos con tarjeta.
  • Los pedidos de LinkToPay no son reembolsables desde el flujo del back-office del plugin.
  • Standard Refund usa el monto total pagado del pedido cuando se selecciona Credit slip en PrestaShop.

5.2.- Webhook

El plugin de Globalpay para Prestashop tiene un webhook interno para mantener actualizados los estados de las transacciones entre Prestashop y Globalpay. Siga los siguientes pasos para configurarlo:

  1. Inicie sesión en el Back-office de Prestashop.
  2. Vaya a Parámetros avanzados -> Web Services para abrir la página de servicios web.
  3. Se mostrará la lista de servicios web disponibles y el formulario de configuración del servicio.
  4. Debe habilitar el campo llamado Enable Prestashop webservice.
  5. Haga clic en el botón Save.
  6. El módulo crea automáticamente la clave de servicio web globalpaywebhook durante la instalación.
  7. Edite esa clave en Advanced Parameters -> Web Services y habilite manualmente el permiso POST para globalpaywebhook.
  8. Puede revisar/copiar la clave generada en esa misma pantalla.
  9. El webhook se encuentra en https://{mystoreurl}/api/globalpaywebhook?ws_key=THE_KEY_CREATED_BY_THE_MODULE.
  10. Debe proporcionar esta URL a su agente de Globalpay.