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服务器(4):路由
Dec 18 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 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 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
基于jquery & json的省市区联动代码
2012/06/26 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python的Lambda函数用法详解
2019/09/03 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
护理专业学生的求职信范文
2013/12/11 职场文书
30岁生日感言
2014/01/25 职场文书
社区交通安全实施方案
2014/03/22 职场文书
文明之星事迹材料
2014/05/09 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
python字符串常规操作大全
2021/05/02 Python