Configuración para la verificación por SMS
- Cree una cuenta de MessageCentral: Inscríbase en una central de mensajes cuenta para empezar. Recibirás un identificador de cliente, que utilizarás en tu solicitud.
- Instale los paquetes necesarios: asegúrese de tener Node.js instalado en su máquina. Cree un directorio nuevo para su proyecto e inicialice un nuevo proyecto de Node.js. Instale los paquetes necesarios mediante npm:
npm install express request
Pasos de integración
Este proceso implica los siguientes tres pasos importantes:
- Configuración de Message Central
- Detalles de entrada en el código
- Enviar una OTP de prueba
a. Configuración de Message Central
Tras crear una cuenta en Message Central, necesitará los siguientes detalles:
- ID de cliente - Puedes obtener el identificador de cliente en Message Central Home Console
- Credenciales de inicio de sesión: YNecesitarás un correo electrónico y tendrás que crear una contraseña.
b. Detalles de entrada en el código
Para agregar detalles de MessageCentral en el código, busque la definición de la variable con el nombre «customerID», «correo electrónico» y «contraseña»:
const customerId = '[Your Customer ID]';
const email = '[Your Email]';
const password = '[Your Password]';
Para añadir tus credenciales en código javascript, necesitas crear un archivo javascript es decir, mc_verication_service.js: Y añada el código proporcionado a este archivo.
const request = require('request');
const express = require('express');
const app = express();
const port = 3000;
const baseURL = 'https://cpaas.messagecentral.com';
const customerId = '[Your Customer ID]';
const email = '[Your Email]';
const password = '[Your Password]';
let verificationId;
const generateAuthToken = async () => {
const base64String = Buffer.from(password).toString('base64');
const url = `${baseURL}/auth/v1/authentication/token?country=IN&customerId=${customerId}&email=${email}&key=${base64String}&scope=NEW`;
const options = {
url: url,
headers: {
'accept': '*/*'
}
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if (error) {
console.error('Error generating auth token:', error);
reject(error);
return;
}
console.log('Auth Token:', body);
authToken = JSON.parse(body).token;
resolve(authToken);
});
});
};
const sendOtp = async (countryCode, mobileNumber) => {
const url = `${baseURL}/verification/v3/send?countryCode=${countryCode}&customerId=${customerId}&flowType=SMS&mobileNumber=${mobileNumber}`;
const options = {
url: url,
method: 'POST',
json: true,
headers: {
'accept': '*/*',
'authToken': authToken
}
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if (error) {
console.error('Error generating auth token:', error);
reject(error);
return;
}
console.log('Request :', options)
console.log('Body :', body);
verificationId = body.data.verificationId;
resolve(body);
});
});
};
const velidateOtp = async (otpCode, countryCode, mobileNumber) => {
const url = `${baseURL}/verification/v3/validateOtp?countryCode=${countryCode}&mobileNumber=${mobileNumber}&verificationId=${verificationId}&customerId=${customerId}&code=${otpCode}`;
const options = {
url: url,
method: 'GET',
json: true,
headers: {
'accept': '*/*',
'authToken': authToken
}
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if (error) {
console.error('Error generating auth token:', error);
reject(error)
return;
}
console.log('Request :', options)
console.log('Body :', body);
resolve(body);
});
});
};
app.post('/sendotp/:countryCode/:mobileNumber', async (req, res) => {
const { countryCode, mobileNumber } = req.params;
const authToken = await generateAuthToken();
try {
body = await sendOtp(countryCode, mobileNumber)
if (body.data.responseCode == 200 && body.data.errorMessage == null) {
res.status(200).send('Otp sent! Successfully');
} else {
res.status(400).send('Bad Request ${body.data.errorMessage}');
}
} catch (error) {
console.error('Error sending OTP:', error);
const s = error
res.status(500).send(s);
}
});
app.get('/validateOtp/:countryCode/:mobileNumber/:otpCode', async (req, res) => {
const { countryCode, mobileNumber, otpCode } = req.params;
const authToken = await generateAuthToken();
try {
body = await velidateOtp(otpCode, countryCode, mobileNumber);
if (body.data.verificationStatus == 'VERIFICATION_COMPLETED' && body.data.errorMessage == null) {
res.status(200).send('Otp verification Done! ');
} else {
res.status(400).send('Bad Request : ${body.data.errorMessage}');
}
} catch (error) {
console.error('Error verifying OTP:', error);
const s = error
res.status(500).send(s);
}
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
c. Enviar una OTP de prueba
Si necesita probar el servicio sin código, puede ir a verificación por SMS gratuita página en el sitio web de Message Central.
Para garantizar que la integración se realice correctamente, envíe un SMS OTP de prueba de la siguiente manera:
1. Ejecute el archivo javascript usando el comando
node mc_verification_service.js
2. Abra el Postman y configure el método de solicitud como POST y
URL como http://localhost:3000/sendotp/<countryCode>/<phone_number>
Aquí está el puerto 3000, es predeterminado y está definido en código, se puede cambiar.
Por ejemplo, para la URL de un número de teléfono indio: http://localhost:3000/sendotp/91/123****123
- Imagen: Sending Otp

3. Ahora tienes una OTP en tu bandeja de entrada de SMS. Pruebe su propia API de validación de OTP para validar OTP.
Abra Postman y configure el método de solicitud como GET y
URL como http://localhost:3000/validateOtp/<countryCode>/<phone_number>/<otp>
Aquí está el puerto 3000, es predeterminado y está definido en código, se puede cambiar.
Ejemplo, para la URL del número de teléfono indio : http://localhost:3000/validateOtp/91/123****123/ ****
- Imagen: Verifying Otp
