Módulo Paygol para BoxBilling, versión 1.2

 

Requerimientos

  • Instalación funcional de BoxBilling (probado hasta la versión 4.20).
  • Cuenta en Paygol, puede registrarse de forma gratuita en https://secure.paygol.com/signup

 

Instalación

  • Descargue el módulo BoxBilling.
  • Descomprima el archivo paygol-for-boxbilling_1.2.zip directamente en su carpeta base de BoxBilling.
  • Instale el módulo de Paygol en su panel de administración de BoxBilling (Configuration -> Payment Gateways -> New payment gateway), seleccione «Paygol» y presione «Install«.
  • Una vez instalado, configure el módulo (Configuration -> Payment Gateways), seleccione «Paygol» y presione sobre el icono de editar (Icono del lápiz).
  • Inicie sesión en su panel de control de Paygol y vaya a la sección “Notificaciones”, copie el ID de Servicio y el Secret Key desde tu cuenta y peguelos en los campos con los mismos nombres en la configuración del modulo Paygol de su sitio BoxBilling.
  • Copie el campo “IPN Callback URL” desde su configuración del módulo Paygol y péguela en el campo “URL de IPN” en la sección “Notificaciones” de su panel de control Paygol y luego guarde los cambios.
  • Asegúrese que los siguientes parámetros están configurado de esta manera en su módulo Paygol:
    • «Enabled: Yes«.
    • «Allow one time payments: Yes«.
    • «Enable test mode: No«
  • Presione “UPDATE” en su sitio BoxBilling, para guardar la configuración.

 

Pruebas

Para probar el módulo tras su instalación, puede activar el modo de pruebas de su servicio con el boton “Live/Test” en la esquina superior derecha de su panel de control en el sitio web de Paygol. Recuerde cambiarlo de vuelta una vez concluidas las pruebas.

 

Imagen del botón de pago

Para asegurarle de que todas las instancias del botón de pago de Paygol se visualizarán correctamente, por favor siga las siguientes instrucciones:

  • Edite el archivo «logos.css» de su instalación de BoxBilling. Este archivo se encuentra en «bb-themes/huraga/assets/css/logos.css«.
  • Agregue las siguientes lineas de código al final del archivo «logos.css» y guarde los cambios.:
    .logo-PayGol{
         background: transparent url("../img/gateway_logos/PayGol.png") no-repeat scroll 0% 0%;
         background-size: contain;
         width:80px;
         height: 28px;
         border: 0;
         margin: 10px;
    }
    

Favor de considerar:

En el caso de no utilizar la plantilla por defecto «huraga«, es necesario hacer lo siguiente:

  • Modificar el archivo CSS en la carpeta correcta, no en «huraga«. Ejemplo: «bb-themes/elThemeQueEstoyUtilizando/assets/css/logos.css«.
  • Copiar la imagen «bb-themes/huraga/assets/img/gateway_logos/Paygol.png» a una ruta similar correspondiente a la otra plantilla. Ejemplo:
    «bb-themes/elThemeQueEstoyUtilizando/assets/img/gateway_logos/Paygol.png«.
  • Como método alternativo a los puntos anteriores, simplemente cambie el nombre del directorio «huraga» al nombre del directorio que utilizará, este cambio debe aplicarlo antes de copiar el módulo Paygol a su servidor web.

 

Notas importantes

  • En modo de pruebas se realizará un llamado IPN (notificación de pago a su plataforma) inmediatamente después de cada prueba.
  • Una vez que un pago sea completado, el mismo se mostrará como completado, pero pendiente de instalación (Pending Setup) hasta que usted lo active en su panel de BoxBilling.
  • Los pagos usualmente son notificados de forma inmediata; ahora bien, algunos métodos de pago podrían tomar más tiempo en notificar la transacción (ej: métodos que toman algunos minutos en realizar la notificación, o métodos basados en boletos que deben ser impresos y pagados en efectivo). Recomendamos que informe a su clientela sobre esto a modo de evitar confusiones.


Módulo Paygol para WooCommerce, versión 1.3.3

 

