荣联 云通讯 发送短信通知 node

嗯,明明有阿里短信,非要搞这个。

官网提供参考demo,只有java、php、net、 Python、C#、 没有node,

api能有node demo 比较少,很想回归java,

接口使用的参数:
1.主账号的id:account sid
2.主账号的秘钥:auth token
3.应用的id: appid
4.短信模板的id(这个地,新建模板后才能看到。测试使用:1)
5 .就是参数的组合加密 md5(大写)、 base64(小写)
6. 需要注意的是:消息头的设置,有个 Authorization,
7. ##  第一次使用,需要联系客服进行初审,官方备案

形式为:【云通讯】您使用的是云通讯短信模板,您的验证码是{1},请于{2}分钟内正确输入。
其中{1}和{2}为短信模板的参数。

下面是账号内的部分 参数位置

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
代码

const util = require("../../../utils/MD5.js")
function sendSMS(req, res) {
   var accountSid = "8aaf07086904be0b01********8c1d0b";//主账户 account sid
   var AUTH_TOKEN = "e*****33cd404b40a*****808b268946";//主账户秘钥 auth_token
   var sm = new Date()
   var yy = sm.getFullYear();
   var mm = sm.getMonth() + 1;
   var dd = sm.getDate();
   var hh = sm.getHours();
   var ff = sm.getSeconds();
   var ss = sm.getMinutes();
   var timestmp = "" + yy + 
   	(mm < 10 ? "0" + mm : mm) + 
   	(dd < 10 ? "0" + dd : dd) + 
   	(hh < 10 ? "0" + hh : hh) + 
   	(ff < 10 ? "0" + ff : ff) + 
   	(ss < 10 ? "0" + ss : ss);
   var Authorization = util.base64_enc(accountSid + ":" + timestmp);
   util.md5_enc({
   	"Str": accountSid + AUTH_TOKEN + timestmp,
   	"Type": "DX"
   }, function(data) {
   	console.log(timestmp, data,Authorization)
   	var url = "https://app.cloopen.com:8883/2013-12-26/Accounts/" + accountSid + "/SMS/TemplateSMS?sig=" + data;
   	requests({
   		method: "POST",
   		url: url,
   		headers: {
//				"content-Length": "Content-Length",
   			"Accept": "application/json",
   			"Content-Type": "application/json;charset = utf-8",
   			"Authorization": Authorization
   		},
   		body: {
   			to: "15922294369", //	String	必选	短信接收端手机号码集合,用英文逗号分开,数量不得超过200个
   			appId: "8a216da869d**********b39092e14bf", //String:	必选	应用Id
   			templateId: "1", //	String	必选	模板Id
   			datas: ["替换内容", "替换内容"], //	String	可选	内容数据外层节点,模板如果没有变量,此参数可不传
   		},
   		json: true
   	}, function(error, response, body) {
   		if(!error && response.statusCode == 200) {
   			res.send(body)
   		}
   	})
   })
}
module.exports = {
sendSMS:sendSMS
}

md5.js

const express = require('express');
const app = express();
var crypto = require('crypto');

function md5_enc(MD5,callback) {
  var md5 = crypto.createHash("md5");
  md5.update(MD5.Str);
  var str = md5.digest('hex');
  var back = "";
  if(MD5.Type == "DX") {
  	back = str.toUpperCase(); //32位大写
  }
  if(MD5.Type == "XX") {
  	back = str
  }
  return callback(back)
}
function base64_enc(str) {
  return new Buffer(str).toString('base64');
}
module.exports = {
  md5_enc: md5_enc,
  base64_enc: base64_enc,
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值