Bootstrap

tp短信验证码(配置以及使用)

阿里云短信验证码

今天搞了一个短信的验证码,用的是阿里云的平台,https://cn.aliyun.com/ss/?k=%E7%9F%AD%E4%BF%A1api,免费的验证码测试,不用充钱了。阿里的api有很多也有很多免费测试的接口(其实冲一块钱,就是使用了,他会判断你的阿里云里有钱自动就扣费了,一块钱的够你测试了)

别人的api

 

搜索完毕后点任意一个->买即可:

 

点他:

 

点击控制台:

 

我们所要的短信配置的信息:

 

配置阿里云

 

搜索打开它:

 

也可以点击去看国内消息里面去增加

 

说一下我们这俩有啥用

首先是:签名名称

 

也就是咱们的公司名字,当然代码里面有,先写上,后面你就知道在代码中那个地方了,当然要审核,审核过关了就可以使用了

增加模板去:

 

看一下模板的内容都有啥:

然后申请说明你瞎说一下即可,注意我们的变量名字就用他给的就行,尽量不要改,因为他们的实例上面的变量也是这个。提交审核过关就OK了。

 

自己的api

配置和上面一样

 

自己api配置阿里云

 

搜索打开它:

 

也可以点击去看国内消息里面去增加

 

说一下我们这俩有啥用

首先是:签名名称

 

也就是咱们的公司名字,当然代码里面有,先写上,后面你就知道在代码中那个地方了,当然要审核,审核过关了就可以使用了

增加模板去:

 

看一下模板的内容都有啥:

然后申请说明你瞎说一下即可,注意我们的变量名字就用他给的就行,尽量不要改,因为他们的实例上面的变量也是这个。提交审核过关就OK了。

 

 

我们要生成自己的

$accessKeyId$accessKeySecret

 

信息里面概述:

 

 

点击:

 

 

 

 

点击创建即可:

 

 

你的手机验证码

 

 

 

然后他让你下载一个excel文件,文件里面有

 

先不要管这个,放到一个安全位置,下面要用到

 

 

 

 

例子分析:

例子介绍;首先弄手机号,输入正确才能进行判断,然后我将验证码信息插入到了我们的数据库中去了。

 

在插入的前提是手机号输入正确,并且验证码已经发送到你手机上了。

 

当你的验证码输入正确,然后我就会提示你注册成功,当然是在这个验证码有效期间内。

我设置的是有效期间为五分钟

 

 

配置代码

我用的是我自己的没有用别人的域名:

我们直接在阿里云上面冲一块钱,就可以发短信了

 

 

将下载好的文件放在extend并改名字alisms

 

 

我将文件放在了公共部分,方便我们的调用

 

 

必须传的两个参数

 

公共文件中要更改的内容

 

 

Index控制器中

调用一下即可

 

上面做好的代码分享

做好的代码,有数据库有判断

链接:https://pan.baidu.com/s/1Yg1p7ilfVYZ7IMQcwBnLhg

提取码:vkz6

 

 

如果不想那么给你一个空的demo

链接:https://pan.baidu.com/s/1mW5wQ--GwPkPb0loxSmyHQ 
提取码:qcki

代码分享:

注:我们要吧下载好的内容放在extend文件夹中改名字alisms;

common函数代码

<?php
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
/**
 * 短信发送
 * @param $to    接收人
 * @param $code   短信验证码
 * @return json
 */
function send_sms($to, $code){
    require_once '../extend/alisms/api_sdk/vendor/autoload.php';
    Config::load(); //加载区域结点配置
    $accessKeyId = '******************';//自己的AccessKeyId
    $accessKeySecret = '**************';//自己的AccessKeySecret
    $templateParam = $code;
    //短信API产品名(短信产品名固定,无需修改)
    $product = "Dysmsapi";
    //短信API产品域名(接口地址固定,无需修改)
    $domain = "dysmsapi.aliyuncs.com";
    //暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
    $region = "cn-hangzhou";
    // 初始化用户Profile实例
    $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
    // 增加服务结点
    DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
    // 初始化AcsClient用于发起请求
    $acsClient= new DefaultAcsClient($profile);
    // 初始化SendSmsRequest实例用于设置发送短信的参数
    $request = new SendSmsRequest();
    // 必填,设置雉短信接收号码
    $request->setPhoneNumbers($to);
    // 必填,设置签名名称
    $request->setSignName("********");//要更改
    // 必填,设置模板CODE
    $request->setTemplateCode("*********");//要更改
    // 可选,设置模板参数
    if($templateParam) {
        $request->setTemplateParam(json_encode(['code'=>$templateParam]));//由于我的模板里需要传递我的短信验证码
    }
    //发起访问请求
    $acsResponse = $acsClient->getAcsResponse($request);
    //返回请求结果
    $result = json_decode(json_encode($acsResponse),true);
    // 具体返回值参考文档:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
    return $result;
}
?>

 

index控制器

 public function verification()
 {
        $code = rand( 100000, 999999 );
        $phone = '150*****';//正确手机号
        $result = send_sms( $phone, $code );
        dump($result);exit;
}

 

;