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异步编程
Dec 04 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
轻松创建nodejs服务器(9):实现非阻塞操作
Dec 18 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 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扩展Memcache分布式部署方案
2015/12/06 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
python中的字典详细介绍
2014/09/18 Python
Python实现二叉搜索树
2016/02/03 Python
使用python实现BLAST
2018/02/12 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
应届生求职信范文
2014/06/30 职场文书
个人授权委托书格式
2014/08/30 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
大学生入党自荐书
2015/03/05 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python