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中的非阻塞方法介绍
Jun 05 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 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查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
Python如何快速实现分布式任务
2017/07/06 Python
python实现用户答题功能
2018/01/17 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
社区助残日活动总结
2014/08/29 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
Mysql binlog日志文件过大的解决
2021/10/05 MySQL