阿里大于验证码功用

近来在做一个商城的项目,个中注册、找回暗码、换绑手机等功用都须要用到考证码,考虑到上线的安全问题,我决议用手机考证码来进步安全性。经由各大短信平台举行比较后,挑选了阿里大于,一个阿里巴巴的云通讯平台,下面我将此次开辟履历和碰到的一些问题分享出来。

1.登录平台 阿里大于

2.上岸以后我们能够看到资费,运用场景等,在进入正题之前我们须要一些准备工作,起首我们先相识下短信的要求参数,在这里我们须要注重的是sms_param这个参数,在接下来我们请求短信模板的时刻会用到
《阿里大于验证码功用》

3.响应参数,看待返回值我们记着最基本的true or false 即可
《阿里大于验证码功用》

4.相识完大众参数,接下来我们进入正题,起首我们得设置短信署名设置短信模板短信署名出现在短信开首,注重短信模板,这里将用到上文提醒的sms_param参数
《阿里大于验证码功用》

5.同时,在其网站上下载好SDK,下图展现的是我的寄存位置,运用的是thinkphp框架,其他的开辟环境文件的寄存位置在官网上有细致申明
《阿里大于验证码功用》

6.接下来是项目背景的设置,个中appkey,secret在你完成上述请求以后能够在个人治理中心检察

class DuanXinController extends Controller {
    public function index()
    {
$appkey = "...";//你的App key
$secret = "...";//你的App Secret:
import('Org.taobao.top.TopClient');
import('Org.taobao.top.ResultSet');
import('Org.taobao.top.RequestCheckUtil');
import('Org.taobao.top.TopLogger');
import('Org.taobao.top.request.AlibabaAliqinFcSmsNumSendRequest');
//将须要的类引入,而且将文件名改成原文件名.class.php的情势
$c = new \TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new \AlibabaAliqinFcSmsNumSendRequest;
$req->setExtend("123456");//肯定发给的是哪一个用户,参数为用户id
$req->setSmsType("normal");
session_start();
$verifycode = strval(rand(1000,9999));
$_SESSION['verifycode'] = $verifycode;
$userStatus=0;
/*
进入阿里大鱼的治理中心找到短信署名治理,输入已存在署名的称号,这里是身份考证。
*/
$req->setSmsFreeSignName("山川优品");
$smsParams = [
    'code' => $verifycode,
    'product' => '...'
];
$req->setSmsParam(json_encode($smsParams));
//$req->setSmsParam("{'code':numfour() 'product':'山川优品'}"); 
//这里设定的是发送的短信内容:考证码${code},您正在举行${product}身份考证,打死不要通知他人哦!”
$req->setRecNum(...);//参数为用户的手机号码
$req->setSmsTemplateCode("SMS_16670740");
$resp = $c->execute($req);
//var_dump($resp);这里是用来打印返回效果
if($resp->result->success)
    {
        $userStatus=1;
    }
    else
    {
        $userStatus=0;
    }
    echo $userStatus;
}
// 搜检考证码是不是准确
function checkcode(){
    session_start();
    $verifycode = $_SESSION['verifycode'];
    $inputcode = I('post.code');
    $checkstatus = 0;
    if ($inputcode == $verifycode) {
        $checkstatus = 1;
    }else{
        $checkstatus = 0;
    }
    echo $checkstatus;
}

7.下面的代码是项目前台的Ajax要求部份:

    send.onclick = function() {
                var oldTel = document.getElementById('oldTel').value;
                var that = this;
                var times = 60;
                this.disabled = true;
                timer1 = setInterval(function() {
                    times--;
                    that.value = times + "秒后重试";
                    if (times <= 0) {
                        that.disabled = false;
                        that.value = "发送考证码";
                        clearInterval(timer1);
                        times = 60;
                    }
                }, 1000);
                $.ajax({
                url: "{:U('DuanXin/index')}",
                type: "post",
                data: {
                    'name':oldTel,
                },
                    success: function(responseText, status, xhr) {
                        if (status == 'success') {
                            if (responseText == 1) {
                                return true;
                            } else {
                                return false;
                            }
                        } else {
                            return false;
                        }
    
                    },
    
                    error: function() {
                        return false;
                    },
    
                    timeout: 1000 * 60,
            });
}

这里的按钮加入了一个简朴的倒计时功用,即点击发送后60s内没法点击按钮;

至此第一次运用短信考证API的阅历完毕!
–END–

    原文作者:未来nan朋友
    原文地址: https://segmentfault.com/a/1190000007204160
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