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

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

El pago por alias permite a las webs comerciales ofrecer a sus clientes la posibilidad de asociar un método 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 bancaria).

Pago con alias

Los alias permiten:

  • El pago en 1 clic. El comprador ya no tendrá que ingresar sus datos bancarios durante los siguientes 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 sea requerido visualizar el criptograma si ésta posee uno.
  • Pago sin clic:este modo le permite crear una transacción a partir de un alias sin interacción del usuario. La creación se crea durante una llamada de servidor a servidor.
  • Pago por suscripción. Cada cuenta de cliente está asociada con una recurrencia y un monto, con una duración limitada o no en tiempo.

Bajo ciertas condiciones (consultar con el interlocutor de la plataforma de pago), es posible compartir las identificaciones (alias) entre varias entidades jurídicas. Las autenticaciones compartidas por varias entidades jurídicas deben ser únicas e imperativamente creadas por la plataforma de pago.

Creación de un alias durante el cobro

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 WebCharge/CreatePayment:

    {
        "amount": 990,
        "currency": "COP",
        "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 tendrá el alias del método de pago en la propiedad paymentMethodToken:

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

Creación de un alias sin cobro

En ciertos casos, solo querrá crear un alias sin efectuar ningún cobro. Para ello, necesita utilizar el Servicio Web Charge/CreateToken:

{
    "currency": "COP",
    "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"];

?>

La llamada funciona comoCharge/CreatePayment. Una transacción a cero euros será creada. El token sera devuelto entransactions[0].paymentMethodToken.

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

Uso de un token: pago con un solo clic con formulario

Si ha registrado previamente un método de pago (como una tarjeta), puede crear un pago transmitiendo el token 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. Un formulario pre-llenado será presentado al comprador, sólo tendrá que validarlo.

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

Para usarlo, simplemente envíe el alias creado previamente utilizando el Servicio WebCharge/CreatePayment .

Ejemplo:

    {
        "amount": 990,
        "currency": "COP",
        "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.

Pour plus d’informations, rendez-vous ici: Tester rapidement.

Uso de un token: pago sin clic sin formulario

Puede crear una transacción a partir de un alias sin interacción del usuario. La llamada será de servidor a servidor y devolverá una transacción.

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

Ejemplo:

    {
        "amount": 990,
        "currency": "COP",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        "formAction": "SILENT"
    }

Charge/CreatePayment retorna directamente una transacción como:

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