Widget de Pago Android: Guía de Implementación

El Widget de Pago DEUNA está diseñado para facilitar una experiencia de pago segura y eficiente en aplicaciones Android. Nuestro SDK ofrece una integración versátil y robusta

Configuración del SDK


Para comenzar, es fundamental inicializar el SDK con los parámetros adecuados.

Importación e Inicialización

// Importaciones para el Widget de Pago
import com.deuna.maven.DeUnaSdk
import com.deuna.maven.checkout.domain.Environment
import com.deuna.maven.element.domain.Callbacks

// Usamos Log para verificar la información recibida
import android.util.Log

val callbacks = Callbacks().apply {
    // Aquí van tus callbacks
}

// Inicialización del SDK
DeUnaSdk.config(
  	apiKey = "TU_API_KEY",
  	environment = nvironment.STAGING,
  	context = this@MainActivity,
  	callbacks = callbacks(),
  	closeOnEvents = arrayOf(CheckoutEvents.linkFailed)
)

Parámetros de configuración

A continuación encontrarás una descripción de los parámetros requeridos para configurar el SDK

AtributoDescripciónTipo
apiKeyTu llave pública proporcionada por DEUNA.String: Tiene que ser un apiKey público válido
environmentDefine si usas el ambiente de pruebas o producción.Environment (STAGING | PRODUCTION)
callbacksCallbacks para manejar eventos del SDK.Callbacks
closeOnEventsArreglo de eventos que son recibidos con el cual puedes cerrar el modal automáticamenteCheckoutEvents

Implementación de callbacks


Los callbacks permiten interactuar con eventos específicos durante el proceso de pago.

// Configuraciones del SDK de DEUNA para Payment Widget
import com.deuna.maven.DeUnaSdk
import com.deuna.maven.checkout.domain.Environment
import com.deuna.maven.checkout.Callbacks

// Para mostrar logs y revisar la información que te enviamos
import android.util.Log
 
// Definir callback para ser utilizado
val callbacks =  Callbacks().apply {
            onSuccess = { response ->
                DeUnaSdk.closeCheckout()
                if(response.type.value == "purchase") {
                    Log.d("purchase", response.data.order.payment.data.status)
                }
                Intent(this@MainActivity, ThankYouActivity::class.java).apply {
                    startActivity(this)
                }
            }
            onError = { error ->
                if (error != null) {
                    Log.d("DeunaSdkOnError", error.type)
                }
            }
            eventListener = { response ->
                if(response.type.value == "changeAddress") {
                    Log.d("changeAddress", response.data.toString())
                    DeUnaSdk.closeCheckout()
                }

                if(response.type.value == "changeCart") {
                    Log.d("changeCart")
                    DeUnaSdk.closeCheckout()
                }

                if(response.type.value == "paymentProcessing") {
                    Log.d("paymentProcessing", response.data.toString())
                }
            }
            onClose = { _ ->
                Log.d("DeunaSdkOnClose", "onClose")
            }
        }


Descripción de callbacks

A continuación encontrarás una descripción de los parámetros requeridos para iniciar el proceso de pago:

CallbackDescripciónRespuesta
onSuccessEjecutado al procesar el pago exitosamente.Response del objeto
onErrorManeja errores durante el proceso de pago.Response con type de evento y objeto de la respuesta
eventListenerAlerta de una actualización en la tarjetaResponse con type de evento y objeto de la respuesta
onCloseManeja cuando se presiona el botón de cerrarActivityView

Los callbacks son cruciales para interactuar con eventos del SDK. Al configurarlos, personalizas cómo tu app responde a distintas acciones.

Descripción de EventTypes

Esta tabla enumera los diferentes tipos de eventos que pueden ocurrir durante el proceso de pago. Estos eventos están diseñados para ser gestionados mediante eventListener.

CallbackDescripciónComportamiento
change_addressIndica un cambio en la dirección de entregaCerrar el proceso de pago
change_cartIndica modificaciones en el carrito de comprasRetornar a la pagina de carrito
payment_processingAlerta de una actualización en la tarjetaIr a la vista personalizada de procesamiento

Inicio del proceso de pago


Finalmente, para iniciar el proceso de pago, se llama al método correspondiente del SDK.


// Llamada al método para iniciar el proceso de pago
val orderToken = "ORDER_TOKEN_DEUNA"

DeUnaSdk.initCheckout(orderToken = orderToken)

Con estos pasos, los usuarios podrán disfrutar de una experiencia de pago fluida y segura.

Demos experiencia de compra