短信验证码的实现

1 需要第三方平台--阿里云

2 下载完毕后直接放入项目中

3 建立一个index.html;简单搭建一个就行了

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.11.1-beta1/jquery.min.js"></script>
</head>
<body>
手机号:<input type="text" id="phone"/><br />
密码:<input type="password" id="password"/><br />
<input type="text" id="yzm"/><br />
<input type="button" id="send" value="发送"/>
<input type="button" id="btn" value="注册"/>
</body>

<script>
$(function(){
$("#send").click(function(){
console.log($("#phone").val())
console.log("aa")
$.ajax({
type:"post",
url:"http://localhost:3000/regist",
data:{phonenum:$("#phone").val(),id:1},
success:function(data){
console.log(data)
}
})
})

$("#btn").click(function(){
console.log($("#password").val())
$.ajax({
type:"post",
url:"http://localhost:3000/regist",
data:{phonenum:$("#phone").val(),password:$("#password").val(),yzm:$("#yzm").val()},
success:function(data){
if(data==1){
alert("此号码已被使用")
}else{
alert("注册成功")

}
}
})
})
})
</script>

</html>

4 生成的所有文件都不用动 只需进入demo目录下的index.js进行修改和操作;一定要仔细看备注 按照备注上面说的去做

/**
 * 云通信基础能力业务短信发送、查询详情以及消费消息示例,供参考。
 * Created on 2017-07-31
 */


const SMSClient = require('./../index');
const express = require("express");
const app = express();
const mongodb = require('mongodb').MongoClient();
const bodyParser = require('body-parser');
const db_str = "mongodb://localhost:27017/aaa";       //写入自己的数据库




app.use(express.json());
app.use(express.urlencoded({ extended: false }));


// ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
const accessKeyId = 'LTAItfx3V8EvxOHE'
const secretAccessKey = 'jWtWxqe6vP7skHjuTP9YWEfiiaz1px'


//在云通信页面开通相应业务消息后,就能在页面上获得对应的queueName,不用填最后面一段
const queueName = 'Alicom-Queue-1092397003988387-'


//初始化sms_client
let smsClient = new SMSClient({accessKeyId, secretAccessKey})


//短信回执报告
smsClient.receiveMsg(0, queueName).then(function (res) {
    //消息体需要base64解码
    let {code, body}=res
    if (code === 200) {
        //处理消息体,messagebody
//      console.log(body)
    }
}, function (err) {
//  console.log(err)
})


//短信上行报告
smsClient.receiveMsg(1, queueName).then(function (res) {
    //消息体需要base64解码
    let {code, body}=res
    if (code === 200) {
        //处理消息体,messagebody
//      console.log(body)
    }
}, function (err) {
//  console.log(err)
})




//查询短信发送详情
smsClient.queryDetail({
    PhoneNumber: '1500000000',
    SendDate: '20170731',
    PageSize: '10',
    CurrentPage: "1"
}).then(function (res) {
    let {Code, SmsSendDetailDTOs}=res
    if (Code === 'OK') {
        //处理发送详情内容
//      console.log(SmsSendDetailDTOs)
    }
}, function (err) {
    //处理错误
//  console.log(err)
})




//随机验证码


var yzm = null;
function sj(){
yzm = Math.floor(Math.random()*10000);
}




//发送短信
function send(phonenum,yzm){
smsClient.sendSMS({
    PhoneNumbers: phonenum,
    SignName: '田建民',
    TemplateCode: 'SMS_139480115',
    TemplateParam: `{"code":${yzm}}`
}).then(function (res) {
    let {Code}=res
    if (Code === 'OK') {
        //处理返回参数
//         console.log(res)
    }
}, function (err) {
//     console.log(err)
})
}




app.post("/regist",(req,res)=>{
res.header('Access-Control-Allow-Origin','*');
// console.log(req.body)
var phonenum = req.body.phonenum;
var id = req.body.id;
if(id==1){
sj();
send(phonenum,id)
console.log(yzm)
}else{
var pass = req.body.password;
var code = req.body.yzm;
if(code==yzm){
mongodb.connect(db_str,(err,database)=>{
database.collection("info",(err,coll)=>{
coll.find({phonenum:phonenum}).toArray((err,data)=>{
if(data.length){
res.send("1");
database.close();
}else{
coll.save({phonenum:phonenum,password:pass});
res.send("0");
database.close();
}

})

})

})
}else{
res.send("请输入正确的验证码")
}

}


})

app.listen(3000);

//希望能够帮助到大家 谢谢



猜你喜欢

转载自blog.csdn.net/xy19950125/article/details/81050686