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
Atributo | Descripción | Tipo |
---|---|---|
apiKey | Tu llave pública proporcionada por DEUNA. | String: Tiene que ser un apiKey público válido |
environment | Define si usas el ambiente de pruebas o producción. | Environment (STAGING | PRODUCTION) |
callbacks | Callbacks para manejar eventos del SDK. | Callbacks |
closeOnEvents | Arreglo de eventos que son recibidos con el cual puedes cerrar el modal automáticamente | CheckoutEvents |
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:
Callback | Descripción | Respuesta |
---|---|---|
onSuccess | Ejecutado al procesar el pago exitosamente. | Response del objeto |
onError | Maneja errores durante el proceso de pago. | Response con type de evento y objeto de la respuesta |
eventListener | Alerta de una actualización en la tarjeta | Response con type de evento y objeto de la respuesta |
onClose | Maneja cuando se presiona el botón de cerrar | ActivityView |
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.
Callback | Descripción | Comportamiento |
---|---|---|
change_address | Indica un cambio en la dirección de entrega | Cerrar el proceso de pago |
change_cart | Indica modificaciones en el carrito de compras | Retornar a la pagina de carrito |
payment_processing | Alerta de una actualización en la tarjeta | Ir 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
Updated 15 days ago