Requerimientos

  • Instalación funcional de WooCommerce (probado hasta la versión 3.3.2).
  • Cuenta en Paygol, puede registrarse de forma gratuita en https://secure.paygol.com/signup

 

Instalación

  • Inicie sesión en su panel de control WooCommerce.
  • Existen 3 formas de instalar nuestro plugin en tu sitio:
  1. Vaya a “Plugins -> Add new”, escriba “paygol for woocommerce” en el campo “Search plugin” y presione “Install Now”. (RECOMENDADA)
  2. Descargue el plugin desde el Sitio Oficial de WordPress, presione “Upload plugin”, seleccione el archivo desde su equipo y luego presione “Install Now”.
  3. Descargue el plugin desde el Sitio Oficial de WordPress, abra su cliente FTP y extraiga el archivo zip en el directorio wp-content/plugins/.
  • Vaya a “Plugins -> Installed Plugins” busque “Paygol plugin for Woocommerce” y presione “Activate”.
  • Vaya a “WooCommerce->Settings->Checkout->Paygol” luego, inicie sesión en su panel de control de Paygol y vaya a la sección “Notificaciones”, copie el ID de Servicio y el Secret Key desde tu cuenta y peguelos en los campos con los mismos nombres en la configuración del modulo Paygol de su sitio WooCommerce.
  • Copie la “URL IPN” desde su configuración del módulo Paygol y péguela en el campo “URL de IPN” en la sección “Notificaciones” de su panel de control Paygol y luego guarde los cambios.
  • Presione “Save Changes” en su sitio WooCommerce.

 

Pruebas

Para probar el módulo tras su instalación, puede activar el modo de pruebas de su servicio con el boton “Live/Test” en la esquina superior derecha de su panel de control en el sitio web de Paygol. Recuerde cambiarlo de vuelta una vez concluidas las pruebas.

 

Notas Importantes

  • En modo de pruebas se realizará un llamado IPN (notificación de pago a tu plataforma) inmediatamente después de cada prueba.
  • Los pagos usualmente son notificados de forma inmediata; ahora bien, algunos métodos de pago podrían tomar más tiempo en notificar la transacción (ej: métodos que toman algunos minutos en realizar la notificación, o métodos basados en boletos que deben ser impresos y pagados en efectivo).  En esos casos el producto se mostrará como pago pendiente (“Pending payment“), y sólo una vez sea confirmado por el proveedor se mostrará como pagado (“Processing“, Lo que señala que esa orden está pagada y a la espera de ser despachada). Recomendamos que informe a su clientela sobre esto a modo de evitar confusiones.


Requerimientos

Instalación

  • Descarga el módulo para OpenCart de Paygol.
  • Ingresa a la sección de administración de tu OpenCart.
  •  Carga el archivo «paygol-for-opencart.1.2.ocmod.zip» (Extensions -> Installer -> Click en «Upload»).
  •  Instala el módulo de Paygol (Extensions -> Extensions -> Choose the extension type: «Payments» -> Buscar «Paygol» -> Click en «Install»), no cierres esta página.
  •  Haz click en «Edit» (ícono del lápiz junto al módulo correspondiente) para ingresar a a la página de configuración del módulo.
  •  Copia el «IPN URL» y pégalo en el campo «IPN URL» en la sección Notificaciones de tu panel de Paygol («Cuenta» -> «Notificaciones»). Guarda los cambios.
  • En la sección Notificaciones de tu panel de Paygol, copia el ID de Servicio y Secret Key de tu cuenta y pégalos en los campos correspondientes en la página de configuración del módulo.
  • Activa el módulo (cambia la opción «Status» a «Enabled») y guarda los cambios realizados a la configuración del módulo.

Modo de Prueba

  • Para probar el módulo tras su instalación, puedes activar el modo Test en la parte superior de tu panel de Paygol. Asegúrate de cambiarlo de vuelta a modo Live antes de comenzar a vender.

