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极简入门教程(二):定时器
Oct 25 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 NodeJs
使用nodejs下载风景壁纸
Feb 05 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 NodeJs
NodeJs内存占用过高的排查实战记录
May 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
php中截取字符串支持utf-8
2007/01/18 PHP
php仿ZOL分页类代码
2008/10/02 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php猜单词游戏
2015/09/29 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现调度算法代码详解
2017/12/01 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
蔻驰法国官网:COACH法国
2018/11/14 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
农村文化建设标语
2014/10/07 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
导游词之西安骊山
2019/12/20 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
MySQL分库分表详情
2021/09/25 MySQL
实现一个简单得数据响应系统
2021/11/11 Javascript