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的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
nodejs npm package.json中文文档
Sep 04 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
配置nodejs环境的方法
May 13 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
4.与数据库的连接
2006/10/09 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
公司企业表扬信
2014/01/11 职场文书
老师给学生的表扬信
2014/01/17 职场文书
小学中秋节活动方案
2014/02/06 职场文书
喝酒检查书范文
2014/02/23 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
员工离职证明范本
2015/06/12 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
python运算符之与用户交互
2022/04/13 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server