Objetivo
Aceptar pagos con tarjeta con T1pagos es un proceso de 3 pasos con acciones del lado del cliente (front-end) y del servidor (back-end)
- Device fingerprint.- En tu sitio web, que esta siendo ejecutado en el navegador del cliente, se inserta un archivo de javascript que envía a la herramienta de prevención de fraude, la información del dispositivo del cliente (1) y este le regresa al navegador un identificador único del dispositivo llamado device_fingerprint (2).
- Tokenización.- Cuando tu cliente de clic en Pagar, tu sitio deberá enviar a T1pagos la información de la tarjeta de tu cliente (3) y este le regresará un token único de la tarjeta (4). Después tu sitio deberá enviar a tu servidor el token, device_fingerprint y todos los datos del pedido (5).
- Cargo.- Tu servidor deberá hacer un request al API de T1pagos para crear un cargo y complementar el pago.
La tokenización asegura que la información sensible de la tarjeta nunca toque tu servidor, lo que te permite minimizar el alcance de una certificación PCI Compliance.
- Front end Comercio, a través de un Javascript, envía datos del navegador a Herramienta de Prevención de Fraude (opcional)
- Herramienta de Prevención de Fraude envía Device fingerprint generado
- Front end Comercio envía datos de tarjeta a T1pagos
- T1pagos regresa un token
- Front end Comercio envía datos de pedido a Back end comercio
- Back end de Comercio solicita creación de cargo enviando datos del pedido a T1pagos
- T1pagos evalúa y procesa la transacción al switch correspondiente y envía respuesta final a Back end Comercio
Cargo a tarjeta
1. Formulario de tarjeta
Para pedirle al cliente la información de la tarjeta y poder realizar los pasos del device_fingerprint y tokenización de tarjeta, es necesario tener un formulario HTML indicándole al cliente las tarjetas soportadas.
Ejemplo de formulario:
2. Sistema de Prevención de Fraude
Para integrar a tu sitio web la librería javascript de generación de device_fingerprint hay que seguir la guía oficial de cybersource, más información consultar con el equipo T1pagos.
3. Tokenización
El envío de datos de la tarjeta se realizará haciendo una petición al método POST /tarjeta.
Request:
{
"nombre": "NOMBRE DEL TITULAR",
"pan": "4242424242424242",
"expiracion_mes": "03",
"expiracion_anio": "22",
"cvv2": "123", "default": true
}
Response:
{
"status": "success",
"data": {
"tarjeta": {
"cliente_id": "ba3e968d-95d0-4a4d-928b-808a58ffbb55",
"default": true,
"nombre": "NOMBRE DE TITULAR",
"iin": "424242",
"terminacion": "4242",
"pan": "424242******4242",
"marca": "visa",
"expiracion_mes": "03",
"expiracion_anio": "22",
"token": "5c4a7103-d35f-4136-98be-6210d57b0ca3",
"actualizacion": "2018-08-28T11:52:11-05:00",
"creacion": "2018-08-28T11:52:11-05:00"
}
},
"http_code": 200,
"datetime": "2018-08-28T11:52:11-05:00",
"timestamp": 1535475131
}
4. Envío de datos a tu servidor
Deberás de enviar de tu sitio web a tu servidor los datos de device_fingerprint, token de tarjeta junto con todos los datos de pedido.
5. Crear un cargo
Para generar un cargo, tu servidor debe hacer una petición al API de T1pagos usando el método POST /cargo. Aquí construiremos un cargo con datos básicos, es recomendable incluir la mayor cantidad posible de datos al hacer peticiones de prueba y en ambientes productivos.
Request:
{
"monto": "10",
"descripcion": "Cargo de prueba",
"pedido": {
"device_fingerprint": "5834125431628311477"
},
"metodo_pago": "tarjeta",
"tarjeta": {
"token": "5c4a7103-d35f-4136-98be-6210d57b0ca3"
}
}
Response:
{
"status": "success",
"data": {
"cargo": {
"id": "ce6fa69d-a2ab-471a-b2a9-9ed18f3241b7",
"monto": "200.0000",
"tipo": "cargo",
"orden_id": 0,
"cliente_id": "ba3e968d-95d0-4a4d-928b-808a58ffbb55",
"estatus": "rechazada",
"codigo": "do_not_honor",
"descripcion": "La transacción fue declinada por un motivo desconocido",
"prueba": true,
"tarjeta": {
"creacion": "2018-08-29T00:56:45-05:00",
"nombre": "NOMBRE DE CLIENTE",
"expiracion_mes": "03",
"expiracion_anio": "22",
"token": "5c4a7103-d35f-4136-98be-6210d57b0ca3",
"iin": "424242",
"marca": "visa",
"terminacion": "4242"
}
}
},
"http_code": 200,
"datetime": "2018-08-29T00:56:45-05:00",
"timestamp": 1535522205
}
Al procesar la respuesta de un cargo, habrá que procurar no mostrar todos los mensajes directamente al cliente, en el catálogo de errores se incluyen consejos que podrán considerarse al preparar la experiencia del cliente.
Para ayudarte a resolver tus dudas haz clic aquí y genera una solicitud a Servicio al Cliente, te respondemos lo más pronto posible.