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 sublime text 3安装与配置
Jun 19 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
推荐11个实用Python库
2015/01/23 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
深入理解Python异常处理的哲学
2019/02/01 Python
python制作抖音代码舞
2019/04/07 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
先进集体获奖感言
2014/02/13 职场文书
个人承诺书
2014/03/26 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
病假证明模板
2015/06/19 职场文书
运动会5000米加油稿
2015/07/21 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android