承接上文 ,上次用的是 短信寶平臺 認證已經通過 后續又新增要求?平臺相當麻煩!
短信寶實現短信發送要求:
1.平臺綁定手機號? ? 必須和? ?營業執照法人一致
2.平臺個人實名認證 必須和? 營業執照法人一致
3.平臺需要上傳營業執照
4.平臺需要上傳手持身份證
5.平臺需要網站備案信息 備案信息 必須和 營業執照法人一致
第五步完成后 我不知道還需要提交什么才能通過認證實現短信發送 ,因為我看不到平臺這個洞底
?
UniSMS
介紹:
認證要求, 平臺有 個人認證 和 企業認證?
- 個人認證實名通過后 創建簽名 添加對應信息提交等待
- 企業認證提交 三合一營業執照? 創建簽名?添加對應信息提交等待
?
說一下 unisms 我這里是怎么通過的?
提交三合一營業執照 創建簽名 簽名名稱 添加 機構名即可
相比其他平臺 unisms 會快捷容易
實現短信驗證碼發送
unisms有實現短信發送兩種方式分別是 SDK 和 API接口?
sdk實現:
注意:這里把 .js 后綴 替換為 .cjs 為什么要替換??這樣 Node.js 會將該文件視為 CommonJS 模塊。
安裝第三方庫:
npm install?unisms or yarn add?unisms
const express = require('express')
const router = express.Router()
const UniSMS = require('unisms').defaultconst client = new UniSMS({accessKeyId: 'your access key id'
})
const SmsSignature = 'your SMS signature name'async function sendSMS (mobile, template, codeNumber) {try {const data = await client.send({to: mobile, //手機號signature: SmsSignature, //你的短信簽名 名稱templateId: template, //你的短信簽名模版templateData: { code: codeNumber } //短信驗證碼})console.log('SMS Sent:', data)return data} catch (error) {console.error('Error sending SMS:', error)throw error}
}
// 生成指定位數的隨機數
function generateRandomCode (length) {const min = Math.pow(10, length - 1)const max = Math.pow(10, length) - 1return Math.floor(Math.random() * (max - min + 1) + min).toString()
}router.get('/uniSdk/MobileCodeNumber', async (req, res) => {console.log(`這是用戶傳遞來的信息`, req.query)if (!req.query.mobile)return res.status(400).json({ code: 400, message: 'mobile參數必傳' })try {const mobileNumber = req.query.mobile // 替換為實際的手機號碼const verificationCode = generateRandomCode(6) // 生成或獲取實際的驗證碼console.log(`驗證碼`, verificationCode)const TemplateContent = 'your sms template variate'await sendSMS(mobileNumber, TemplateContent, verificationCode)res.status(200).json({ code: 200, message: 'SMS sent successfully!' })} catch (error) {console.error(error)res.status(400).json({ code: 400, message: 'Failed to send SMS.' })}
})module.exports = router
API接口實現
import express from 'express'
const router = express.Router()
import axios from 'axios'
// 替換為你的API賬號信息const apiAccessKeyId = 'your access key id'
const apiUrl = 'https://uni.apistd.com/'
const apiAction = 'sms.message.send'
const SmsSignature = 'your sms signature name'
// 'pub_verif_basic'
// 發送短信驗證碼的函數
async function sendSMS (mobile, template, codeNumber) {try {// url: apiUrl + '?action=' + apiAction + '&accessKeyId=' + apiAccessKeyIdconst { data } = await axios({url: apiUrl + '?action=' + apiAction + '&accessKeyId=' + apiAccessKeyId,method: 'post',data: {to: mobile, //手機號signature: SmsSignature, //短信簽名 名稱templateId: template, // 短信內容templateData: { code: codeNumber } //驗證碼} })// 處理響應,根據需要進行進一步的處理console.log('SMS Sent:', data)return data} catch (error) {console.error('Error sending SMS:', error)throw error}
}
// 生成指定位數的隨機數
function generateRandomCode (length) {const min = Math.pow(10, length - 1)const max = Math.pow(10, length) - 1return Math.floor(Math.random() * (max - min + 1) + min).toString()
}router.get('/Test/MobileCodeNumber', async (req, res) => {console.log(`這是用戶傳遞來的信息`, req.query)if (!req.query.mobile)return res.status(400).json({ code: 400, message: 'mobile參數必傳' })try {const mobileNumber = req.query.mobile // 替換為實際的手機號碼const verificationCode = generateRandomCode(6) // 生成或獲取實際的驗證碼console.log(`驗證碼`, verificationCode)const TemplateContent = 'your sms Template variable'await sendSMS(mobileNumber, TemplateContent, verificationCode)res.status(200).json({ code: 200, message: 'SMS sent successfully!' })} catch (error) {console.error(error)res.status(400).json({ code: 400, message: 'Failed to send SMS.' })}
})
export default router