Craftingstore

 

 

 


Implementación de Craftingstore

 

Panel de Paygol

  • Crea una nueva cuenta en Paygol
  • Asegúrate de que tu cuenta está en modo Live.
  • En la sección “Notificaciones”, ingresa “http://api.craftingstore.net/callback/paygol” en el campo URL de IPN. También puedes ingresar un correo para recibir notificaciones de pago.
  • También encontrarás tu ID de servicio y Secret Key, recuerda tenerlos a mano ya que los necesitarás luego.

Panel de Craftingstore

  • Ingresa a tu panel en tu cuenta de Craftingstore.
  • Ingresa a  “Gateways” en CraftingStore.
  • Selecciona «Paygol gateway«, luego ingresa el Service ID y Secret Key de tu cuenta de Paygol.
  • Selecciona “Yes” para activar Paygol.
  • Clic en “Update gateways” para completar la instalación.

Implementación básica

 

Cómo usar la Implementación Básica
Descripción de parámetros
Cómo probar tu servicio


 


Cómo usar la Implementación Básica

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_name" value="DEMO">
 <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="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:

Parámetro Descripción
pg_serviceid Este es el ID de servicio de tu cuenta.
pg_currency 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.
pg_price El precio de tu producto, puedes modificarlo fácilmente. Si tus clientes seleccionan otro país, la divisa será convertida automáticamente.
pg_name (Opcional) Descripción de tu producto/servicio, el cual será mostrado el la pantalla de pago.
pg_custom (Opcional) Campo flexible, puede ser usado para rastrear usuario, inventario, etc.
pg_return_url (Opcional) Tus clientes serán redireccionados aquí una vez que el proceso de pago sea completado (ej: https://www.misitio.com/gracias).
pg_cancel_url (Opcional) Tus clientes serán redireccionados aquí si el proceso de pago falla o es cancelado (ej: https://www.misitio.com/cancelado).
pg_button Esta es la imagen del botón de pago. Si lo deseas, puedes reemplazarla con una propia.

Cómo probar tu servicio

En la parte superior de tu panel podrás cambiar entre los modos Test y Live. En modo Test puedes simular transacciones sin necesidad de gastar dinero real (simplemente haz click en «Continuar» y se simulará un pago exitoso).

Nótese que en el modo Test no es necesario realizar acciones externas (tales como ingresar información de tu tarjeta de crédito).

 

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