阿里云短信验证码
今天搞了一个短信的验证码,用的是阿里云的平台,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.YSe8FKreturn $result;
}
?>
index控制器
public function verification(){$code = rand( 100000, 999999 );$phone = '150*****';//正确手机号$result = send_sms( $phone, $code );dump($result);exit;
}