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ĂĄmetro | Tipo | Requerido | DescripciĂłn |
payment_type | string | crédito, débito, voucher, qr e link | Indica el tipo de pago realizado. |
payment_reference | string | paymentId ou link de pago | Indica una referencia de tipo de pago. |
payment_creation_date | number | yyyy-MM-dd'T'HH:mm:ss'Z' | Indica la fecha y hora de pago en formato ISO INSTANT. |
payment_sn_device | number | - | Indica el nĂșmero de serie del dispositivo. |
payment_amount | number | 0.01 <= n < 50000 | Indica el monto total del pago. |
payment_installments | number | - | Indica el nĂșmero de cuotas (crĂ©dito, dĂ©bito y voucher), si aplica. |
payment_brand_name | string | - | 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ĂĄmetro | Tipo | Requerido | DescripciĂłn |
error_status | string | canceled y unknown | Indica 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. |
metadata | string | objeto Json como una string | La informaciĂłn adicional proporcionada por MiniApp al iniciar el flujo de pago. |