第一步先要到阿里云平台去申请短信签名和模版 阿里云短信地址
1.首选需要有阿里云账号,进入阿里云【短信服务控制台】,可以在搜索栏搜索短信服务
2.进入短信服务控制台后,点击 国内消息 >> 模版签名 >> 添加签名,按照提示去添加即可,蒹添加后就等待审核通过
3.添加短信模版, 点击 模版管理 >> 添加模版,根据提示添加,这次测试就用系统送的模版。
4.注意:因为后续开发要用到的是数据是【签名名称】【模版CODE】【accessKeyId】【secretAccessKey】,所以要做好准备。 accessKeyId 和 secretAccessKey 在右上角用户头像点击可以看到【AccessKey管理】,点击进去里面可以获取,注意,这id和key比较重要,千万不要暴露出去。
短信模版的信息都准备好了之后,
-------------------------------------------------------------------------------------------------------------------
下面就可以开发程序了
-
首先需要确定是否安装express,如果已安装可以忽略这一步
cnpm install -g express-generator
-
然后用express创建一个项目
express sms_projects
-
进入sms_projects目录
cd sms_projects
-
初始化项目
cnpm install
-
安装阿里云短信服务模块
cnpm i @alicloud/sms-sdk --save
-
在app.js里修改代码,将短信接口模块单独出来
-
在routes文件夹下添加api.js文件
var express = require('express'); var router = express.Router(); //引入阿里云短信服务模块 const SMSClient = require('@alicloud/sms-sdk'); // 产生6位随机数(用来生成短信验证码的) function getCode() { let str = ""; for (let i = 0; i < 6; i++) { str += parseInt(Math.random() * 10) } return str; } / ** *这里写post请求接口,前端调用 http://localhost:3000/api/get_sms *默认端口是3000,也可以在./bin/www里面修改 */ router.post('/get_sms', function(req, res, next) { let phoneNum = req.body.phone; //获取前端参数phone console.log("手机号码", phoneNum); //初始化sms_client let smsClient = new SMSClient({ accessKeyId: 'LTAI4G**************', //accessKeyId 前面提到要准备的 secretAccessKey: 'C2w************' //secretAccessKey 前面提到要准备的 }); 6位随机数 let str = getCode(); // 开始发送短信 smsClient.sendSMS({ PhoneNumbers: phoneNum, SignName: "sign****", //签名名称 前面提到要准备的 TemplateCode: "SMS_**********", //模版CODE 前面提到要准备的 TemplateParam: `{"code":'${str}'}`, // 短信模板变量对应的实际值,JSON格式 }).then(result => { console.log("result", result) let {Code} = result; if (Code == 'OK') { res.json({ code: 0, msg: 'success', sms: str }) console.log(result) } }).catch(err => { console.log(err); res.json({ code: 1, msg: 'fail: ' + err.data.Message }) }) }); module.exports = router;
-
这里写完之后,保存,在终端执行命令
npm start
之后,既可以运行了。这里只是简单实现了接入阿里云短信服务的短信功能,并没有做其他验证。可以把生成的6位随机数也传给注册接口进行验证自由发挥!!!!