API Reference

Instalación

Milio SDK para iOS

Visión General

El SDK de Milio para iOS proporciona una solución sencilla y segura para gestionar pagos y transferencias dentro de tus aplicaciones iOS. Diseñado en SwiftUI, el SDK permite una integración fluida con aplicaciones creadas en SwiftUI o UIKit, garantizando conformidad con estándares como PCI DSS para la seguridad de datos sensibles.


Instalación

Requisitos Previos

Antes de integrar el SDK, asegúrate de tener:

  • Xcode 14.0 o superior.
  • Swift 5.0 o superior.
  • macOS Ventura o superior.

Instalación con CocoaPods

Sigue estos pasos para instalar el SDK usando CocoaPods:

  1. Instalar CocoaPods (si no está instalado):
  • seguir los pasos :
sudo gem install cocoapods
  • Verifica la instalación con:
pod --version
  • Crea un archivo Podfile si no existe:
pod init
  • Abre el Podfile y agrega (repositorio):
pod 'MilioSdk', git: 'https://github.com/milio/milio-ios-pod.git'
  • Abre el Podfile y agrega (local)
pod 'MilioSDK', '~> 1.0'
  • Instala las dependencias:
pod install

Uso del SDK

🔐 Proceso de Encriptación y Seguridad en el SDK

El sistema de transferencias y recargas del SDK utiliza un mecanismo de encriptación de datos basado en criptografía de clave pública para garantizar la seguridad de la información en cada transacción.

🔑 1. ¿Por qué se usa una llave pública?

La llave pública, generada por un endpoint especializado, es la herramienta que permite cifrar la información antes de enviarla a través del SDK. Al encriptar los datos con esta llave, aseguramos que solo el servidor que tiene la llave privada correspondiente pueda descifrarlos, evitando accesos no autorizados o modificaciones en la información.

📲 2. Procesos que requieren encriptación con la llave pública

Cada una de las transacciones en el SDK debe pasar por este proceso de encriptación antes de ser enviada al servidor:

1️⃣ Transferencia con QR

Se escanea un código QR con los datos de la transacción.
La información se encripta con la llave pública antes de enviarla.
El servidor recibe los datos cifrados y los desencripta con su llave privada.

2️⃣ Transferencia Manual

El usuario ingresa manualmente los datos de la transacción (monto, cuenta destino, etc.).
Antes de enviarlos al SDK, los datos se cifran con la llave pública.
El servidor procesa la información tras desencriptarla.

3️⃣ Transferencia Inmediata

Similar a la transferencia manual, pero con una ejecución más rápida.
La información viaja encriptada con la llave pública para evitar manipulación en el proceso.

4️⃣ Recarga de Billetera

Para recargar fondos en la billetera digital, los datos (monto, origen, destino) se protegen con encriptación.
Solo el servidor, con su llave privada, podrá acceder a la información real y procesar la recarga.

🚀 3. Beneficios de este proceso de seguridad

✅ Protección de datos sensibles en cada transacción.
✅ Evita que terceros accedan o modifiquen la información.
✅ Cumple con estándares de seguridad y auditoría en encriptación.

Cada vez que se realiza una transferencia o recarga en el SDK, los datos deben encriptarse con la llave pública antes de enviarse. Solo el servidor con la llave privada correcta podrá descifrarlos y procesar la transacción, garantizando un entorno seguro y confiable para el usuario. 🔒


  1. Configuración Inicial

    Importa el SDK y configúralo con tu token de autenticación:
import MilioSDK

MilioSDK.configure(withToken: "TU_TOKEN_DE_AUTENTICACIÓN")


Ejemplo de Integración

El SDK facilita la implementación de funcionalidades de transferencia y pago. A continuación, un ejemplo de transferencia por QR.

Transferencia con QR

import SwiftUI
import MilioSDK

struct ContentView: View {
    var body: some View {
         ActionButton(
           title: "Transferencia con QR",
           iconName: "svg_ic_qrcode",
           iconBackgroundColor: Color(.systemGray6),
           iconColor: .blue,
           horizontalPadding: 24,
           verticalPadding: 18
         ){
           MilioSDK.shared.openWindow(
             windowType: .transferQRCode,
             token: authToken,
             value: 2000.0,
             presentingViewController: UIApplication.shared.windows.first?.rootViewController ?? UIViewController()
           )
         }
    }
}

Grafico

Transferencia manual

import SwiftUI
import MilioSDK

struct ContentView: View {
    var body: some View {
      ActionButton(
        title: "Transferencia manual",
        iconName: "card_manual",
        iconBackgroundColor: Color(.systemGray6),
        iconColor: .blue,
        horizontalPadding: 24,
        verticalPadding: 18
      ) {
        MilioSDK.shared.openWindow(
          windowType: .transferManual,
          token: authToken,
          value: 2000.0,
          presentingViewController: UIApplication.shared.windows.first?.rootViewController ?? UIViewController()
        )
      }
    }
}

Grafico

Transferencia inmediata

import SwiftUI
import MilioSDK

struct ContentView: View {
    var body: some View {
      ActionButton(
        title: "Transferencia inmediata",
        iconName: "svg_ic_flash",
        iconBackgroundColor: Color(.systemGray6),
        iconColor: .blue,
        horizontalPadding: 24,
        verticalPadding: 18
      ) {
        MilioSDK.shared.openWindow(
          windowType: .transferImmediate,
          token: authToken,
          value: 2000.0,
          presentingViewController: UIApplication.shared.windows.first?.rootViewController ?? UIViewController()
        )
      }
    }
}

Grafico

Transferencia inmediata (Tarjeta manual)

Grafico

Recarga de billetera

import SwiftUI
import MilioSDK

struct ContentView: View {
    var body: some View {
      ActionButton(
        title: "Recargar mi billetera",
        iconName: "svg_ic_manual",
        iconBackgroundColor: Color(.systemGray6),
        iconColor: .blue,
        horizontalPadding: 24,
        verticalPadding: 18
      ) {
        MilioSDK.shared.openWindow(
          windowType: .rechargeWallet,
          token: authToken,
          value: 0,
          presentingViewController: UIApplication.shared.windows.first?.rootViewController ?? UIViewController()
        )
      }
    }
}


Conclusión

Milio SDK ofrece una arquitectura robusta y flexible para manejar diversos tipos de transferencias y recargas. Los puntos clave incluyen:

  • Escalabilidad: Los flujos se adaptan tanto a usuarios que prefieren métodos manuales como a aquellos que buscan la comodidad de los códigos QR.
  • Interoperabilidad: La lógica permite integrar diferentes procesos dentro de un solo SDK, mejorando la experiencia del usuario final.
  • Seguridad: Se prioriza la validación mediante tokens y datos encriptados, alineándose con los estándares de la industria como PCI DSS.
  • Flexibilidad: El diseño modular permite personalizar los flujos según las necesidades de la aplicación.

Este SDK es una herramienta clave para facilitar las operaciones financieras digitales en un entorno moderno, garantizando una experiencia fluida y segura tanto para los desarrolladores como para los usuarios finales.