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服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
Python爬豆瓣电影实例
2018/02/23 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
几款好用的python工具库(小结)
2020/10/20 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
代理人委托书
2014/09/16 职场文书
小学师德师风整改措施
2014/10/27 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书