API Verifikasi SMS dengan Node.js

Version – 1.0

Pengaturan untuk Verifikasi SMS

  1. Buat Akun MessageCentral: Mendaftar untuk Pusat Pesan akun untuk memulai. Anda akan menerima ID pelanggan, yang akan Anda gunakan dalam aplikasi Anda.

  2. Instal Paket yang Diperlukan: Pastikan Anda memiliki Node.js diinstal pada mesin Anda. Buat direktori baru untuk proyek Anda dan inisialisasi proyek Node.js baru. Instal paket yang diperlukan menggunakan npm:
npm install express request

Langkah Integrasi

Proses ini melibatkan tiga langkah penting berikut:

  1. Pengaturan Pusat Pesan
  2. Input Detail dalam Kode
  3. Kirim Tes OTP

a. Pengaturan Pusat Pesan

Setelah membuat akun di Pusat Pesan, Anda memerlukan detail berikut:

  • Id Pelanggan - Anda bisa mendapatkan ID pelanggan dari Message Central Home Console
  • Kredensi Login: YAnda memerlukan email dan perlu membuat kata sandi.

b. Input Detail dalam Kode

Untuk menambahkan detail MessageCentral pada kode cari tahu definisi variabel dengan nama “CustomerID”, “email” dan “password”:

const customerId = '[Your Customer ID]';
const email = '[Your Email]';
const password = '[Your Password]';

Untuk menambahkan kredenSIAL Anda dalam kode javascript, Anda perlu membuat file javascript yaitu mc_verication_service.js: Dan tambahkan kode yang disediakan ke dalam file ini.

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. Kirim Tes OTP

Jika Anda perlu menguji layanan tanpa kode, Anda dapat pergi ke verifikasi SMS gratis halaman di situs web Pusat Pesan.

Untuk memastikan integrasi berhasil, kirim SMS OTP uji sebagai berikut:

1. Jalankan file javascript menggunakan perintah

node mc_verification_service.js

2. Buka Postman dan atur Metode Permintaan sebagai POST dan

URL sebagai http://localhost:3000/sendotp/<countryCode>/<phone_number>
Inilah port 3000, itu default dan didefinisikan dalam kode, dapat diubah.

Contoh, Untuk URL Nomor Telepon India: http://localhost:3000/sendotp/91/123****123

  • Gambar: Mengirim Otp
Image 1 : Sending Otp

3. Sekarang Anda memiliki otp di kotak masuk sms Anda. Coba validasi Otp API Anda sendiri untuk memvalidasi OTP.

Buka Postman dan atur Metode Permintaan sebagai GET dan

URL sebagai http://localhost:3000/validateOtp/<countryCode>/<phone_number>/<otp>

Inilah port 3000, itu default dan didefinisikan dalam kode, dapat diubah.

Contoh, Untuk Nomor Telepon IndiaURL : http://localhost:3000/validateOtp/91/123****123/ ****

  • Gambar: Memverifikasi 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
Tim Pusat Pesan
Halo
Bagaimana kami bisa membantu Anda hari ini?
WhatsApp Icon
Mulai Obrolan Whatsapp
Obrolan WhatsApp
WhatsApp Icon