Nodejs实现短信验证码功能


Posted in NodeJs onFebruary 09, 2017

使用Nodejs的开发者愈来越多,基于Nodejs的后台开发也多了起来,像短信验证码、短信群发、国际短信这些需求,完全可以采用第三方接口来实现,云片就提供了这样的接口。

Nodejs

// 修改为您的apikey.可在官网(https://www.yunpian.com)登录后获取
var https = require('https');
var qs = require('querystring');
var apikey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// 修改为您要发送的手机号码,多个号码用逗号隔开
var mobile = 'xxxxxxxxxxx';
// 修改为您要发送的短信内容
var text = '【云片网】您的验证码是1234';
// 指定发送的模板编号
var tpl_id = 1;
// 指定发送模板的内容
var tpl_value = {'#code#':'1234','#company#':'yunpian'};
// 语音短信的内容
var code = '1234';
// 查询账户信息https地址
var get_user_info_uri = '/v2/user/get.json';
// 智能匹配模板发送https地址
var sms_host = 'sms.yunpian.com';
var voice_host = 'voice.yunpian.com';
send_sms_uri = '/v2/sms/single_send.json';
// 指定模板发送接口https地址
send_tpl_sms_uri = '/v2/sms/tpl_single_send.json';
// 发送语音验证码接口https地址
send_voice_uri = '/v2/voice/send.json';
query_user_info(get_user_info_uri,apikey);
send_sms(send_sms_uri,apikey,mobile,text);
send_tpl_sms(send_tpl_sms_uri,apikey,mobile,tpl_id,tpl_value);
send_voice_sms(send_voice_uri,apikey,mobile,code);
function query_user_info(uri,apikey){
 var post_data = { 
 'apikey': apikey, 
 };//这是需要提交的数据
 var content = qs.stringify(post_data); 
 post(uri,content,sms_host);
}
function send_sms(uri,apikey,mobile,text){
 var post_data = { 
 'apikey': apikey, 
 'mobile':mobile,
 'text':text,
 };//这是需要提交的数据 
 var content = qs.stringify(post_data); 
 post(uri,content,sms_host);
}
function send_tpl_sms(uri,apikey,mobile,tpl_id,tpl_value){
 var post_data = { 
 'apikey': apikey,
 'mobile':mobile,
 'tpl_id':tpl_id,
 'tpl_value':qs.stringify(tpl_value), 
 };//这是需要提交的数据 
 var content = qs.stringify(post_data); 
 post(uri,content,sms_host); 
}
function send_voice_sms(uri,apikey,mobile,code){
 var post_data = { 
 'apikey': apikey,
 'mobile':mobile,
 'code':code,
 };//这是需要提交的数据 
 var content = qs.stringify(post_data); 
 console.log(content);
 post(uri,content,voice_host); 
}
function post(uri,content,host){
 var options = { 
  hostname: host,
  port: 443, 
  path: uri, 
  method: 'POST', 
  headers: { 
   'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
  } 
 };
 var req = https.request(options, function (res) { 
  // console.log('STATUS: ' + res.statusCode); 
  // console.log('HEADERS: ' + JSON.stringify(res.headers)); 
  res.setEncoding('utf8'); 
  res.on('data', function (chunk) { 
   console.log('BODY: ' + chunk); 
  }); 
 }); 
 //console.log(content);
 req.write(content); 
 req.end(); 
}

上面就是云片的全部接口,在实际使用的过程中,可以根据自己的需求,选择对应的接口使用,具体的可以看这篇文章如何使用云片API发送短信验证码,里面讲了如何使用单发短信API、群发短信API、不同短信内容批量发送API,很实用。

另外最重要的是,云片的服务还不错,短信的到达率比较高,出了问题也有人及时回复,这点在国内所有SaaS厂家中,算是做得很好的一家。

NodeJs 相关文章推荐
NodeJS url验证(url-valid)的使用方法
Nov 18 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 #NodeJs
使用nodejs下载风景壁纸
Feb 05 #NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 #NodeJs
nodejs基础应用
Feb 03 #NodeJs
nodejs基础知识
Feb 03 #NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 #NodeJs
图片上传之FileAPI与NodeJs
Jan 24 #NodeJs
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
python 带时区的日期格式化操作
2020/10/23 Python
廉政教育心得体会
2014/01/01 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
如何Tomcat中使用ipv6地址
2022/05/06 Servers
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android