Headless SDK (Inscripción Android)

Esta página proporciona una guía para la inscripción en el Yuno Headless SDK para Android.

El Yuno Headless SDK para Android proporciona una solución flexible y sin interfaz de usuario para registrar métodos de pago y tokenizar tarjetas.

Este SDK ofrece un control total sobre el proceso de inscripción del método de pago , por lo que es ideal para los comerciantes que:

  • Necesidad de control total sobre la interfaz de usuario y la experiencia del usuario
  • Desea implantar flujos de inscripción personalizados
  • Requiere capacidades de integración avanzadas

El SDK Headless incluye características principales como:

  • Tokenización de tarjetas
  • Inscripción segura en el método de pago
  • Acceso directo a la API
  • Gestión de errores personalizada

Los comerciantes que necesiten una solución de interfaz de usuario prefabricada o una integración más sencilla pueden utilizar nuestras otras implementaciones del SDK:

Requisitos

Antes de comenzar la integración de Yuno Android SDK, asegúrate de que tu proyecto cumple los requisitos técnicos. Además, asegúrate de que se cumplen los siguientes requisitos previos:

  • Debes tener una cuenta Yuno activa
  • Necesitas tus credenciales de la API de Yuno:
    • account_id
    • public-api-key
    • private-secret-key

Puedes obtener estas credenciales en la sección Desarrolladores del panel de control de Yuno. Son necesarias para:

  • Cree un customer, que se requiere antes de inscribirse en los métodos de pago
  • Cree un customer_session, que inicializa el flujo de inscripción
📘

Información de la versión del SDK

Comprueba la versión actual del SDK accediendo a las Notas de la versión o visitando el repositorio del SDK de Android de Yuno.

Paso 1: Crea un cliente

Crea un cliente utilizando el endpoint Crear cliente antes de inscribir métodos de pago.

Requisitos previos:

  • Cuenta Yuno activa
  • Credenciales de API

Necesario para:

  • Identificación de la persona que inscribe el método de pago
  • Activar la función de método de pago guardado
  • Seguimiento del historial de inscripciones
  • Guarda la identificación del cliente de forma segura para el siguiente paso.

Paso 2: Crear una sesión de cliente

Crear un nuevo customer_session utilizando la función del endpoint Crear Sesión de Cliente punto final:

Requisitos previos:

  • ID de cliente del paso 1
  • Credenciales de API

Acciones necesarias:

  • Incluye el ID de cliente en el pedido
  • Almacenar lo devuelto customer_session ID
  • Generar un nuevo customer_session para cada inscripción en el método de pago.

Paso 3: Añada el SDK a tu proyecto

Requisitos previos:

  • Configuración del proyecto Android
  • Acceso a la configuración de Gradle
  1. Añade la fuente del repositorio:
maven { url "https://yunopayments.jfrog.io/artifactory/snapshots-libs-release" }
  1. Añada la dependencia del SDK:
dependencies {
    implementation 'com.yuno.payments:android-sdk:{last_version}'
}
📘

Se requiere permiso de Internet

El SDK de Yuno incluye automáticamente el permiso INTERNET necesario para solicitudes de red. Asegúrate de que tu archivo AndroidManifest.xml contenga:

<uses-permission android:name="android.permission.INTERNET" />

Paso 4: Initialize Headless SDK la clave pública.

Recupera tus claves API públicas del panel de control de Yuno.

Si no has implementado una aplicación personalizada, crea una. En el método onCreate() de tu clase de aplicación, llama a la función de inicialización (Yuno.initialize):

class CustomApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    Yuno.initialize(
      this,
      PUBLIC_API_KEY,
      config: YunoConfig,
    )
  }
}

Paso 5: Crear una sesión de cliente

Para iniciar el proceso de inscripción:

  1. Cree un cliente utilizando la función Crear Cliente endpoint. La respuesta incluirá el cliente id.

  2. Crear una sesión de cliente utilizando:

La respuesta endpoint proporcionará customer_session valor requerido para la inscripción.

🚧

Generación de sesiones de clientes

