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教程之入门
Nov 21 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 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/04/25 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
js获取ip和地区
2017/03/10 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
原生JS实现留言板
2020/03/26 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
用Python编写简单的微博爬虫
2016/03/04 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
基于python 凸包问题的解决
2020/04/16 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
银行实习人员自我鉴定
2013/09/22 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技