API de verificación de SMS con Node.js

Version – 1.0

Configuración para la verificación por SMS

  1. 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.

  2. 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:

  1. Configuración de Message Central
  2. Detalles de entrada en el código
  3. 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
Image 1 : 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
Image 1 : Verifying Otp
Share this article
verification code

Boost your sales and customer engagement with Message Central now!

Message Central Logo Blue
Close Icon
Equipo central de mensajes
¡Hola!
¿Cómo podemos ayudarlo hoy?
WhatsApp Icon
Iniciar el chat de Whatsapp
Chat de WhatsApp
WhatsApp Icon