Vault Widget - iOS

El Vault Widget de DEUNA permite guardar tarjetas de crédito y débito de forma segura. Para iniciar el proceso, debes usar la función initElements. Esta configura el Vault Widget, verifica la conectividad a Internet y carga el enlace.

Paso 1: Completar los Primeros Pasos

Antes de integrar el Vault Widget, es necesario que completes la sección de primeros pasos. En esta sección, te explicamos los requisitos necesarios y cómo inicializar el SDK. Puedes encontrar más información en Primeros Pasos con el SDK de iOS.

Una vez que hayas completado estos pasos, podrás continuar con el paso 2.

Paso 2: Mostrar el Widget

Para mostrar el Vault Widget, primero define los callbacks y luego levanta el widget con initElements.

let callbacks = ElementsCallbacks(
  onSuccess: { response in
    self.deunaSDK.closeElements() // Cierra el Vault Widget
  },
  onError: { error in
    // Manejo de errores
    self.deunaSDK.closeElements() // Cierra el Vault Widget
  },
  onClosed: {
    // El Vault Widget fue cerrado
  },
  onCanceled: {
    // El Vault Widget fue cerrado por el usuario
    // No es necesario llamar a closeElements(...)
  },
  eventListener: { type, response in
    // Escuchar los eventos
  }
)

// Muestra el Vault Widget
deunaSDK.initElements(
  userToken = "<DEUNA user token>", // optional
  userInfo = DeunaSDK.UserInfo("Esteban", "Posada", "[email protected]"), // optional
  callbacks: callbacks
)

Parámetros

ParámetroDescripción
callbacksUna instancia de la clase ElementsCallbacks, la cual contiene callbacks que serán llamados en caso de éxito, error, o cuando el widget se cierre.
closeEventsUn conjunto de valores de tipo ElementsEvent que especifican cuándo cerrar automáticamente el Vault Widget. Consulta los eventos del Vault Widget aquí.
userToken (Opcional)El bearer token del usuario de DEUNA. Cuando este es enviado, todas las acciones dentro del widget van a hacer sobre este usuario de DEUNA.

Importante: si este campo es usado, el campo userInfo no se debe mandar.
userInfo (Opcional)Instancia de la clase DeunaSDK.ElementsUserInfoque contiene firstName, lastNamey email.

Importante: en caso que el userTokenno se enviado o sea un string vacío (""), este parámetro es requerido.

Paso 3: Escuchar los Eventos del Widget

Es crucial manejar adecuadamente los eventos del Vault Widget para ofrecer una experiencia fluida a los usuarios. Define los callbacks necesarios para actualizar la interfaz de tu aplicación.

3.1 Callbacks

Callback¿Cuándo se dispara?
onSuccessSe ejecuta cuando una tarjeta se guarda exitosamente.
Este callback contiene un parámetro de tipo ElementsResponse.
onErrorSe ejecuta cuando ocurre un error al guardar la tarjeta.
Este callback contiene un parámetro de tipo ElementsError.
onClosedSe ejecuta cuando el Vault Widget se cierra, independientemente de si la operación fue exitosa o ocurrió un error.

NOTA: El orden de ejecución de onCanceled y onClosed es el siguiente:

- Si el usuario cierra manualmente el widget (presionando el botón X o deslizando el modal hacia abajo):
onCanceled > onClosed.

- Si se cierra el widget mediante código llamando a closePaymentWidget, solo se ejecuta onClosed.
onCanceledSe ejecuta cuando el usuario de forma intencional cierra el widget (presionando el botón X o deslizando el modal hacia abajo) sin que la operación se haya completado.
eventListenerSe ejecuta cuando se detectan eventos específicos en el Vault Widget.
Este callback contiene un parámetro de tipo ElementsEvent.

Paso 4 (Opcional): Cerrar el Widget

Por defecto, el Vault Widget solo se cierra cuando el usuario presiona el botón de cerrar del widget o cuando presiona el botón de "retroceso" en iOS. Para cerrar el modal cuando una operación es exitosa o cuando ocurre un error, debes llamar a la función closeElements.

El siguiente código de ejemplo muestra cómo cerrar el widget cuando una tarjeta se guarda exitosamente:

let callbacks = ElementsCallbacks(
  onSuccess: { response in
    self.deunaSDK.closeElements() // Cierra el Vault Widget
    // Tu código adicional
  }
)

// Muestra el Vault Widget
deunaSDK.initElements(
  userToken = "<DEUNA user token>", // optional
  userInfo = DeunaSDK.UserInfo("Esteban", "Posada", "[email protected]"), // optional
  callbacks: callbacks
)


Paso 5 (Opcional): Revisar Ejemplo Demo App

Para comprender mejor la integración del Vault Widget, revisa el proyecto de ejemplo proporcionado por DEUNA. Este ejemplo te ayudará a entender mejor cómo implementar el widget en tu aplicación iOS.

Para acceder al proyecto de ejemplo y obtener más información, consulta la documentación del Ejemplo de Proyecto para iOS.