Necesitas generar un nuevo customer_session cada vez que registres un método de pago.

Paso 6: Crear un objeto de método de pago inscripción

Crea un objeto de método de pago de inscripción utilizando el endpoint Método de pago de inscripción para configurar la integración Headless SDK para la inscripción. Al crear este objeto, especifica en qué tipo de método de pago puede inscribirse tu cliente. Actualmente, el Headless SDK sólo admite el tipo de método de pago TARJETA.

📘

Verificación de tarjeta

Para verificar tarjetas (autorización de valor cero) antes de la inscripción, incluya la verify al crear el objeto de método de pago para la sesión del cliente. Más información

Paso 7: Iniciar el proceso de inscripción

Use el endpoint apiClientEnroll para iniciar el proceso de inscripción. Esta función requiere parámetros de configuración que definen cómo se procesará la inscripción. La siguiente tabla describe los parámetros necesarios:

ParámetroDescripción
country_codeEste parámetro determina el país para el cual se está configurando el proceso de pago. La lista completa de países admitidos y sus country_code está disponible en la Cobertura de países .
customer_sessionSe refiere a la inscripción sesión de cliente recibido como respuesta a la Crear Sesión de Cliente punto final. Ejemplo: 438413b7-4921-41e4-b8f3-28a5a0141638

El siguiente bloque de código muestra un ejemplo de configuración de parámetros:

override fun onCreate(savedInstanceState: Bundle?) {
	val apiClientEnroll = Yuno.apiClientEnroll(
  	country_code = "CO",
    
    customerSession = "eec6578e-ac2f-40a0-8065-25b5957f6dd3",

    context = this 
  )
 }

Paso 8: Generar un token bóveda

Tras recopilar toda la información necesaria sobre el cliente, cree un vaulted_token utilizando la función del endpoint apiClientEnroll.continueEnrollment . Dado que se trata de una función asincrónica, utiliza una try/catch para gestionar los errores que puedan producirse. El siguiente ejemplo muestra cómo crear un bloque vaulted_token:

apiClientEnroll.continueEnrollment( 
 collectedData = EnrollmentCollectedData(
    customerSession = "customer_session",
    métodoDePago = MétodoDeInscripción(
           tipo = "TARJETA",
           tarjeta = DatosDeTarjeta(
               guardar = verdadero,
               detalle = Detalle(
                   mesDeVencimiento = 11,
                   añoDeVencimiento = 55,
                   número = "4111111111111111",
                   securityCode = "123",
                   holderName = "Nombre Apellido",
                   type = CardType.DEBIT
               ),
           customer = Customer(
               id = "id",
               merchantCustomerId = "merchant_customer_id",
               firstName = "firstName",
 email "[email ]",
               país = "CO",
documento = Documento(
tipo de documento = "PAS",
número de documento = "PAS12312"),

teléfono = Teléfono(
número = "321123321123",
código de país = "57")
)
),

contexto = esto
 )

El objeto apiClientEnroll.continueEnrollment devuelve un tipo Observable que extiende LiveData. Puede observar la respuesta como una norma LiveData con tipo SingleLiveEvent<Map<String, Any?>>. Este LiveData emite una sola vez y devuelve un Map que contiene la respuesta completa. A continuación se muestra un ejemplo de respuesta de llamada apiClientEnroll.continueEnrollment:

{
  "vaulted_token": "9104911d-5df9-429e-8488-ad41abea1a4b",
  "status": "SUCCEEDED",
  "customer": {
    "session": "eec6578e-ac2f-40a0-8065-25b5957f6dd3"
  }
}

El siguiente bloque de código muestra un ejemplo de observación de la respuesta:

apiClientPayment.continueEnrollment(data, context).observe(context) { response ->
   val estado = respuesta["estado"] as String?
   val vauldtedtoken = response["vaulted_token"] as String?
}
📘

Seguimiento del estado del webhook

Considere el uso del estado de inscripción recibido a través de Webhooks. Yuno recomienda utilizar siempre este estado para basar y tomar decisiones de negocio en su plataforma.