Lanzar el widget de pagos - SDK Android
Para iniciar el proceso de pago, debes usar la función initCheckout
. Esta configura el widget de pago, verifica la conectividad a Internet y carga el enlace de pago.
Parámetros
Parámetro | Descripción |
---|---|
orderToken | El token de una orden previamente generada usando la API de DEUNA https://docs.deuna.com/reference/order_token |
callbacks | Una instancia de la clase CheckoutCallbacks, la cual contiene callbacks que serán llamados en caso de éxito, error, o cuando el widget de pago se cierre. |
closeEvents | Un conjunto de valores de tipo CheckoutEvent que especifican cuándo cerrar automáticamente el widget de pago. Consulta los eventos del widget de pagos aquí |
let deunaSDK: DeunaSDK = ....
.
.
.
val callbacks = CheckoutCallbacks().apply {
onSuccess = { response ->
// El pago fue exitoso
deunaSDK.closeCheckout(...) // Cierra el widget de pago
},
onError = { error ->
// Ocurrió un error al procesar el pago
deunaSDK.closeCheckout(...) // Cierra el widget de pago
},
onClosed = {
// El widget de pago fue cerrado
},
onCanceled = {
// El widget de pago fue cerrado por el usuario
// No es necesario llamar a closeCheckout(...)
},
eventListener = { event, response ->
// Escuchar los eventos del proceso de pago
// Cierra el widget cuando el usuario elige cambiar la dirección o el método de pago
if (event == CheckoutEvent.changeCart || event == CheckoutEvent.changeAddress) {
deunaSDK.closeCheckout(...)
}
}
}
// Lanza el widget de pago
deunaSDK.initCheckout(
orderToken = "TU_ORDER_TOKEN",
callbacks = callbacks
)
NOTA: Por defecto, el widget de pago solo se cierra cuando el usuario presiona el botón de cerrar. Puedes utilizar el parámetro
closeEvents
para cerrar el widget sin necesidad de llamar a la funcióncloseCheckout
.
Por ejemplo puedes user el parámetrocloseEvents
para cerrar el widget de pago cuando el usuario elige cambiar la dirección o el método de pago. El código de arriba usando closeEvents seria el siguiente:
val callbacks = CheckoutCallbacks().apply {
onSuccess = { response ->
deunaSDK.closeCheckout(...) // Cierra el widget de pago
},
onError = { error ->
deunaSDK.closeCheckout(...) // Cierra el widget de pago
},
onClosed = {
// El widget de pago fue cerrado
},
onCanceled: {
/// ...
},
eventListener = { event, response ->
// Escuchar los eventos del proceso de pago
}
}
// Lanza el widget de pago
deunaSDK.initCheckout(
orderToken = "TU_ORDER_TOKEN",
callbacks = callbacks,
closeEvents = setOf(CheckoutEvent.changeCart, .changeAddress) // Cierra el widget cuando el usuario elige cambiar la dirección o el método de pago
)
Updated 18 days ago