国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

NodeJS實現阿里大魚短信通知發送

2019-11-20 10:47:23
字體:
來源:轉載
供稿:網友

1、說明

阿里大魚提供了驗證碼,短信通知,語音等服務,在使用后感覺挺方便,不愧是阿里旗下的產品。

最近想搞個NodeJS發送短信通知的功能,這里沒有使用 alidayu-node (開始做的時候并不知道有這個。如果使用alidayu-node那就簡單了。),自己整一個簽名sign,實現短信發送。

官方的 文檔 說明了簽名 sign 的生成步驟,不過第三步驟:

3、連接字符串 連接參數名與參數值,并在首尾加上secret

有錯誤( 首尾加上secret 是錯的)

2、代碼實現

生成 sign

  /** * 根據淘寶官網提供的教程 * http://open.taobao.com/doc2/detail.htm?articleId=101617&docType=1&treeId=1 */var md5 = require("blueimp-md5");// 淘寶應用App信息(換成自己的)var config = {  AppKey: '233002**',  AppSecret: '3403636b338e100399**'};exports.config=config;var dySign = function (obj) {  // 生成時間戳  var time = new Date();  var timestamp = time.getFullYear() + "-" +    ("0" + (time.getMonth() + 1)).slice(-2) + "-" +    ("0" + time.getDate()).slice(-2) + ' ' +    ("0" + time.getHours()).slice(-2)  + ":" +    ("0" + time.getMinutes()).slice(-2) + ":" +    ("0" + time.getSeconds()).slice(-2);  obj.timestamp = timestamp;  // 程序key  obj.app_key = config.AppKey;    // 參數數組  var arr = [];  // 循環添加參數項  for(var p in obj){    arr.push(p + obj[p]);  }  // 2、按首字母升序排列  arr.sort();  // 3、連接字符串  var msg = arr.join('');  // console.log(msg);  // 生成簽名 sign hmac  var sign = md5(msg, config.AppSecret);  // 返回  return sign.toUpperCase();}module.exports.dySign = dySign;

拼接字符串并發送請求

  var signGenerate = require('./create_dysign');var http = require('http');var qs = require('querystring');var alidayuUrl = 'http://gw.api.taobao.com/router/rest';// 短信發送的參數對象var obj = {  format: 'json',  method: 'alibaba.aliqin.fc.sms.num.send',  v: '2.0',  timestamp: '2016-1-16 02:33:30',  partner_id: 'top-sdk-nodejs-20160116',  rec_num: '15110****', //手機號多個以逗號間隔  sign_method: 'hmac',  sms_type: 'normal',  sms_param: '{"code":"giscafer","product":"alidayu短信測試"}',  sms_free_sign_name: '身份驗證',  sms_template_code: 'SMS_4725038'}//生成簽名并拼接請求參數鏈接var sign = signGenerate.dySign(obj);console.log('簽名:', sign);obj.sign = sign;obj.app_key = signGenerate.config.AppKey;var arr = [];for (var p in obj) {  arr.push(p + '=' + obj[p]);}var msg = arr.join('&')var sendurl = alidayuUrl + '?' + msg;console.log('完成請求地址:' + sendurl);/** * 短信發送請求測試 */var params = qs.stringify(obj);var options = {  hostname: 'gw.api.taobao.com',  port: 80,  path: '/router/rest?' + params,  method: 'GET'};var req = http.request(options, function (res) {  console.log('STATUS: ' + res.statusCode);  // console.log('HEADERS: ' + JSON.stringify(res.headers));  // console.log(req.path);  res.setEncoding('utf8');  res.on('data', function (chunk) {    console.log('RESULT: ' + chunk);  });});req.on('error', function (e) {  console.log('ERROR: ' + e.message);});// write data to request bodyreq.write("執行完畢!");req.end();

請求結果

復制代碼 代碼如下:
{"alibaba_aliqin_fc_sms_num_send_response":{"result":{"err_code":"0","model":"100545278271^1100912293896","success":true},"request_id":"15q8um2g8w8ef"}}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 皋兰县| 阳山县| 石家庄市| 东海县| 高清| 凤台县| 东港市| 巴彦淖尔市| 神农架林区| 大庆市| 广宁县| 弥勒县| 石泉县| 博湖县| 麻城市| 上栗县| 阳西县| 平果县| 余庆县| 宜川县| 河曲县| 逊克县| 巫溪县| 正镶白旗| 桐城市| 合江县| 伊吾县| 海口市| 延长县| 东辽县| 司法| 阿拉善盟| 宝山区| 卓资县| 松桃| 庆云县| 湖口县| 扬州市| 深泽县| 哈尔滨市| 修文县|