Notas Importantes

  • Mientras tu cuenta esté en modo de pruebas, se realizará una notificación de pago (llamada IPN) a tu plataforma después de cada transacción.
  •  Usualmente los pagos son notificados de forma inmediata; ahora bien, algunos métodos de pago podrían tomar más tiempo en notificar la transacción (ej: métodos que toman algunos minutos en realizar la notificación, o métodos basados en boletos que deben ser impresos y pagados en efectivo). En esos casos el producto no se mostrará en el listado de compras hasta que se confirme el pago. Recomendamos que informes a tu clientela sobre esto a modo de evitar
    confusiones.
Implementación API

 

Vista General
Cómo usar la Implementación API
Descripción de parámetros
Verificar el estado de un pago
IPN
IPN Descripción de parámetros

 

La documentación para la implementación API v1.2 está disponible.

Vista General

Nuestra implementación API ofrece un alto nivel de personalización, permitiéndote implementar una solución de pagos white label directamente en tu plataforma de una forma rápida y fácil.

Esta implementación está basada en llamadas POST/GET a servicios web, los cuales entregarán una respuesta en XML o JSON, según prefieras. La respuesta contendrá una URL a la cual podrás redirigir a tus clientes para comenzar el proceso de pago.

Cómo usar la implementación API

Para crear un nuevo pago se debe realizar un llamado a la siguiente URL:

https://www.paygol.com/pay

Descripción de parámetros

Los siguientes parámetros POST/GET son requeridos:

 

Códigos de los métodos de pago disponibles:

Nombre Cobertura Código Descripción

Ejemplo:

<?php

$endpoint_url = 'https://www.paygol.com/pay?';

$params = [
  'pg_mode'=>'api',
  'pg_serviceid'=>123,
  'pg_price'=>10.00,
  'pg_currency'=>'EUR',
  'pg_custom'=>'player123',
  'pg_country'=>'DE',
  'pg_language'=>'de',
  'pg_method'=>'creditcard',
  'pg_format'=>'json',
  'pg_ip'=>'123.13.12.13',
  'pg_email'=>'[email protected]',
  'pg_first_name'=>'josdhsn',
  'pg_last_name'=>'smitdh',
  'pg_personalid'=>'1234567238-6',
  'pg_return_url'=>'http://www.mysite.com/return.php',
  'pg_cancel_url'=>'http://www.mysite.com/cancel.php'
];

$buff = [];
foreach ($params as $k => $v) {
  array_push($buff, "{$k}={$v}");
}

$url = $endpoint_url . implode('&', $buff);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);

$response = json_decode($result, true);

Respuesta JSON

{
    "data": {
        "service_id": "123",
        "transaction_id": "NDFF-PM4J-PVIA-CM1O",
        "status": "created",
        "payment_method": "creditcard",
        "amount": "10.00",
        "currency": "EUR",
        "payment_method_url": "https://www.paygol.com/api/pay-direct/NDFF-PM4J-PVIA-CM1O",
        "customer": {
            "first_name": "john",
            "last_name": "smith",
            "email": "[email protected]",
            "phone": "5531996145534",
            "personal_id": "58888854525",
            "country": "DE"
        },
        "redirect_urls": {
            "success_url": "http://www.mysite.com/return.php",
            "cancel_url": "http://www.mysite.com/cancel.php"
        }
    }
}

Respuesta en caso de error:

{
    "error": {
        "status": 400,
        "internal_code": "9702",
        "message": "Bad request - Invalid CPF"
    }
}

Respuesta (XML)

<transaction>
  <response>OK</response>
  <service>123</service>
  <payment_method>creditcard</payment_method>
  <payment_methods>creditcard,paysafecard,bitcoin,giropay,sofort</payment_methods>
  <id>NDFF-PM4J-PVIA-CM1O</id>
  <price>10.00</price>
  <currency>EUR</currency>
  <price_consumer>10.00</price_consumer>
  <currency_consumer>EUR</currency_consumer>
  <locale>de-DE</locale>
  <payment_method_url>https://www.paygol.com/api/pay-direct/NDFF-PM4J-PVIA-CM1O
