Webcheckout

Implementación Web checkout
Descripción de parámetros
Métodos de pago disponibles

Implementación Web checkout

A continuación encontrarás un código de muestra para tu botón de pago. Simplemente reemplaza los valores de ejemplo según se requiera y estarás listo para comenzar a recibir pagos.

Descripción de parámetros

Parámetro Tipo Descripción Requerido
pg_serviceid integer Este es el ID de servicio de tu cuenta. requerido
pg_price numeric Monto de la transacción. requerido
pg_currency string Tipo de divisa especificado en código alfabético ISO 4217 que quieres
usar (Ej: EUR, USD, GBP, MXN, etc.).
Ver lista completa de códigos de divisa.
requerido
pg_country string País del pagador, en formato ISO 3166-2 (ej: GB, DE, ES).
Ver listado
requerido
pg_language string Idioma, en formato ISO 639-1 (ej: es, en). Si el idioma proporcionado no
está disponible, utiliza inglés por defecto.
opcional
pg_method string Método de pago. Favor de revisar la tabla que se presenta a continuación
para una lista de métodos disponibles y sus códigos. Para más
información referente a cada método de pago, visita nuestra página de
Costos.
requerido solo para checkout transparente
pg_name string Descripción de tu producto/servicio, el cual será mostrado el la
pantalla de pago.
opcional
pg_custom string Campo flexible, puede ser usado para rastrear usuario,
inventario, etc.
opcional
pg_email string Dirección de correo electrónico del pagador. requerido solo para checkout transparente
pg_phone string Número de teléfono del pagador.
Requerido en Brasil para Banco Do Brasil, Itaú, Santander y Bradesco. En Perú Pagoefectivo
requerido solo para checkout transparente en algunos métodos locales.
pg_first_name string Nombre del pagador. requerido solo para checkout transparente
pg_last_name string Apellido del pagador. requerido solo para checkout transparente
pg_personalid string Número de identificación local del pagador. requerido solo para checkout transparente en algunos métodos locales
pg_sub_merchant_id string opcional
pg_sub_merchant_id string opcional
pg_return_url string Tus clientes serán redireccionados aquí una vez que el
proceso de pago sea completado (ej:
https://www.misitio.com/pago-completado).
opcional
pg_cancel_url string Tus clientes serán redireccionados aquí si el proceso de pago
falla o es cancelado (ej: https://www.misitio.com/pago-cancelado).
opcional

Métodos de pago disponibles:

Nombre Código Descripción

Tarjeta de crédito

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Bitcoin

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Webpay

pg_country requerido
pg_email requerido

Multicaja

pg_country requerido
pg_email requerido

Servipag

pg_country requerido
pg_email requerido

PagoEfectivo

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido
pg_phone requerido

Pago Fácil

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Rapipago

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Paysafecard

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Giropay

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido (Usar este campo para BIC)

iDEAL

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Sofort

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

EPS

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

SEPA

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

MyBank

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Verkkopankki

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Przelewy24

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Bancontact

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido

Bradesco

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido
pg_phone requerido (Formato Ej.: 5531123456789)

OXXO

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Itaú

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido
pg_phone requerido (Formato Ej.: 5531123456789)

Davivienda

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Boleto

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Redpagos

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Santander Brasil

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido
pg_phone requerido (Formato Ej.: 5531123456789)

Santander México

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Banco do Brasil

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido
pg_phone requerido (Formato Ej.: 5531123456789)

PSE

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

Efecty

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
pg_personalid requerido

ViaBaloto

pg_country requerido
pg_email requerido
pg_first_name requerido
pg_last_name requerido
Notificación Instantánea de Pago V2 (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 órdenes, 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 llamada GET/POST a la URL de tu servicio IPN previamente configurado en cuanto tu cliente completa la transacción. Puedes usar esta notificación para finalizar y completar las órdenes, habilitar la descarga de 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 de implementación

<?php 

use Paygol\Notification;

/**
 * Merchant service ID
 *
 * @var int
 */
$service_id = "123";
/**
 * Merchant shared secret
 *
 * @var string
 */
$shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31";

$ipn = new Notification($service_id, $shared_secret);

try {
    $ipn->validate();

    $params = $ipn->getParams();

    var_dump($params);
    
    // do something

    // Confirm reception
    $ipn->sendResponse(['OK'], 200);
} catch (\Exception $e) {
    $ipn->sendResponse(['error' => 'Validation error'], 400);
}

La petición anterior devuelve un objeto JSON estructurado de la siguiente manera:

{
  "country": "ES",
  "currency": "USD",
  "custom": "Producto 1 - Producto 2 - Producto 3",
  "method": "teleingreso",
  "price": "10.00",
  "service_id": "123",
  "status": "completed",
  "transaction_id": "ZISS-A7Q8-RE2Z-S73W"
}

 

Manejo de notificaciones

El manejo correcto de las notificaciones es crucial para asegurarse de que la lógica de negocios de su integración funcione como se espera.

 

Confirmación de las notificaciones

Si su script de notificaciones ejecuta una lógica muy compleja o realiza llamadas a la red, es posible que el tiempo de espera se agote antes de que Paygol reciba la confirmación de recepción. Idealmente, su código que maneja la recepción de notificaciones (acusando recibo con código de estado 2xx) sea independiente de cualquier otra lógica.

 

Manejo de notificaciones duplicadas

Los endpoints de notificaciones pueden recibir en ocasiones la misma notificación más de una vez. Es por eso que recomendamos que evite recibos de notificaciones duplicados haciendo que su procesamiento de eventos sea idempotente.

Implementación API

Vista General
Cómo usar la Implementación API
Descripción de parámetros
Métodos de pago disponibles
Consultar métodos de pago
Creando una Transacción
Verificar el estado de una transacción
Estados

 


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 formato JSON. La respuesta contendrá la URL a la cual deberás redirigir a tus clientes para comenzar el proceso de pago.

Cómo usar la implementación API

https://www.paygol.com/api/v2/

Descripción de parámetros

Métodos de pago disponibles

Nombre Cobertura Código Descripción

Consultar métodos de pago

Esta función devuelve una lista con los métodos de pago válidos para el país solicitado.

<?php

use \Paygol\API;
use \Paygol\Exceptions\InvalidParameterException;

/**
 * Merchant service ID
 *
 * @var int
 */
$service_id = "123";

/**
 * Merchant shared secret
 *
 * @var string
 */
$shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31";

try {
  $pg = new API($service_id, $shared_secret);

  $payment_methods = $pg->getPaymentMethods("de");

  var_dump($payment_methods);
} catch (\Exception $e) {
  die($e->getMessage());
}

Resultado de la petición

{
  "methods": {
    "creditcard": {
      "code": "creditcard",
      "name": "Credit Card",
      "image": "https://www.paygol.com/pay-now/images/method_button_creditcard.png"
    },
    "paysafecard": {
      "code": "paysafecard",
      "name": "Paysafecard",
      "image": "https://www.paygol.com/pay-now/images/method_button_paysafecard.png"
    },
    "bitcoin": {
      "code": "bitcoin",
      "name": "Bitcoin",
      "image": "https://www.paygol.com/pay-now/images/method_button_bitcoin.png"
    },
    "giropay": {
      "code": "giropay",
      "name": "Giropay",
      "image": "https://www.paygol.com/pay-now/images/method_button_giropay.png"
    }
  }
}


Creando una Transacción

Cada solicitud de pago en la API generará una transacción. Cada Transacción se identifica de forma única por el ID de Transacción. Para obtener detalles sobre una transacción, debe realizar una solicitud GET por separado.

<?php

use \Paygol\API;
use \Paygol\Models\Payer;
use \Paygol\Models\RedirectUrls;


/**
 * Merchant service ID
 *
 * @var int
 */
$service_id = "123";

/**
 * Merchant shared secret
 *
 * @var string
 */
$shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31";

try {
    $pg = new API($service_id, $shared_secret);

    $redirectUrls = new RedirectUrls();
    $redirectUrls->setRedirects(
        "https://www.my-site.com/success", 
        "https://www.my-site.com/failure"
    ); // optional

    $pg->setRedirects($redirectUrls);

    $pg->setCountry('DE');
    $pg->setPrice(11.00, 'EUR');
    $pg->setPaymentMethod('bitcoin');

    $payer = new Payer();
    $payer->setFirstName('John');
    $payer->setLastName('Doe');
    $payer->setEmail('[email protected]');
    $payer->setBIC('123423432');

    $pg->setPayer($payer);

    $payment = $pg->createPayment();

    var_dump( $payment );

    if (!empty($payment['data']['payment_method_url'])) {
        // do something
    }
} catch (\Exception $e) {
    die($e->getMessage());
}

La petición anterior devuelve un objeto JSON estructurado de la siguiente manera:

{
  "data": {
    "service_id": "123",
    "transaction_id": "ABCD-ZZZZ-BIKE-R000",
    "status": "created",
    "payment_method": "bitcoin",
    "amount": "11.00",
    "currency": "EUR",
    "payment_method_url": "https://www.paygol.com/api/pay-direct/ABCD-ZZZZ-BIKE-R000",
    "custom":"internalID=918273645",
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]",
      "phone": "5699334453",
      "personal_id": "111111111",
      "country": "CL"
    },
    "redirect_urls": {
        "success_url": "https://www.my-site.com/success",
        "cancel_url": "https://www.my-site.com/failure"
      }
  },
}

Verificar el estado de una transacción

<?php

use \Paygol\API;

/**
 * Merchant service ID
 *
 * @var int
 */
$service_id = "123";

/**
 * Merchant shared secret
 *
 * @var string
 */
$shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31";

try {
    $pg = new API($service_id, $shared_secret);

    $status = $pg->getPaymentStatus('1234-5678-ABCD-EFGH');

    var_dump( $status );
} catch (\Exception $e) {
    die($e->getMessage());
}

La petición anterior devuelve un objeto JSON estructurado de la siguiente manera:

{
  "payment": {
    "service_id": "123",
    "transaction_id": "ABCD-ZZZZ-BIKE-R000",
    "status": "created",
    "payment_method": "webpay",
    "amount": "11.00",
    "currency": "EUR",
    "created_at": "2019-05-30 22:01:46",
    "completed_at": null,
    "custom":"internalID=918273645",
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]",
      "phone": "5699334453",
      "personal_id": "111111111",
      "country": "CL"
    }
  }
}

Estados

Estado Código Descripción
Notificación Instantánea 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'];
$frmprice	        = $_GET['frmprice'];
$frmcurrency	     = $_GET['frmcurrency'];

// 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