Consideraciones
Para utilizar el API de tokenización de tarjetas se debe considerar lo siguiente:
El API para crear una orden de tokenización está disponible en:
El API para tokenizar una tarjeta está disponible en:
Tener una session y token de una orden de tokenización que no hay excedido los 30 minutos establecidos de vencimiento.
El formulario de tokenización de GreenPay sólo está disponible para aplicaciones web.
GreenPay tiene un proyecto de ejemplo de integración por API greeenpay/tokenize-v2-nodejs utilizando NodeJS.
Pasos para uso del API
Agregar la información de la tarjeta
Se debe agregar la información de la tarjeta de la siguiente forma:
{
card: {
cardHolder: "John Doe",
expirationDate: {
month: "12",
year: "31",
},
cardNumber: "4556762706506446",
cvc: "196",
},
}
Encriptar la información de la tarjeta
Por razones de seguridad, tanto para GreenPay como para proteger las transacciones de su comercio, se requiere que la información de la tarjeta o el token se envíe de forma segura, utilizando conexión segura TLS 1.2. Y cómo un método extra de seguridad, la información de la tarjeta se debe enviar codificada en base64.
const cardData = {
card: {
cardHolder: "John Doe",
expirationDate: {
month: "12",
year: "31",
},
cardNumber: "4556762706506446",
cvc: "196",
},
};
const base64 = Buffer.from(JSON.stringify(cardData)).toString("base64");
console.log(base64);
Donde ed corerspondería al valor codificado en base64
Enviar la información de la tarjeta tokenizada al API de tokenización de GreenPay
El resultado (session, ed) obtenido al encriptar la información de la tarjeta debe ser enviado al API de tokenización de GreenPay:
Se debe enviar el session-token en los headers, corresponde al valor del token obtenido al momento de crear la orden de tokenizacion
Respuestas recibidas
Respuesta exitosa
{
"statusCode": 200,
"result": {
"cardHolder": "John Doe",
"brand": "Mastercard",
"bin": "559727",
"last4": "1815",
"khash": "559727ZKF70RXEIDPU2B",
"token": "ecd78460-9318-11ef-8a48-19ee98944b83",
"cardMasked": "559727******1815"
}
}
Respuesta Fallida
{
"message": "Encabezado invalido: Session-Token es requerido",
"status": "fail"
}