This SDK is the promise wrapper for SentOtp by MSG91
- Download the NPM module
// using npm
npm install sendotp -S
// using yarn
yarn add sendotp-promise
- Require the package in your code.
const SendOTP = require('sendotp-promise'); / import SendOTP from 'sendotp-promise';
- Initialize with your MSG91 auth key
const sendOtp = new SendOTP('AuthKey');
That's all, your SDK is set up!
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);
To send OTP, without optional parameters
// normal callback
sendOtp.send("919999999999", "PRIIND", function (error, data, response) {
console.log(data);
});
// 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')
});
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.