美文网首页微信小程序开发
微信小程序基于腾讯短信发送验证码

微信小程序基于腾讯短信发送验证码

作者: 非著名十九线程序员 | 来源:发表于2019-02-09 22:53 被阅读28次

    使用腾讯的短信服务,官网是有Node JS的SDK的,but你要知道小程序和Node的是有差别的,先附上官网的网址。先看官网的文档NodeJS SDK 请先搞懂基本概念!

    看我来填坑~~~

    1. 首先官网的的NodeJs SDK没有错很good!但是如果你以为小程序的短信发送可以直接Copy你就so easy l啦!**可以试一试下哦,会提示缺少“crypto"这加密模块~~
    2. 不让费大家的时间,直接上代码解决方案:下载个cryptojs,然后自己按照API进行封装~~~就直接上代码了。
    3. 先引用下模块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);
    }
    

    写在最后:这是写在客户端的,请别在实际中使用~!

    你懂的,要写在服务器端~~~~~~

    相关文章

      网友评论

        本文标题:微信小程序基于腾讯短信发送验证码

        本文链接:https://www.haomeiwen.com/subject/dgazsqtx.html