云片NodeJs短信验证(国内、国际)

云片官网
云片短信API文档

注册云片

填写邀请码:ouxitj (非必填)
如果注册时填写邀请码会送100积分 积分可兑换云片短信和手机流量等
注册成功后系统会送5毛钱的余额,支持国内短信10条,国际短信根据实际情况定

国内短信验证

注册成功后找到账户设置、选择开发者信息认证,选择个人或企业认证,个人认证需提供身份证,企业认证需提供营业执照和授权书
认证信息填写过后会提示信息正在审核 此时跟着提示去新增模板(经测试,国内短信其实可以不添加模板的,国际短信必须要有模板)

新增签名

签名显示在短信内容的最前面,显示这条短信来自哪家公司/产品/网站。


云片NodeJs短信验证(国内、国际)_第1张图片
新增签名
新增模板
云片NodeJs短信验证(国内、国际)_第2张图片
新增模板

全部添加完成之后等待审核,信息填写正确十几分钟左右会收到审核通过的短信

开发(node)

node部分官方给的有一个示例,包含了指定模板发送、语音验证、普通验证三种官方示例需要的可以去看下,这里测试最常见的短信验证
首先安装node cnpm这些直接略过了
app.js代码

首先引入https和querystring模块
var https = require('https');
var qs = require('querystring');

var apikey = '设置自己的apikey(可在控制台首页个人信息中发送手机验证拿到)';
var mobile = '接收验证信息的手机号';
var text = '需要发送的短信内容';  //注意这里固定格式【此处为后台设置的签名】
//例子:var text = '【天天测试】感谢您的注册,您的验证码是'+verCode;
//verCode测试的时候可以直接写个数字

//这里我们不需要自定义模板和语音验证,国际和国内请求的短信验证是同一个url
//嫌麻烦的话这里可以直接定义为一个url
var sms_host = 'sms.yunpian.com';  //请求地址的url
send_sms_uri = '/v2/sms/single_send.json';  //请求地址的url

//调用发送验证码,参数请求地址、apikey、手机号、自定义模板内容
send_sms(send_sms_uri,apikey,mobile,text);

//send_sms方法
function send_sms(uri,apikey,mobile,text){
    var post_data = {  
    'apikey': apikey,  
    'mobile':mobile,
    'text':text,
    }; 
    var content = qs.stringify(post_data);  
    //把发送的数据解析为字符串发送
    post(uri,content,sms_host);
}

function post(uri,content,host){
    var options = {  
        hostname: host,
        port: 443,  
        path: uri,  
        method: 'POST',  
        headers: {  
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  
        }  
    };
    var req = https.request(options, function (res) {  
        res.setEncoding('utf8');  
        res.on('data', function (chunk) {  
            console.log('BODY: ' + chunk);  
        });  
    }); 
    req.write(content);  

    req.end();   
}

app.js结束,运行node 查看打印结果
我这里给出的结果是国际短信json返回的数据


image.png
code -- 0代表成功,其他代表出错,一般如果出现错误都会在日志中看到对应的错误码和错误信息
msg -- 返回成功或错误信息内容
count -- 发送成功短信的计费条数(计费条数:70个字一条,超出70个字时按每67字一条计费)
fee -- 扣费金额(国内短信0.05元一条,上图给的是国际短信(台湾)加个是0.202元一条)
unit -- 计费单位一般都是人民币rmb
mobile -- 发送的手机号
sid -- 短信id,64位整型

一切正常就会收到一条自己定义的签名模板的短信
如果接收短信是别的手机号,你可以在云片后台看到发送记录


云片NodeJs短信验证(国内、国际)_第3张图片
发送记录
国际短信验证

国际短信验证的时候调用的接口和国内是一样的 不需要更换,但是需要在后台定义一个模板,调用的时候需要匹配模板内容进行调用
还是先申请一个模板等待半小时的审核


未找到模板

(这里我遇到的情况是,申请的国际模板提交后十几分钟收到了云片发来的审核通过信息,于是乎我就向一个台湾手机号发送验证码,那边给的反馈是一直没收到,然后我在日志中查看,原来是模板没有匹配到,登陆后台国际版模板显示还在审核中,最后给云片打了电话他们人工通过了下审核)
通过审核之后修改app.js

//新建一个模板 注意这个模板要和云片后台的模板一样
text2='【千麦国际】感谢您对千麦的支持,验证码是'+vercode

可以提前到云片对模板匹配度进行检查


云片NodeJs短信验证(国内、国际)_第4张图片
匹配模板

最后给两张我在测试环境测试的国内和国际短信的接收情况

国内数据
云片NodeJs短信验证(国内、国际)_第5张图片
国内数据
国际数据

失败的那条是我随便打了手机号,导致的发送失败
还有一点要注意的是,因为是忘台湾发送短信,我问了台湾那边的人,短信是马上就收到了,但是云片后台显示到达率是未知状态,他们给的解释是运营商给的返回有延迟,具体多久延迟不知道,我就出去吃了个饭回来就成功了,其实不影响的。。。


云片NodeJs短信验证(国内、国际)_第6张图片
国际数据

你可能感兴趣的:(云片NodeJs短信验证(国内、国际))