API de Autenticación para Android
Envíe códigos OTP o integre la autenticación en 2 factores con nuestra API para Android de forma sencilla y segura. Pruebe gratis nuestra API para Android. Nuestro equipo le ayudará a mejorar la seguridad y autenticación de su aplicación en Android.
Funcionalidad de la API de Autenticación
OTP con Android
String afilnet_class="otp";
String afilnet_method="generateotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_type="number";
String afilnet_destination="34600000000";
String afilnet_time="1";
String afilnet_timetype="days";
String afilnet_length="6";
String afilnet_otpformat="all";
String afilnet_output="";
// Create an URL request
String sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&type="+afilnet_type+"&destination="+afilnet_destination+"&time="+afilnet_time+"&timetype="+afilnet_timetype+"&length="+afilnet_length+"&otpformat="+afilnet_otpformat+"&output="+afilnet_output;
URL url = new URL(sUrl);
StringBuilder builder = new StringBuilder();
BufferedReader theJSONline = new BufferedReader(new InputStreamReader(url.openStream()));
builder.append(theJSONline.readLine());
String content = builder.toString();
String afilnet_class="otp";
String afilnet_method="generateotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_type="number";
String afilnet_destination="34600000000";
String afilnet_time="1";
String afilnet_timetype="days";
String afilnet_length="6";
String afilnet_otpformat="all";
String afilnet_output="";
// Create the POST request
String post = "class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&type="+afilnet_type+"&destination="+afilnet_destination+"&time="+afilnet_time+"&timetype="+afilnet_timetype+"&length="+afilnet_length+"&otpformat="+afilnet_otpformat+"&output="+afilnet_output;
// We generate the URL
URL myurl = new URL("https://www.afilnet.com/api/http/");
// We create the connection
HttpURLConnection con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(post.length()));
con.setRequestMethod("POST");
// We build the
OutputStream os = con.getOutputStream();
os.write(post.getBytes());
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult = con.getResponseCode();
if(HttpResult == HttpURLConnection.HTTP_OK)
{
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
} else {
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
String afilnet_class="otp";
String afilnet_method="generateotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_type="number";
String afilnet_destination="34600000000";
String afilnet_time="1";
String afilnet_timetype="days";
String afilnet_length="6";
String afilnet_otpformat="all";
String afilnet_output="";
// Create the POST request
String post = "class="+afilnet_class+"&method="+afilnet_method+"&type="+afilnet_type+"&destination="+afilnet_destination+"&time="+afilnet_time+"&timetype="+afilnet_timetype+"&length="+afilnet_length+"&otpformat="+afilnet_otpformat+"&output="+afilnet_output;
// We generate the URL
URL myurl = new URL("https://www.afilnet.com/api/basic/");
// We create the connection
HttpURLConnection con = (HttpURLConnection) myurl.openConnection();
String encoded = Base64.getEncoder().encodeToString((afilnet_user+":"+afilnet_password).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", "Basic "+encoded);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(post.length()));
con.setRequestMethod("POST");
// We build the
OutputStream os = con.getOutputStream();
os.write(post.getBytes());
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult = con.getResponseCode();
if(HttpResult == HttpURLConnection.HTTP_OK)
{
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
} else {
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
Parámetro | Descripción | Obligatorio / Opcional |
---|---|---|
class=otp | Clase a la que se realiza la petición | Obligatorio |
method=generateotp | Método de la clase al que se realiza la petición | Obligatorio |
user | El usuario / email de su cuenta de Afilnet | Obligatorio |
password | El password de su cuenta de Afilnet | Obligatorio |
type | Tipo de grupo (email o mobile) | Obligatorio |
destination | Número de móvil o email destino | Obligatorio |
time | Número de días, semanas, meses o años | Opcional |
timetype | Tipo de tiempo (Valores posibles: minutes, hours, days, weeks, months o years) | Opcional |
length | Longitud de la contraseña a generar | Opcional |
otpformat | Formato de la contraseña a generar, si incluye todos los carácteres, sólo números o sólo letras (all, numbers, letters) | Opcional |
output | Formato de salida del resultado | Opcional |
Respuesta:
- status
-
result (si status=success), recibirá los siguientes valores:
- status
- code
- error (si status=error), aquí recibirá el código de error
Códigos de error:
Código | Descripción |
---|---|
MISSING_USER | Usuario / email no incluido |
MISSING_PASSWORD | Password no incluido |
MISSING_CLASS | Clase no incluida |
MISSING_METHOD | Método no incluido |
MISSING_COMPULSORY_PARAM | Parámetro obligatorio no incluido |
INCORRECT_USER_PASSWORD | Usuario o clave incorrectos |
INCORRECT_CLASS | Clase incorrecta |
INCORRECT_METHOD | Método incorrecto |
INCORRECT_TIME_TYPE | Tipo de tiempo incorrecto (Valores posibles: minutes, hours, days, weeks, months o years) |
INCORRECT_TYPE | Tipo incorrecto, debe ser mobile o email |
INCORRECT_FORMAT | El formato del destinatario no es correcto (verifique el email o número del destinatario) |
INCORRECT_OTP_FORMAT | El formato de OTP a generar no existe, este debe ser uno de los siguientes valores: all, letters, numbers |
Verificar OTP con Android
String afilnet_class="otp";
String afilnet_method="generateotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_type="number";
String afilnet_destination="34600000000";
String afilnet_time="1";
String afilnet_timetype="days";
String afilnet_length="6";
String afilnet_otpformat="all";
String afilnet_output="";
// Create the POST request
String post = "class="+afilnet_class+"&method="+afilnet_method+"&type="+afilnet_type+"&destination="+afilnet_destination+"&time="+afilnet_time+"&timetype="+afilnet_timetype+"&length="+afilnet_length+"&otpformat="+afilnet_otpformat+"&output="+afilnet_output;
// We generate the URL
URL myurl = new URL("https://www.afilnet.com/api/basic/");
// We create the connection
HttpURLConnection con = (HttpURLConnection) myurl.openConnection();
String encoded = Base64.getEncoder().encodeToString((afilnet_user+":"+afilnet_password).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", "Basic "+encoded);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(post.length()));
con.setRequestMethod("POST");
// We build the
OutputStream os = con.getOutputStream();
os.write(post.getBytes());
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult = con.getResponseCode();
if(HttpResult == HttpURLConnection.HTTP_OK)
{
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
} else {
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}String afilnet_class="otp";
String afilnet_method="verifyotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_destination="34600000000";
String afilnet_code="A73HF3I";
String afilnet_output="";
// Create an URL request
String sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&destination="+afilnet_destination+"&code="+afilnet_code+"&output="+afilnet_output;
URL url = new URL(sUrl);
StringBuilder builder = new StringBuilder();
BufferedReader theJSONline = new BufferedReader(new InputStreamReader(url.openStream()));
builder.append(theJSONline.readLine());
String content = builder.toString();
String afilnet_class="otp";
String afilnet_method="verifyotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_destination="34600000000";
String afilnet_code="A73HF3I";
String afilnet_output="";
// Create the POST request
String post = "class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&destination="+afilnet_destination+"&code="+afilnet_code+"&output="+afilnet_output;
// We generate the URL
URL myurl = new URL("https://www.afilnet.com/api/http/");
// We create the connection
HttpURLConnection con = (HttpURLConnection) myurl.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(post.length()));
con.setRequestMethod("POST");
// We build the
OutputStream os = con.getOutputStream();
os.write(post.getBytes());
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult = con.getResponseCode();
if(HttpResult == HttpURLConnection.HTTP_OK)
{
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
} else {
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
String afilnet_class="otp";
String afilnet_method="verifyotp";
String afilnet_user="user";
String afilnet_password="password";
String afilnet_destination="34600000000";
String afilnet_code="A73HF3I";
String afilnet_output="";
// Create the POST request
String post = "class="+afilnet_class+"&method="+afilnet_method+"&destination="+afilnet_destination+"&code="+afilnet_code+"&output="+afilnet_output;
// We generate the URL
URL myurl = new URL("https://www.afilnet.com/api/basic/");
// We create the connection
HttpURLConnection con = (HttpURLConnection) myurl.openConnection();
String encoded = Base64.getEncoder().encodeToString((afilnet_user+":"+afilnet_password).getBytes(StandardCharsets.UTF_8));
con.setRequestProperty("Authorization", "Basic "+encoded);
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Content-Length", String.valueOf(post.length()));
con.setRequestMethod("POST");
// We build the
OutputStream os = con.getOutputStream();
os.write(post.getBytes());
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult = con.getResponseCode();
if(HttpResult == HttpURLConnection.HTTP_OK)
{
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
} else {
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
Parámetro | Descripción | Obligatorio / Opcional |
---|---|---|
class=otp | Clase a la que se realiza la petición | Obligatorio |
method=verifyotp | Método de la clase al que se realiza la petición | Obligatorio |
user | El usuario / email de su cuenta de Afilnet | Obligatorio |
password | El password de su cuenta de Afilnet | Obligatorio |
destination | Número de móvil o email destino | Obligatorio |
code | Contraseña a verificar | Opcional |
output | Formato de salida del resultado | Opcional |
Respuesta:
- status
-
result (si status=success), recibirá los siguientes valores:
- No recibirá valores adicionales
- error (si status=error), aquí recibirá el código de error
Códigos de error:
Código | Descripción |
---|---|
MISSING_USER | Usuario / email no incluido |
MISSING_PASSWORD | Password no incluido |
MISSING_CLASS | Clase no incluida |
MISSING_METHOD | Método no incluido |
MISSING_COMPULSORY_PARAM | Parámetro obligatorio no incluido |
INCORRECT_USER_PASSWORD | Usuario o clave incorrectos |
INCORRECT_CLASS | Clase incorrecta |
INCORRECT_METHOD | Método incorrecto |
CODE_NOT_FOUND | El código enviado es incorrecto o ha caducado |
¿Qué API para Android debo utilizar?
Descubra las ventajas e inconvenientes de cada una de nuestras APIs. Descubra cual API es mejor para su Software en Android.
Esta API permite conectar con nosotros desde Android para enviar peticiones a través de peticiones HTTP GET. Esta petición envía los parámetros en la misma URL de la petición.
- HTTP GET es extremadamente sencillo de implementar
- Información se envía no cifrada (Se podría extraer contraseñas de logs o caché)
- Petición máximas de ~4000 caracteres
La API de peticiones POST le permite conectar con nuestra API desde Android enviando los parámetros de la petición por parámetros HTTP POST. La información se envía de forma independiente a la URL.
- HTTP POST es sencillo de implementar
- Información se envía cifrada
- No hay limite en el tamaño de la petición
- Seguridad media
La API de autenticación básica permite la utilización de peticiones GET y POST en Android con una capa de seguridad adicional, ya que en este caso el usuario y clave se envía en la cabecera de la petición.
- La autenticación básica es sencilla de implementar
- Datos de acceso se envían cifrados
- El límite del tamaño depende del uso de GET o POST
- Seguridad media
SOAP le permite enviar peticiones en formato XML con Android, SOAP añade capa de seguridad extra en las peticiones API.
- La integración SOAP es más compleja
- Información se envía cifrada
- No hay limite en el tamaño de la petición
- Seguridad media / alta
Nuestra API JSON le permite enviar peticiones en formato JSON con Android, además esta API añade el protocolo oAuth 2.0 en la autenticación que le permite añadir una capa adicional de seguridad.
- La integración JSON oAuth 2.0 es más compleja
- Información se envía cifrada
- No hay limite en el tamaño de la petición
- Seguridad alta
Conectar Android con nuestra API de OTP (One-Time Password)
Regístrese como cliente
Para poder tener acceso a la API debe ser cliente de Afilnet. El registro le llevará pocos minutos.
Solicite su prueba gratuita
Nuestra empresa le ofrecerá saldo de prueba que le permitirá realizar las pruebas con la API que necesite.
Integre la API
Realice la integración de la API utilizando el lenguaje de programación que deseen. Si tiene alguna duda o sugerencía sobre la API contáctenos
¡Bienvenido a Afilnet!
¡Todo listo!, ha conseguido mejorar sus comunicaciones con Afilnet. Estamos para darle soporte de nuestra API cuando lo necesite
Contacte con nuestro equipo a través de cualquiera duda a través de los métodos de contacto que le ofrecemos. Nuestro equipo intentará ofrecerla una solución inmediata y le ayudará en la integración de nuestra API en su Software.