Enviar ticket por mail

Enviar ticket por mail

ℹ️

Este proceso es opcional

El envío del comprobante por correo electrónico es opcional. El SDK de Menta ofrece un método dedicado para realizar esta acción, el cual sigue un formato estándar de Menta y necesita datos específicos de la transacción para llevar a cabo la operación.

Requisitos

  • Datos de la transacción requeridos para el formato estándar de Menta

Paso a paso

  1. Instanciar el objeto SendEmailData pasándole el contexto.
  2. Crear un HashMap con los datos para el ticket.
  3. Instanciar el objeto SendEmailRequest.
  4. Invocar el método sendEmail pasándole el objeto SendEmailRequest.
  5. Configurar un observer para recibir la respuesta.

Crear HashMap

CampoDescripción
date_terminalFecha de la terminal para enviar el ticket.
time_terminalHora de la terminal para enviar el ticket.
operation_typeTipo de operación.
merchant_nameNombre del comercio.
merchant_addressDirección del comercio
operation_numberNúmero de operación. Corresponde al campo ticketId retornado en la respuesta de la transacción.
masked_numberNúmero de tarjeta enmascarado. Corresponde el campo masked_pan retornado en la respuesta de la transacción.
reader_typeModo de lectura. Corresponde al inputMode retornado en la lectura de la tarjeta.
amountMonto de la transacción formateado con decimales.
installmentsNúmero de cuotas de la transacción. Default = 01.
card_brandMarca de la tarjeta. Valor que se puede recuperar de la tabla de bines.
currencyMoneda de país.
card_typeTipo de tarjeta. Valor que se puede recuperar de la tabla de bines.
card_aidIdentificador de la tarjeta. Valor retornado por la lectura de tarjeta.
subjectAsunto del mail.
subtitleCuerpo del mail.

Instanciar el objeto SendEmailRequest

CampoDescripción
toCorreo del destinatario.
template_typeTipo de plantilla. Posibles valores: PAYMENT, REFUND.
contentHashMap creado en el paso 2.

Ejemplo de implementación

        RestClientConfiguration.configure(AppfinRestClientConfigure())
        val emailData = SendEmailData(context = applicationContext)
        val map = hashMapOf(
            "date_terminal" to "27/06/23",
            "time_terminal" to "12:44:08",
            "operation_type" to "PAYMENT",
            "merchant_name" to "[Nombre de comercio]",
            "merchant_address" to "Dirección del comercio",
            "operation_number" to "181625710",
            "masked_number" to "***0190",
            "reader_type" to "CONTACTLESS",
            "amount" to "100,00",
            "installments" to "01",
            "card_brand" to "MASTERCARD",
            "currency" to "ARS",
            "powered_by_menta_footer" to "Leyenda: Powered by menta",
            "card_type" to "Crédito",
            "card_aid" to "A0000000041010C123456789",
            "subject" to "Comprobante de compra en [Nombre de comercio]",
            "subtitle" to "Te acercamos el comprobante de tu compra en [Nombre de comercio]"
        )
        val sendEmailRequest = SendEmailRequest(email, "PAYMENT", map)
        emailData.sendEmail(sendEmailRequest = sendEmailRequest)
        emailData.sendEmailResponse.observe(this) { result ->
            Log.i(TAG, "Resultado: $result")
            when (result) {
                is Resource.Success -> {
                    Log.i(TAG, "Email enviado correctamente")
                
                }
 
                else -> {
                    Log.i(TAG, "Error al enviar mail")
                   
                }
            }
        }

Códigos de respuesta

El observer configurado retornará como resultado un objeto de tipo LiveData<Resource<Unit, StatusResult>>.

Los posibles valores para el Resource son:

CódigoDescripción
Resource.SuccessEl envío del ticket se realizó con éxito.
Resource.FailureFalló el envío del ticket.

Ejemplo del formato estándar de Menta

Ejemplo de ticket