容联云通讯php短信接口,开发中使用 【容联 云通信】获取短信验证码的 Javascript 接口...

开发中使用 【容联 云通信】获取短信验证码的 Javascript 接口

在平台应用列表添加应用。

在测试号码中绑定测试手机号码,只有这个号码能接收验证短信。

在项目中绑定配置:将控制台首页的开发者主账号信息粘贴复制进下列接口代码的相应位置。

一个前后台分离的应用,在后台项目目录下建立 util文件夹,建立util/sms_util.js文件,文件内写使用 【容联 云通信】平台获取短信验证码的 Javascript 接口代码:

// 容联云通信 短信验证码接口

var md5 = require('blueimp-md5')

var moment = require('moment')

var Base64 = require('js-base64').Base64;

var request = require('request');

/*

生成指定长度的随机数

*/

function randomCode(length) {

var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

var result = ""; //统一改名: alt + shift + R

for (var i = 0; i < length; i++) {

var index = Math.ceil(Math.random() * 9);

result += chars[index];

}

return result;

}

// console.log(randomCode(6));

exports.randomCode = randomCode;

/*

向指定号码发送指定验证码

*/

// 将控制台首页的开发者主账号信息粘贴复制进下列接口代码的相应位置

function sendCode(phone, code, callback) {

var ACCOUNT_SID = '';

var AUTH_TOKEN = '';

var Rest_URL = '';

var AppID = '';

//1. 准备请求url

/*

1.使用MD5加密(账户Id + 账户授权令牌 + 时间戳)。其中账户Id和账户授权令牌根据url的验证级别对应主账户。

时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:20140416142030

2.SigParameter参数需要大写,如不能写成sig=abcdefg而应该写成sig=ABCDEFG

*/

var sigParameter = '';

var time = moment().format('YYYYMMDDHHmmss');

sigParameter = md5(ACCOUNT_SID + AUTH_TOKEN + time);

var url = Rest_URL + '/2019-6-16/Accounts/' + ACCOUNT_SID + '/SMS/TemplateSMS?sig=' + sigParameter;

//2. 准备请求体

var body = {

to: phone,

appId: AppID,

templateId: '1',

"datas": [code, "1"]

}

//body = JSON.stringify(body);

//3. 准备请求头

/*

1.使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户

2.冒号为英文冒号

3.时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与SigParameter中时间戳相同。

*/

var authorization = ACCOUNT_SID + ':' + time;

authorization = Base64.encode(authorization);

var headers = {

'Accept': 'application/json',

'Content-Type': 'application/json;charset=utf-8',

'Content-Length': JSON.stringify(body).length + '',

'Authorization': authorization

}

//4. 发送请求, 并得到返回的结果, 调用callback

// callback(true);

request({

method: 'POST',

url: url,

headers: headers,

body: body,

json: true

}, function (error, response, body) {

console.log(error, response, body);

callback(body.statusCode === '000000');

// callback(true);

});

}

exports.sendCode = sendCode;

/*

sendCode('13716962779', randomCode(6), function (success) {

console.log(success);

})*/

5.在后台路由文件/routes/index.js中引入,使用:

const sms_util = require('../util/sms_util')

/*

发送验证码短信

*/

router.get('/sendcode', function (req, res, next) {

//1. 获取请求参数数据

var phone = req.query.phone;

//2. 处理数据

//生成验证码(6位随机数)

var code = sms_util.randomCode(6);

//发送给指定的手机号

console.log(`向${phone}发送验证码短信: ${code}`);

sms_util.sendCode(phone, code, function (success) {//success表示是否成功

if (success) {

users[phone] = code

console.log('保存验证码: ', phone, code)

res.send({"code": 0})

} else {

//3. 返回响应数据

res.send({"code": 1, msg: '短信验证码发送失败'})

}

})

})

6.在前台应用中输入绑定的测试手机号,发送验证码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值