Solicitar token de Pago V1

Conceptos Generales

El token de pago es un identificador único que representa los datos de la tarjeta de crédito del cliente. Este token es el que se debe enviar a su backend para realizar la transacción.

En esta guia detallamos el paso a paso para obtener el token para generar un pago con tarjeta de manera segura desde tu backend, deves solicitar el token de pago con nuestro SDK en tu frontend y luego enviarlo a tu backend siguiendo las instrucciones de estos ENDPOINTS

Los pasos son:

  • Importar el SDK y hacer la captura de datos mediante el SDK, enviar el token de pagos y datos adiconales que nuestro sdk genera a tu backend.
  • Generar una solicitud de pago con tarjeta desde tu backend: Ver
  • Realizar la transacción con el token de pago: Ver

Importar el SDK

En su código html puede importar la ultima versión de nuestro SDK de la siguiente forma

<script src="https://cdn.zenrise.io/libraries/js/sdk/zenrise-sdk-latest.js" charset="utf-8"></script>

Configuración de entorno del SDK y parámetros

Para usar el SDK, debe instanciarlo con los parámetros correspondientes para el entorno que desee utilizar. Puede optar por el entorno de Sandbox para realizar pruebas, y cuando esté listo, cambiar a producción. Los parámetros disponibles son:

Sandbox Común

const zenrise = new Zenrise.Sdk('DEV');

Sandbox Suscripciones

const zenrise = new Zenrise.Sdk('DEV',3);

Sandbox Ahora 12

const zenrise = new Zenrise.Sdk('DEV',4);

Producción para pagos únicos

const zenrise = new Zenrise.Sdk('PROD');

Producción para suscripciones

const zenrise = new Zenrise.Sdk('PROD', 3);

Producción para Ahora 12

const zenrise = new Zenrise.Sdk('PROD',4);

Tokenizar Datos de Tarjeta

Para tokenizar los datos de la tarjeta del cliente, debe llamar al método getCardToken() y pasarle los datos correspondientes. A continuación, se muestra la estructura de datos requerida por el método:

function getCardData() {
const holderId = {
type: "dni",
number: "31658703"
}
return {
card_number: "4507000000000000",
card_expiration_month: "08",
card_expiration_year: "22",
security_code: "123",
card_holder_name: "Esteban Mesa",
card_holder_identification: holderId
}
}

Nota: Si está utilizando la tokenización para generar suscripciones, el campo security_code no es necesario y no debe ser enviado.

Una vez que tenga los datos de la tarjeta construidos de esta manera, debe llamar al método que genera el token de pago correspondiente:

async function getPaymentToken() {
const paymentToken = await zenrise.getCardToken(getCardData())
console.log(paymentToken)
return paymentToken
}

El objeto payment token es el que deberá ser enviado a su backend y esta compuesto de la siguiente forma

{
token: "14d90286-f315-4ebf-8763-c3f2c11588dc",
bin: "450700",
lastFourDigits: "0000",
fingerPrintId:"14d90286-f315-4ebf-8763-c3f2c11588dc",
}

Importante!

Este token de pago es único por transacción por lo tanto cada vez que quiera hacer una transacción por mas que sea un re intento deberá volver a solicitarlo

Funciones para calcular cuotas disponibles

resolveInstallmentsPerCardNumberAndAmount(cardNumber, amount)

Esta función calcula las cuotas disponibles para un monto de transacción específico y los primeros 4 número de tarjeta. La función devuelve una promesa que se resuelve con los detalles de las cuotas disponibles.

Ejemplo:

var zenrise = new Zenrise.Sdk('DEV', 1);
zenrise.resolveInstallmentsPerCardNumberAndAmount("4540", 5000).then(response => console.log(response));
print:
[
{
totalAmount: 5000,
amountPerInstallment: 5000,
installments: 1,
coefficient: 1
}, ...
]

resolveInstallmentsPerCardBrandAndAmount(CardType, amount)

Esta función calcula las cuotas disponibles para un monto de transacción específico y una marca de tarjeta (Visa, Mastercard, etc.). La función devuelve una promesa que se resuelve con los detalles de las cuotas disponibles.

Ejemplo:

var zenrise = new Zenrise.Sdk('DEV', 1);
zenrise.resolveInstallmentsPerCardBrandAndAmount("naranja", 5000).then(response => console.log(response));
print:
[
{
totalAmount: 5000,
amountPerInstallment: 5000,
installments: 1,
coefficient: 1
}, ...
]