Buscar
Categoria
Tags
Implementación
Formulario incrustado
Servicios web REST
Formulario de pago
Intercambio de ficheros
Pago móvil
Ayuda y herramientas
Módulos de pago
Ejemplo de código
FAQ
Back office
SUPPORT

Creación y utilización de token (alias)

El pago en un clic también se conoce como pago por token . También se usa el término token de pago .

El pago por token permite que los sitios web comerciales ofrecezcan a sus clientes la posibilidad de asociar un medio de pago a un nombre de usuario para facilitar los pagos posteriores en la web (sin necesidad de volver a ingresar su número de tarjeta).

Pago con token

Los tokens permiten:

  • El pago en 1 clic . El comprador ya no tendrá que ingresar sus datos bancarios en los próximos pagos. En este caso, se presenta una solicitud de confirmación con un resumen de la transacción. En esta etapa, si el medio de pago es una tarjeta bancaria, es posible que se solicite el criptograma visual, si aplica.
  • Pago sin clics. Este modo permite crear una transacción a partir de un token sin interactuar con el usuario. La creación se produce durante una llamada de servidor a servidor.
  • Pago por suscripción . Cada cuenta de cliente está asociada con a recurrencia y a un monto, cuya duración puede o no estar limitada.

Bajo ciertas condiciones (consultar con el interlocutor de la plataforma de pago), es posible compartir los identificadores (tokens) entre varias entidades jurídicas. Las autenticaciones compartidas por varias entidades jurídicas deben ser únicas e generadas obligatoriamente por la plataforma de pago.

Creación de un token durante un pago

El parámetro formAction permite la creación de un token. Utilice uno de los dos valores:

formAction DESCRIPCIÓN
ASK_REGISTER_PAY Agrega una casilla en el formulario de pago para registrar la tarjeta
REGISTER_PAY El token se creará automáticamente.

El correo electrónico es obligatorio para cualquier creación de token.

En la llamada al Servicio Web Charge/CreatePayment :

    {
        "amount": 9900,
        "currency": "ARS",
        "formAction": "ASK_REGISTER_PAY",
        "orderId": "myOrderId-999999",
        "customer": {
            "email": "sample@example.com"
        }
    }
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array(
  "amount" => 250, 
  "currency" => "EUR", 
  "formAction" => "ASK_REGISTER_PAY",
  "orderId" => uniqid("MyOrderId"),
  "customer" => array(
    "email" => "sample@example.com"
));

$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>

Al final del pago, el objecto PaymentTransaction contendrá el token del medio de pago en la propiedad paymentMethodToken :

{
    "orderCycle": "CLOSED",
    "orderStatus": "PAID",
    "serverDate": "2018-10-02T16:38:13+00:00",
    "orderDetails": (...)
    "customer": (...)
    "transactions": [
    {
        "shopId": "45789921",
        "uuid": "7af034f2883240c2876f6c61c7eab8ea",
        "amount": 9900,
        "currency": "ARS",
        "paymentMethodType": "CARD",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        (...)
        "_type": "V4/PaymentTransaction"
        }
    ],
    "_type": "V4/Payment"
}

Creación de un token sin pago

En ciertos casos, puede que desee crear un token sin registrar un pago. Para ello, deberá utilizar el Servicio Web Charge/CreateToken :

{
    "currency": "ARS",
    "orderId": "myOrderId-999999",
    "customer": {
        "email": "sample@example.com"
    }  
}
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array(
  "orderId" => uniqid("MyOrderId"),
  "customer" => array(
    "email" => "sample@example.com",
));

$response = $client->post("V4/Charge/CreateToken", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>

El correo electrónico es obligatorio para cualquier creación de token.

La llamada funciona como Charge/CreatePayment . Se creará una transacción de tipo VERIFICATION.

Por lo tanto, kr-answer contendrá un objeto de tipo Payment y el token se devolverá en transactions[0].paymentMethodToken .

Uso de token: pago en un solo clic con visualización del formulario

Si ha registrado previamente un medio de pago (como una tarjeta), puede crear un pago transmitiendo el token al que se cargará en el campo paymentMethodToken durante una llamada al servicio web Charge/CreatePayment. Con este método, el comprador no necesita volver a introducir la información de su tarjeta. Se le presentará un formulario previamente rellenado para su validación.

Si su tienda está configurada para solicitar el CVV, o una autenticación 3D-Secure durante un pago por token, el formulario se ajustará automáticamente.

Para usarlo, simplemente envíe el token creado anteriormente utilizando el servicio Web Charge/CreatePayment .

Ejemplo:

    {
        "amount": 9900,
        "currency": "ARS",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56"
    }
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * create a transaction with a payment method token
 */
$store = array(
  "amount" => 250, 
  "currency" => "EUR",
  "paymentMethodToken" => "b6e51ba31f934ac5b25ccad2a52ccd56"
);

/**
 * do the web-service call
 */
$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

?>

Charge/CreatePayment devuelve un formToken. A continuación, debe generar su formulario de pago utilizando el cliente JavaScript, de la misma manera que un pago simple.

Para más información, consulte: Formulario incrustado: Probar rápidamente.

Uso de token: pago sin clics sin visualización del formulario

Puede crear una transacción a partir de un token sin la interacción del usuario (sin solicitud del CVV ni autenticación 3D Secure). La llamada se realiza de servidor a servidor y devuelve una transacción (no hay notificación de fin de pago en este caso).

Para ello, realice una llamada al servicio web Charge/CreatePayment transmitiendo el token y estableciendo formAction en SILENT .

Ejemplo:

    {
        "amount": 9900,
        "currency": "ARS",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        "formAction": "SILENT"
    }

Charge/CreatePayment devuelve directamente una transacción como:

{
    "shopId": "45789921",
    "orderCycle": "CLOSED",
    "orderStatus": "PAID",
    "serverDate": "2018-09-27T14:02:17+00:00",
    "orderDetails": (...)
    "customer": (...)
    },
    "transactions": [{
        "shopId": "45789921",
        "uuid": "5b158f084502428499b2d34ad074df05",
        "amount": 990,
        (...)
        "_type": "V4/PaymentTransaction"
    }],
    "_type": "V4/Payment"
}