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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs之koa2请求示例(GET,POST)
Aug 07 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 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 生成文字png图片的代码
2011/04/17 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
jquery按回车提交数据的代码示例
2013/11/05 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
Python中的True,False条件判断实例分析
2015/01/12 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python join方法使用详解
2019/07/30 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
python中os.remove()用法及注意事项
2021/01/31 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
文职个人求职信范文
2013/09/23 职场文书
个人职业生涯规划书1500字
2013/12/31 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
致青春观后感
2015/06/09 职场文书
环保证明
2015/06/23 职场文书
暑假打工感想
2015/08/07 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
JavaScript流程控制(循环)
2021/12/06 Javascript
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技