Getnet DocsGetnet Docs

Crear un pago aplazado

El aplazamiento del pago permite a los clientes dividir su compra en múltiples pagos. A diferencia de las ventas estándar, este flujo es interactivo: si el host de autorización determina que el aplazamiento está disponible, el Get Mini Android SDK pedirá a tu aplicación que proporcione la selección del usuario a través de una devolución de llamada.

Requisitos

Para admitir el aplazamiento del pago, tu aplicación debe:

  1. Implementar la Devolución de Llamada: Tu implementación de RedCLSPinPadInterface debe sobrescribir el método seleccionDeferPayment.
  2. Habilitar el Soporte del Comercio: Tu cuenta de comercio y terminal deben estar configuradas por Get Mini para permitir operaciones de aplazamiento.

Paso 1: Implementar la devolución de llamada de selección

Durante una operación de tarjeta estándar (operativaConTarjeta), si el host de autorización identifica que el aplazamiento está disponible, activará la devolución de llamada seleccionDeferPayment. Debes presentar las opciones al usuario y devolver el código del aplazamiento.

import redcls.itpvpc.interfaces.RedCLSPinPadInterface
import redcls.itpvpc.data.RedCLSDeferPaymentData

override fun seleccionDeferPayment(deferPayment: RedCLSDeferPaymentData): String {
    // 1. 'deferPayment' contiene las opciones de aplazamiento disponibles proporcionadas por el host.
    // 2. Presenta estas opciones (ej., 3 meses, 6 meses) a tu usuario.

    val userSelectedCode = showInstallmentSelectionUI(deferPayment)

    // 3. Devuelve el código de la opción seleccionada como String.
    // Devuelve "0" si el usuario desea pagar en su totalidad sin aplazamiento.
    return userSelectedCode ?: "0"
}

Si tu aplicación no desea admitir esta funcionalidad, simplemente sobrescribe el método para devolver \"0\".


Paso 2: Ejecutar el flujo de pago

No hay un método separado para el aplazamiento del pago. Inicia una venta estándar y el Get Mini Android SDK gestiona el aplazamiento automáticamente si es aplicable.

import redcls.itpvpc.data.RedCLSOperativeWithCardData

val saleData = RedCLSOperativeWithCardData("300.00")

Thread {
    // Esta llamada activará 'seleccionDeferPayment' internamente si el aplazamiento está disponible
    val response = pinpadManager.operativaConTarjeta(saleData)

    if (response.status == 0) {
        Log.d("GetMini", "Transacción diferida exitosa")
        val tx = response.transactionData
        if (tx.result == "Autorizada") {
            Log.i("GetMini", "Venta con aplazamiento aprobada. Autorización: ${tx.autorizationNumber}")
        }
    } else {
        Log.e("GetMini", "Error del SDK: ${response.status} - ${response.msgKO}")
    }
}.start()

Paso 3: Manejar los resultados de la transacción

Después de la aprobación exitosa del aplazamiento, procesa el resultado y asegúrate de manejar los datos del recibo. El SDK proporciona literales específicos que tu aplicación debe imprimir o mostrar para proporcionar al cliente el desglose del aplazamiento.

if (tx.result == "Autorizada") {
    Log.i("GetMini", "Venta con aplazamiento aprobada. Autorización: ${tx.autorizationNumber}")

    // La respuesta incluye literales de recibo específicos relacionados con el aplazamiento.
    // Tu aplicación debe imprimir o mostrar todos los literales devueltos (tx.literals)
    // para reflejar adecuadamente los detalles del aplazamiento en el recibo.
}

Mejores prácticas

  • Interfaz de Usuario Clara: Cuando se llama a seleccionDeferPayment, asegúrate de que tu interfaz de usuario muestre claramente el tipo de aplazamiento y cualquier tasa de interés asociada proporcionada en el RedCLSDeferPaymentData.
  • Impresión de Recibos: Los campos del Get Mini Android SDK utilizados para la impresión (Anexo I del manual) incluirán literales específicos para el aplazamiento del pago. Asegúrate de que tu lógica de recibo muestre todos los Literals devueltos en la respuesta.
  • Pruebas: No todas las tarjetas admiten aplazamiento de pagos. Usa tarjetas de prueba específicas proporcionadas por Get Mini para verificar este flujo en el entorno de Integración.

Próximos pasos