Guía de Integración del SDK de Android
Descripción General
El SDK de Android MTVerify es un SDK de autenticación de números de teléfono móvil que ofrece una verificación de números de teléfono rápida, segura y de nivel operador.
Funciones Principales
- Inicialización del SDK: Obtiene la configuración automáticamente e inicializa mediante el AppKey
- Comprobación de cobertura: Comprueba si el entorno de red actual es compatible con el servicio de autenticación
- Autenticación del número: Inicia la autenticación del número de teléfono y obtiene un token de autenticación
Requisitos del Sistema
- Android 5.0 (API 21) y superior
- El dispositivo del usuario tiene los datos móviles activados
Guía de Integración
Configuración de Permisos
El paquete aar solicita los siguientes permisos:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Configuración del Operador
Dado que la interfaz del operador requiere transmisión HTTP en texto plano, debe configurar la política de seguridad de red en el AndroidManifest.xml de su aplicación:
<application
android:networkSecurityConfig="@xml/mtverify_network_security_config"
...>
...
</application>
También debe copiar el archivo mtverify_network_security_config.xml en el directorio res/xml/ de su aplicación. Puede encontrar este archivo en el paquete de instalación que descargó.
Lista de Métodos
- setLogEnable - Establecer el interruptor de registro
- init - Inicializar el SDK
- checkCoverage - Comprobar la cobertura
- startAuthentication - Realizar la autenticación
init
Inicializa el SDK de MTVerify y establece la clave de la aplicación y la configuración del entorno.
Firma del Método
@JvmStatic
fun init(
context: Context,
appkey: String,
environment: IPEnvironment = IPEnvironment.PRODUCTION,
callback: InitCallback? = null
)
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| context | Context | Sí | Objeto de contexto de Android |
| appkey | String | Sí | Clave de la aplicación, usada para identificar la aplicación |
| environment | IPEnvironment | No | Tipo de entorno, predeterminado SANDBOX. Opciones: - IPEnvironment.SANDBOX: entorno de prueba/sandbox - IPEnvironment.PRODUCTION: entorno de producción |
| callback | InitCallback? | No | Interfaz de callback de inicialización, usada para recibir el resultado de la inicialización |
Valor de Retorno
Ninguno
Resultado del Callback
El resultado de la inicialización se devuelve mediante InitCallback.onComplete(result: InitResult):
data class InitResult(
val code: Int, // Código de estado; 0 significa éxito, otros números significan fallo
val message: String? // Mensaje (mensaje de éxito o de error)
)
Ejemplo de Uso
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.PRODUCTION,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Inicialización correcta
Log.d("MTVerify", "Inicialización correcta: ${result.message}")
} else {
// Inicialización fallida
Log.e("MTVerify", "Inicialización fallida: ${result.message}")
}
}
}
)
Notas
- Debe llamar al método
init()para inicializar el SDK antes de usar otras funciones - El proceso de inicialización obtiene
clientIdyredirectUrlmediante una solicitud HTTP y requiere conexión de red
setLogEnable
Establece el interruptor de registro para controlar la salida de registros del SDK.
Firma del Método
@JvmStatic
fun setLogEnable(enable: Boolean)
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| enable | Boolean | Sí | true activa el registro, false desactiva toda la salida de registros |
Ejemplo de Uso
// Activar el registro
MTVerifyApi.setLogEnable(true)
// Desactivar el registro
MTVerifyApi.setLogEnable(false)
checkCoverage
Comprueba si el número de teléfono especificado es compatible con el servicio de verificación de IPification.
Firma del Método
@JvmStatic
fun checkCoverage(
context: Context,
phoneNumber: String,
callback: CoverageCallback? = null
)
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| context | Context | Sí | Objeto de contexto de Android |
| phoneNumber | String | Sí | Código de país + número de teléfono del usuario |
| callback | CoverageCallback? | No | Interfaz de callback de la comprobación de cobertura |
Valor de Retorno
Ninguno
Resultado del Callback
El resultado de la comprobación se devuelve mediante CoverageCallback.onComplete(result: CoverageResult):
data class CoverageResult(
val code: Int, // Código de estado; 0 significa éxito, otros números significan fallo
val isAvailable: Boolean, // Si está disponible (operador compatible)
val operatorCode: String?, // Código del operador
val message: String? // Mensaje (mensaje de éxito o de error)
)
Ejemplo de Uso
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.code == 0) {
if (result.isAvailable) {
// El servicio es compatible
Log.d("MTVerify", "Operador compatible: ${result.operatorCode}")
} else {
// El servicio no es compatible
Log.d("MTVerify", "Operador no compatible")
}
} else {
// Comprobación fallida
Log.e("MTVerify", "Comprobación fallida: ${result.message}")
}
}
}
)
startAuthentication
Inicia el flujo de autenticación del número de teléfono.
Firma del Método
@JvmStatic
fun startAuthentication(
activity: Activity,
countryCode: String,
phoneNumber: String,
callback: AuthenticationCallback? = null
)
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| activity | Activity | Sí | Objeto Activity de Android, usado para mostrar la interfaz de autenticación |
| countryCode | String | Sí | Código de país |
| phoneNumber | String | Sí | Número de teléfono del usuario (sin código de país) |
| callback | AuthenticationCallback? | No | Interfaz de callback de autenticación |
Valor de Retorno
Ninguno
Resultado del Callback
El resultado de la autenticación se devuelve mediante AuthenticationCallback.onComplete(result: AuthenticationResult):
data class AuthenticationResult(
val code: Int, // Código de estado; 0 significa éxito, -1 significa fallo, -2 significa cancelado por el usuario
val token: String?, // Datos de autenticación cifrados (una cadena JSON que contiene el código, cifrada con AES)
val message: String? // Mensaje (mensaje de éxito o de error)
)
Nota: token es una cadena JSON cifrada con el siguiente formato:
{
"version": "1",
"content": {
"code": "código de autenticación",
"state": "parámetro de estado",
"appkey": "clave de la aplicación"
}
}
Ejemplo de Uso
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
when (result.code) {
0 -> {
// Autenticación correcta
val token = result.token
// El token se usa para canjear el resultado
Log.d("MTVerify", "Autenticación correcta: $token")
}
-1 -> {
// Autenticación fallida
Log.e("MTVerify", "Autenticación fallida: ${result.message}")
}
-2 -> {
// Cancelado por el usuario
Log.d("MTVerify", "El usuario canceló la autenticación")
}
}
}
}
)
Modelos de Datos
IPEnvironment
Enumeración del tipo de entorno:
enum class IPEnvironment {
SANDBOX, // Entorno de prueba/sandbox
PRODUCTION // Entorno de producción
}
InitResult
Resultado de la inicialización:
data class InitResult(
val code: Int, // Código de estado; 0 significa éxito
val message: String? // Mensaje
)
CoverageResult
Resultado de la comprobación de cobertura:
data class CoverageResult(
val code: Int, // Código de estado; 0 significa éxito
val isAvailable: Boolean, // Si está disponible
val operatorCode: String?, // Código del operador
val message: String? // Mensaje
)
AuthenticationResult
Resultado de la autenticación:
data class AuthenticationResult(
val code: Int, // Código de estado; 0 significa éxito, -1 significa fallo, -2 significa cancelado por el usuario
val token: String?, // Token de autenticación cifrado
val message: String? // Mensaje
)
Interfaces de Callback
InitCallback
Interfaz de callback de inicialización:
interface InitCallback {
fun onComplete(result: InitResult)
}
CoverageCallback
Interfaz de callback de la comprobación de cobertura:
interface CoverageCallback {
fun onComplete(result: CoverageResult)
}
AuthenticationCallback
Interfaz de callback de autenticación:
interface AuthenticationCallback {
fun onComplete(result: AuthenticationResult)
}
Ejemplo Completo
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. Activar el registro (opcional)
MTVerifyApi.setLogEnable(true)
// 2. Inicializar el SDK
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.SANDBOX,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Inicialización correcta; puede empezar a usar otras funciones
checkCoverage()
}
}
}
)
}
private fun checkCoverage() {
// 3. Comprobar la cobertura
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.isAvailable) {
// 4. Si es compatible, realizar la autenticación
startAuthentication()
}
}
}
)
}
private fun startAuthentication() {
// 5. Realizar la autenticación
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
if (result.code == 0) {
// Autenticación correcta; procesar el token
handleToken(result.token)
}
}
}
)
}
private fun handleToken(token: String?) {
// Llamar a la API para procesar el token canjeado
}
}
Notas
- Orden de inicialización: Debe llamar al método
init()para inicializar el SDK antes de usar otras funciones. - Seguridad de subprocesos: Todos los métodos de la API se pueden llamar en el hilo principal, y los callbacks también se ejecutan en el hilo principal.
- Requisitos de permisos: Asegúrese de que la aplicación haya solicitado los permisos de red necesarios.
- Descifrado del token: El token devuelto tras una autenticación correcta está cifrado y debe procesarse con el método de descifrado correspondiente.
- Control de registros: Se recomienda desactivar la salida de registros en el entorno de producción para mejorar el rendimiento y la seguridad.
Información de la Versión
- Versión del SDK: 1.0.1










