Implementación avanzada

 

Vista General
Cómo usar la Implementación Avanzada
Descripción de parámetros


Vista General

Nuestra implementación avanzada es una solución de pagos white label que te permite redirigir a tus clientes directamente a un método de pago local sin necesidad de pasar por la pantalla de pago de Paygol.

Cómo usar la implementación avanzada

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.

<form name="pg_frm" method="post" action="https://www.paygol.com/pay" >
   <input type="hidden" name="pg_serviceid" value="123">
   <input type="hidden" name="pg_currency" value="EUR">
   <input type="hidden" name="pg_custom" value="">
   <input type="hidden" name="pg_price" value="1">
   <input type="hidden" name="pg_return_url" value="">
   <input type="hidden" name="pg_cancel_url" value="">
   <input type="hidden" name="pg_mode" value="advanced">
   <input type="hidden" name="pg_country" value="GB">
   <input type="hidden" name="pg_method" value="creditcard">
   Email: <input type="text" name="pg_email"><br><br>
   Nombre: <input type="text" name="pg_first_name"><br><br>
   Apellido: <input type="text" name="pg_last_name"><br><br>
   Personal ID: <input type="text" name="pg_personalid"><br><br>
   <input type="image" name="pg_button" src="https://www.paygol.com/pay-now/images/payment-button.png" border="0" alt="Realiza pagos con Paygol: la forma mas facil!" title="Realiza pagos con Paygol: la forma mas facil!" >     
</form>

Descripción de parámetros

Los siguientes parámetros POST/GET son requeridos:

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

Nombre Código Descripción
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

 


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