</payment_method_url>
  <custom>player123</custom>
  <return_url>http://www.mysite.com/return.php</return_url>
  <cancel_url>http://www.mysite.com/cancel.php</cancel_url>
</transaction>

Respuesta en caso de error (ejemplo):

<transaction>
  <response>NOK</response>
  <error_message>Wrong country</error_message>
</transaction>

Parámetros de respuesta formato XML.

Verificar el estado de un pago

Para verificar el estado de un pago se debe realizar una petición a la siguiente URL:

https://www.paygol.com/api/check-payment

Los siguientes parámetros POST/GET son requeridos:

Ejemplo:

<?php

$endpoint_url = 'https://www.paygol.com/api/check-payment?';

$params = [
    'service'=>'123',
    'id'=>'N38K-WMP9-HUHM-Q6G7',
    'format'=>'json',
];

$buff = [];
foreach ($params as $k => $v) {
  array_push($buff, "{$k}={$v}");
}

$url = $endpoint_url . implode('&', $buff);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($result, true));


Respuesta (JSON)
ID de transacción encontrado, independiente de su estado actual:

{
    "data": {
        "service_id": "123",
        "transaction_id": "N38K-WMP9-HUHM-Q6G7",
        "status": "created",
        "payment_method": "itau",
        "amount": "5.00",
        "currency": "EUR",
        "created_at": "2019-04-08 00:21:00",
        "completed_at": null,
        "customer": {
            "first_name": "john",
            "last_name": "smith",
            "email": "[email protected]",
            "phone": "5531996145534",
            "personal_id": "58888854525",
            "country": "BR"
        }
    }
}

Respuesta en caso de error:

{
    "error": {
        "status": 404,
        "internal_code": "0302",
        "message": "Bad request - Transaction not found"
    }
}

Respuesta (XML)
ID de transacción encontrado, independiente de su estado actual (ejemplo):

<transaction>
  <response>OK</response>
  <status>completed</status>
</transaction>

Respuesta en caso de error (ejemplo):

<transaction>
  <response>NOK</response>
  <error_message>Transaction ID not found</error_message>
</transaction>

Parámetros de respuesta formato XML.

Status Definitions

Completed-El consumidor completó el proceso de pago con éxito y se han acreditado los fondos a su cuenta
Created-El consumidor nunca completó el proceso de pago, o el pago aún no ha sido registrado por el proveedor del servicio
Failed-El consumidor intentó pagar pero el proveedor del método de pago no aceptó el pago
Rejected-Paygol ha rechazado el pago, probablemente debido a una notificación de contracargo del proveedor del método de pago

IPN

¿Qué es IPN?
Instant Payment Notification (IPN) traducido al español sería Notificación Instantánea de Pago, es un servicio de mensaje que te notifica de eventos relacionados a transacciones de Paygol. Puedes usarlo para automatizar el back-office y las funciones administrativas, tales como completar ordenes, insertar puntos o monedas, actualizar membresía, rastreo de clientes, y proveer el estado y otra información relacionada a la transacción.

Información acerca del pago
Paygol realiza una solicitud GET a tu archivo IPN cuanto tu cliente completa la transacción. Puedes usar esta notificación para finalizar y completar la orden, habilitar la descarga del material digital, información de la tienda en un CRM o en el sistema de contabilidad, etc.

¿Cómo recibir la información desde el IPN en mi página web?
Paygol provee ejemplos de código IPN para ambientes de desarrollo populares. Para archivos IPN personalizados, puedes utilizar el siguiente ejemplo como punto de inicio.

Ejemplo:

<?php 

$secret_key = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeee";  // Enter secret key for your service. 

// Secret key validation 
if ($secret_key != $_GET['key']) {
    echo "Validation error"; 
    exit;
}

// get the variables from Paygol system
$transaction_id	= $_GET['transaction_id'];
$service_id	    = $_GET['service_id'];
$country	       = $_GET['country'];
$custom	        = $_GET['custom'];
$price	         = $_GET['price'];
$currency	      = $_GET['currency'];
 
// Here you can do whatever you want with the variables, for instance inserting or updating data into your Database 

?>

IPN Descripción de parámetros