使用腾讯的短信服务,官网是有Node JS的SDK的,but你要知道小程序和Node的是有差别的,先附上官网的网址。先看官网的文档NodeJS SDK 请先搞懂基本概念!
看我来填坑~~~
- 首先官网的的NodeJs SDK没有错很good!但是如果你以为小程序的短信发送可以直接Copy你就so easy l啦!**可以试一试下哦,会提示缺少“crypto"这加密模块~~
- 不让费大家的时间,直接上代码解决方案:下载个cryptojs,然后自己按照API进行封装~~~就直接上代码了。
- 先引用下模块cryptojs.js
import CryptoJS from "../../util/cryptojs.js"
代码来来~~~
sendMessage: function() {
var sdkappid = 14000000 //短信APPID
var appkey = "9287f8efe4444444445f89#####be" //短信APPkey
var random = Math.round(Math.random() * 99999); //不要调皮,不能改哦!
var times = Math.floor(Date.now() / 1000) //不要调皮,不能改哦!
var mobile = '151111111'
var params = ["99998"] //验证码内容
//签名加密
var sig = CryptoJS.SHA256("appkey=" + appkey + "&random=" + random + "&time=" + times +
"&mobile=" + mobile).toString(CryptoJS.enc.Hex)
wx.request({
url: "https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=" + sdkappid + "&random=" + random,
header: {
"content-type": 'application/json'
},
method: "POST",
data: {
"tel": { "nationcode": '86', "mobile": mobile }, //业务不广就86够了!!
"sign": '',
"tpl_id": 276802, //短信模板ID
"params": params,
"sig": sig,
"time": times,
"extend": '',
"ext": ''
},
complete: function(res) {
console.log(res)
},
})
},
3.吐槽腾讯的地方
1. 官网的文档 https://cloud.tencent.com/document/product/382/5976
string strRand = "7226249334"; //url 中的 random 字段的值
string strTime = "1457336869"; //UNIX 时间戳
这文档真的无力吐槽啊!可以这么说一般程序员第一下意识肯定是这样的
string strRand = Math.floor(Math.random() * 10000);
string strTime = new Date().getTime()
你吖文档就不能写明白啊 !结果只有翻开qcloudsms_js的SDK的util.js里找到了!有种想哭的feel~~~
/**
* Get a random number
*
* @return {number}
* @public
*/
function getRandom() {
return Math.round(Math.random() * 99999);
}
/**
* Get current time
*
* @return {number}
* @public
*/
function getCurrentTime() {
return Math.floor(Date.now() / 1000);
}
网友评论