thaibulksms-api
Version:
วิธีส่ง SMS ง่ายๆด้วย Thaibulksms API ทั้งแบบข้อความและ OTP
87 lines (76 loc) • 2.91 kB
JavaScript
const axios = require('axios');
class TBS_OTP {
constructor(options) {
this.configs = {
api: `https://otp.thaibulksms.com`,
version: 'v1',
...options
}
}
// ขอรหัส otp
// msisdn คือเบอร์โทรศัพท์มือถือ
request(msisdn) {
return new Promise((resolve, reject) => {
let v = this.configs.version || 'v1'
let endpoint = `${this.configs.api}/${v}/otp/request`
axios.post(endpoint, {
key: this.configs.apiKey,
secret: this.configs.apiSecret,
msisdn: msisdn
}).then(function (response) {
resolve(response.data);
}).catch(function (error) {
if (v === 'v1') {
error = {
code: error.response.data.error.code,
statusText: error.response.statusText,
message: error.response.data.error.errors[0],
}
} else if (v === 'v2') {
error = {
code: error.response.data.code,
statusText: error.response.statusText,
message: error.response.data.errors[0],
}
}
reject(error);
})
})
}
// เช็ครหัส otp ถูกค้องหรือไม่
// token คือ string ที่ได้จากการขอ รหัส otp
// pin คือ รหัส otp ที่จากข้อความ sms
verify(token, pin) {
return new Promise((resolve, reject) => {
let v = this.configs.version || 'v1'
let endpoint = `${this.configs.api}/${v}/otp/verify`
axios.post(endpoint, {
key: this.configs.apiKey,
secret: this.configs.apiSecret,
token: token,
pin: pin
}).then(function (response) {
resolve(response.data);
}).catch(function (error) {
if (v === 'v1') {
error = {
code: error.response.data.error.code,
statusText: error.response.statusText,
message: error.response.data.error.errors[0],
}
} else if (v === 'v2') {
error = {
code: error.response.data.code,
statusText: error.response.statusText,
message: error.response.data.errors[0],
}
}
reject(error);
})
})
}
}
const otp = (options) => {
return new TBS_OTP(options)
}
module.exports = otp