相较于阿里大鱼的知名度,云片相对来说名声小一点,但是使用起来确实非常方便的:下面就i来介绍短信验证的另一种方法云片。

这是官网的地址:

https://www.yunpian.com/?utm_source=bd&utm_campaign=pp&utm_unit=pp&utm_keyword=YP&utm_id=5b580925e121aa3928e730f3

nodejs----短信验证二--------云片

关于如何去官网获取它的apikey ,以及生成短信发送的模板,大家可以更根据官方文档去做,在这里主要来解释它的用法:

下面是云片开发文档的地址:

https://www.yunpian.com/doc/zh_CN/scene/smsverify.html

好了废话不多说了直接开始介绍使用:

我们这里一国内短信单挑验证为例,其余的接口类似,只是请求的条件不同而已:

首先对于云片的开发来说它的http请求头是:

Accept:application/json;charset=utf-8;
Content-Type:application/x-www-form-urlencoded;charset=utf-8;

请求的地址是:URL:https://sms.yunpian.com/v2/sms/single_send.json

在官网当中也指出了它的海外访问地址: us.yunpian.com

访问方式:POST

http支持:支持https 与 http 两种访问,建议使用https

首先来介绍一下它的请求参数:

nodejs----短信验证二--------云片

nodejs----短信验证二--------云片

有三个必须的参数是:apikey,mobile,text,用于发送请求:

下面来看具体发送的代码:

//获取短信验证码
exports.messagecheck = async (phoneNum) => {
    console.log(phoneNum + "fefdfad");

    //产生六位的随机验证码
    var range = function (start, end) {
        var array = [];
        for (var i = start; i < end; ++i) array.push(i);
        return array;
    };
    var randomstr = range(0, 6).map(function (x) {
        return Math.floor(Math.random() * 10);
    }).join('');
    console.log(randomstr);
    //发送请求

    let getAccessUrl = `https://sms.yunpian.com/v2/sms/single_send.json`;
//这里需要注意的是它的请求参数不是以key--value的方式来设置的,而是将各个参数用&符号来连接起来形//成一个字符串,具体生成的验证码,将其拼接在字符串当中即可

//这里我们使用的发送函数是superagent这个函数有两种请求的方式后后面或罗列出来
    let {text} = await superagent.post(getAccessUrl).send(
        `apikey=${这里填入你自己申请的apikey}&mobile=${phoneNum}&text=【二货兔】您的验证码是${randomstr}如非本人操作,请忽略本短信`
    );

  //注意以下操作可加可不加,因为这个返回参数当中是没有验证码的,而我们发送验证码的函数是写
//在sevices当中的,所以在登录的时候是需要验证的,不管你是将信息放在redis缓存当中来共享,还是放
//在session当中去共享(如果是分布式项目建议放在redis当中因为session是只能在单台服务器上去共
//享数据的),是需要这个随机生成的验证码去校验的,所以需要将验证码返回以供操作,

//以下操作时将返回的text对象转换成为普通对象这样我们就可以通过"."的方式来给其添加属性,nodejs的方便之处就是在于,对于自己定义的一个变量,是可以通过"."的方式来为其添加属性的
    var parse = JSON.parse(text);

//之后我们将生成的随机数作为转换后对象的一个属性
    parse.radonmstr = randomstr;

//最后将整个个的参数返回
    console.log("状态码" + parse.code+"======="+parse.msg +"====="+ parse.mobile+"====验证码是"+parse.radonmstr);
    return randomstr;
}

以上就是整个发送请求的代码,在里面我么提到 superagent有两种请求的方式时post于get,

superagent会解析一些常用的格式给请求者,当前支持application/x-www-form-urlencoded,application/json,multipart/form-data.

res.body是解析后的内容对象,比如一个请求响应'{"user":{"name":"tobi"}}'字符串,res.body.user.name将会返回tobi,同样的,x-www-form-urlencoded格式的user[name]=tobi解析完的值,也是一样的.

nodejs客户端通过Formidable模块来支持multipart/form-data类型,当解析一个multipart响应时,res.files属性就可以用.

下面时一些常用的响应状态值:

res.accepted = 202 == status;
 res.noContent = 204 == status || 1223 == status;
 res.badRequest = 400 == status;
 res.unauthorized = 401 == status;
 res.notAcceptable = 406 == status;
 res.notFound = 404 == status;
 res.forbidden = 403 == status;

 

下面我们分别说一下两种请求方式的使用:

get请求:

//得到你要请求的url地址
let get_url = "https://api.weixin.qq.com/cgi-bin/user/get";

//使用get方式去发送请求,这里用的时query来街上后面的参数,使用的组合时get--query
    let { text } = await superagent.get(get_url).query({
        access_token: access_token,
        next_openid: next_openid,
    });
    let res = JSON.parse(text);

 post请求:

//同样先将需要请求的地址封装成一个变量 
let api_url = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=" + access_token;

//利用post方式定义后面的参数,使用的组合时 post---send
    let { text } = await superagent.post(api_url).send({
        user_list: user_batch,
    });
    let res = JSON.parse(text);

具体是什么样的请求地址以及参数根据你所请求的接口文档而定;

好了上面就是云片的短信请求方式,大家可以对比大鱼的方式去学习,当然我这里也只是简单的使用,复杂的使用可以参口官方开发api;

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_42112846 

 

 

 

相关文章:

  • 2021-07-11
  • 2022-12-23
  • 2021-11-27
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2021-12-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-18
  • 2021-05-06
  • 2021-12-25
  • 2022-12-23
  • 2021-05-07
相关资源
相似解决方案