Skip to content

ashokdey/sendotp-promise

Repository files navigation

SendOtp-Promise - Node.js SDK

Build Status   Maintainability   npm version

This SDK is the promise wrapper for SentOtp by MSG91

NPM

Set-up:

  1. Download the NPM module
// using npm
npm install sendotp -S

// using yarn
yarn add sendotp-promise
  1. Require the package in your code.
const SendOTP = require('sendotp-promise'); / import SendOTP from 'sendotp-promise';
  1. Initialize with your MSG91 auth key
const sendOtp = new SendOTP('AuthKey');

That's all, your SDK is set up!

Requests

You now have the send, retry and verify otp via following methods.

sendOtp.send(contactNumber, senderId, otp, callback); //otp is optional if not sent it'll be generated automatically
sendOtp.retry(contactNumber, retryVoice, callback);
sendOtp.verify(contactNumber, otpToVerify, callback);

Usage:

To send OTP, without optional parameters

// normal callback
sendOtp.send("919999999999", "PRIIND", function (error, data, response) {
  console.log(data);
});

Using async-await

// ES6 import 
import SendOTP from 'sendotp-promise';

// using commonJS pattern
// const SendOTP = require('sendotp-promise');

const MSG91_AUTH_KEY = 'your auth key here';
const MSG91_SENDER_ID = 'your sender id of 6 characters';

// new instance of SendOTP
const sendOtp = new SendOtp(MSG91_AUTH_KEY);

// set the expiry for your OTP
sendOtp.setOtpExpiry('60');

const sendOtpToMobile = async (mobileNumber) => {
  try {
    // call the send() method
    const response = await sendOtp.send(mobile, MSG91_SENDER_ID);
    console.log(response);
    if (response.type === 'success') {
      return console.log('OTP code sent');
    }

    return console.log('Failed to sent OTP');
  } catch (err) {
    console.error(err);
    return console.log('Something went wrong');
  }
};

// the mobile number
const countryCode = 'your country code';
const mobileNumber = 'any mobile number';
const completeMobileNumber = `${countryCode}${mobileNumber}`;

// call 
sendOtpToMobile(completeMobileNumber);

To send OTP, with optional parameters

sendOtp.send("919999999999", "PRIIND", "4635", function (error, data, response) {
  console.log(data);
});

If you want to set custom expiry of OTP verification

sendOtp.setOtpExpiry('90'); //in minutes

To retry OTP

sendOtp.retry("919999999999", false, function (error, data, response) {
  console.log(data);
});

Note: In sendOtp.retry() set retryVoice false if you want to retry otp via text, default value is true

To verify OTP

sendOtp.verify("919999999999", "4365", function (error, data, response) {
  console.log(data); // data object with keys 'message' and 'type'
  if(data.type == 'success') console.log('OTP verified successfully')
  if(data.type == 'error') console.log('OTP verification failed')
});

Options:

By default sendotp uses default message template, but custom message template can also set in constructor like

const SendOtp = require('sendotp');
const sendOtp = new SendOtp('AuthKey', 'Otp for your order is {{otp}}, please do not share it with anybody');

{{otp}} expression is used to inject generated otp in message.

Want to Contribute?

Read how to contribute

Licence:

Read it here

Releases

No releases published

Packages

No packages published