SMS OTP (2factor)
OTP Authentication Solution
El sistema de autenticación de un solo uso le da seguridad a sus clientes, solo se deberá colocar el usuario o correo electrónico que utiliza para iniciar sesión en su portal y el resto será una clave de uso único que genera nuestro sistema.
La primera petición que se realiza es para solicitar el código único y el envío del SMS con dicho código.
https://my.unityvox.com/api/get-api/v1/OTP-api?accountnumber={account-number}&apikey={apikey}&ref_id={ref_id}&phone_number=1305xxxxxxxx
Esta peticion genera un código aleatorio de 6 dígitos el cual se podrá validar 1 sola vez y tiene una duración de 10 minutos, si el código vence o se valida se tendrá que solicitar otro nuevo ejecutando la misma petición.
<form action="https://my.unityvox.com/api/get-api/v1/OTP-api" method="POST" name="request_otp">
<input name="accountnumber" type="hidden" value="{account-number}" />
<input name="apikey" type="hidden" value="{apikey}" />
<input name="ref_id" type="hidden" size="35" value={ref_id}"/>
<input name="phone_number" type="text" size="35" placeholder="Para (ej: Cod Pais + Cod Area + Telf)"/>
<input name="Submit" type="submit" value="Submit">
</form>
JavaScript API
var xhr = new XMLHttpRequest();
var url = https://my.unityvox.com/api/get-api/v1/OTP-api
xhr.open("POST", url+"?accountnumber={account-number}&apikey={apikey}&ref_id={ref_id}&phone_number=1305xxxxxxxx", true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(’success’);
}
};
xhr.send();
CURL API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://my.unityvox.com/api/get-api/v1/OTP-api?accountnumber={account-number}&apikey={apikey}&ref_id={ref_id}&phone_number=1305xxxxxxxx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
Variables para solicitud de código OTP
-
-
apikey
Clave privada generada en su cuenta https:/my.unityvox.com.
-
accountnumber
Número de cuenta, podrá encontrarlo en su panel de administración en la sección API Key.
-
ref_id
Valor único generado cuando creo el Témplate en https://my.unityvox.com
-
phone_number
Número de teléfono de destino.
Respuestas de Sistema en Envío
//Respuesta Error//
{
"version":"1.00",
"code":"020",
"status":"error",
"resultstring":"Failure",
"statusmessage":"Invalid or empty Message ref_id"
}
{
"version":"1.00",
"code":"021",
"status":"error",
"resultstring":"Failure",
"sessionID":"{sessionID}",
"statusmessage":"No Plan or Balance in account"
}
//Respuesta exitosa
{
"version":"1.00",
"code":"022",
"status":"success",
"resultstring":"Success",
"phone_number":{phone_number},
"sessionID":{sessionID},
"statusmessage":"Message sent successfully"
}
Validación de código OTP recibido por su cliente.
Para poder realizar la verificación del código deberá enviar en su petición 2 nueva variable que es sessionID la cual recibió en la respuesta de solicitud de código y el código que recibió su cliente por SMS en su Mobil.
https://my.unityvox.com/api/get-api/v1/OTP-api/verify?accountnumber={account-number}&apikey={apikey}&sessionid={sessionID}&otp_code={otp_code}]
Esta peticion genera un código aleatorio de 6 dígitos el cual se podrá validar 1 sola vez y tiene una duración de 10 minutos, si el código vence o se valida se tendrá que solicitar otro nuevo ejecutando la misma petición.
<form action="https://my.unityvox.com/api/get-api/v1/OTP-api/verify" method="POST" name="request_otp">
<input name="accountnumber" type="hidden" value="{account-number}" />
<input name="apikey" type="hidden" value="{apikey}" />
<input name="sessionid" type="hidden" size="35" value={sessionid}"/>
<input name="otp_code" type="text" size="35" value="{otp_code}"/>
<input name="Submit" type="submit" value="Submit">
</form>
JavaScript API
var xhr = new XMLHttpRequest();
var url = https://my.unityvox.com/api/get-api/v1/OTP-api/verify
xhr.open("POST", url+"?accountnumber={account-number}&apikey={apikey}&sessionid={sessionid}&otp_code={otp_code}", true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(’success’);
}
};
xhr.send();
CURL API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://my.unityvox.com/api/get-api/v1/OTP-api/verify?accountnumber={account-number}&apikey={apikey}&sessionid={sessionid}&otp_code={otp_code}");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
Variables para validacion de código OTP
-
-
apikey
Clave privada generada en su cuenta https:/my.unityvox.com.
-
accountnumber
Número de cuenta, podrá encontrarlo en su panel de administración en la sección API Key.
-
sessionid
Variable enviada en la respuesta al momento de solicitar el código OTP, es una variable única y es válida únicamente con su código OTP.
-
otp_code
Código enviado por SMS a su cliente, es código único y tiene una valides de 10 minutos y solo podrá ser usado 1 sola vez. Este código OTP se valida junto a la variable sessionid.
Respuestas de Sistema en Validación código OTP
//Respuesta Error//
{
"version":"1.00",
"code":"023",
"status":"error",
"resultstring":"Failure",
"sessionID":"{sessionid}",
"statusmessage":"OTP Expired"
}
{
"version":"1.00",
"code":"024",
"status":"error",
"resultstring":"Failure",
"sessionID":"{sessionid}",
"statusmessage":"Invalid API / SessionId Combination - No Entry Exists"
}
{
"version":"1.00",
"code":"025",
"status":"error",
"resultstring":"Failure",
"sessionID":"{sessionid}",
"statusmessage":"OTP Mismatch"
}
{
"version":"1.00",
"code":"026",
"status":"error",
"resultstring":"Failure",
"sessionID":"{sessionid}",
"statusmessage":"OTP already used"
}
//Respuesta exitosa
{
"version":"1.00",
"code":"027",
"status":"success",
"resultstring":"Success",
"sessionID":"{sessionid}",
"statusmessage":"OTP Matched"
}