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的url截取模块url-extract的使用实例
Nov 18 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
浅谈Node的内存泄露问题
May 06 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/08/08 PHP
php 高性能书写
2010/12/11 PHP
详解PHP中的Traits
2015/07/29 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
javascript中的location用法简单介绍
2007/03/07 Javascript
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
python编写弹球游戏的实现代码
2018/03/12 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
企业宣传口号
2014/06/12 职场文书
毕业生实习证明
2014/09/19 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书