阿里雲短信驗證碼
今天搞了一個短信的驗證碼,用的是阿里雲的平臺,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;
}