UNPKG

thaibulksms-api

Version:

วิธีส่ง SMS ง่ายๆด้วย Thaibulksms API ทั้งแบบข้อความและ OTP

87 lines (76 loc) 2.91 kB
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