Tratamiento de callbacks con resultados de pago - Flujo de pago - Mercado Pago Developers
¿Qué documentación quieres buscar?

¿No sabes cómo empezar la integración? 

Accede a los primeros pasos

Tratamiento de callbacks con resultados de pago

Existen tres tipos de callbacks que puden ser configurados para capturar el resultado del flujo de pago. Dos de ellos se configuran cuando el flujo de pago es lanzado, que son por URL y por funciones nativas del JavaScript, y el otro vía eventos globales.

Consulta este ejemplo de cada tipo de retorno de llamada personalizada:

URL de retorno

Con una url de callback configurada para que cuando el flujo de pago sea exitoso, sea posible obtener los datos de pago de la siguiente forma:

javascript

launchPaymentFlow(15.50, null,'congrats.html','error.html')

let urlQueryString = window.location.search;
let urlParams = new URLSearchParams(urlQueryString);
// Obtener error de datos de pago de datos de eventos
let paymentType = urlParams.get('payment_type');
let paymentReference = urlParams.get('payment_reference');
let metadata = urlParams.get('metadata');
	
/**  
* Escribe el código aquí...
**/ 	

Con una url de callback configurada para que cuando el flujo de pago falle, sea posible obtener los datos de pago de la siguiente forma:

javascript

let urlQueryString = window.location.search;
let urlParams = new URLSearchParams(urlQueryString);
// Obtener error de datos de pago de datos de eventos
let errorStatus = urlParams.get('error_status');
let metadata = urlParams.get('metadata');
	
/**  
* Escribe el código aquí...
**/ 	

Callbacks de funciones nativas del JavaScript

Habiendo configurado una función de callback JavaScript al iniciar el flujo de checkout, los datos de pago se pueden obtener de la siguiente manera.

Ejemplo de callback de éxito

javascript

function callback_payment_success(data) {
	let paymentType = data["payment_type"]; 
	let paymentReference = data["payment_reference"]; 
	
	// Tu código aquí...
}

Ejemplo de error de callback:

javascript

function callback_payment_error(data) {
	let errorStatus = data["error_status"]; 
	let metadata = data["metadata"]; 
	
	// Tu código aquí...
}

Eventos globales

Independientemente del tipo de callback que se configure al iniciar el flujo de pago, el sistema enviará un evento global en JavaScript cuando el flujo se complete correctamente o cuando falle.

Estos eventos se denominan PointPayment.Success,en caso de que sea exitoso, y PointPayment.Error cuando hay una falla. A continuación, tenemos ejemplos de cómo capturar el evento en cada caso.

Ejemplo de implementación con tratamiento del evento de pago con éxito:

javascript

window.addEventListener("PointPayment.Success", (event) => {

   let data=event.detail;
   // Obtener error de datos de pago de datos de eventos
   let paymentType = data["payment_type"];
   let paymentReference = data["payment_reference"];
   let paymentCreationDate = data["payment_creation_date"];
   let paymentAmount = data["payment_amount"];
   let serialNumberDevice = data["payment_sn_device"];

   let metadata = data['metadata'];

   if(paymentType == "credit" || paymentType == "debit" || paymentType == "voucher"){
       let installments = data["payment_installments"];
       let brandName = data["payment_brand_name"];
   }

   // Tu código aquí...
});

Ejemplo de implementación con manejo de eventos de falla de pago:

javascript

window.addEventListener("PointPayment.Error", (event) => {
  
	let data=event.detail;
	// Obtener error de datos de pago de datos de eventos
	let errorStatus = data["error_status"]; 
	let metadata = data['metadata'];
	
	// Tu código aquí...
});

Datos de retorno de callback con éxito

Cuando un flujo de pagamento es finalizado con éxito, los siguientes datos son enviados al callback de éxito.

Parámetros de respuesta:

ParámetroTipoRequeridoDescripción
payment_typestringcrédito, débito, voucher, qr e linkIndica el tipo de pago realizado.
payment_referencestringpaymentId ou link de pagoIndica una referencia de tipo de pago.
payment_creation_datenumberyyyy-MM-dd'T'HH:mm:ss'Z'Indica la fecha y hora de pago en formato ISO INSTANT.
payment_sn_devicenumber-Indica el número de serie del dispositivo.
payment_amountnumber0.01 <= n < 50000Indica el monto total del pago.
payment_installmentsnumber-Indica el número de cuotas (crédito, débito y voucher), si aplica.
payment_brand_namestring-Indica la marca de la tarjeta (crédito, débito y voucher), si aplica.

Datos de retorno de callback de error

Cuando ocurre un error o es cancelado, se envían los siguientes datos al callback de error.

Parámetros de respuesta:

ParámetroTipoRequeridoDescripción
error_statusstringcanceled y unknownIndica el tipo de falla que ocurrió durante el proceso, que puede ser que se canceló el flujo de efectivo o que ocurrió un error desconocido en el flujo de cobranza que no se pudo determinar.
metadatastringobjeto Json como una stringLa información adicional proporcionada por MiniApp al iniciar el flujo de pago.