Tihinkphp3.2整合最新版阿里大鱼进行短信验证码发送

时间:2023-03-09 17:33:46
Tihinkphp3.2整合最新版阿里大鱼进行短信验证码发送

阿里大鱼最新下载地址:阿里大鱼SDK下载 或者从官网进行下载:阿里大鱼SDK官网下载

下载完成后,将压缩包内的api_sdk文件夹放到ThinkPHP\Library\Vendor目录下,修改文件名为Aliyun,若修改为其他名称,请修改命名空间!

阿里大鱼申请步骤就不说了!开始接入吧~

设置阿里大鱼配置信息:

在配置文件中配置:

     'ALI_SMS' => [
'PRODUCT' => 'Dysmsapi',
'DOMAIN' => 'dysmsapi.aliyuncs.com',
'REGION' => 'cn-hangzhou',
'END_POINT_NAME' => 'cn-hangzhou',
'KEY_ID' => '你的 Access Key ID',
'KEY_SECRET' => '你的 Access Key Secret',
'SIGN_NAME' => '签名名称',
'TEMPLATE_CODE' =>'模板code',
],

设置完成以后,在function.php文件中新建发送短信函数,这里命名为sendCode:

<?php
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest; /**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/5/2 0002
* Time: 10:20
*/ function sendCode($num,$code){
require_once '/ThinkPHP/Library/Vendor/Aliyun/vendor/autoload.php';
//加载区域结点配置
Config::load();
// 初始化用户Profile实例
$profile = DefaultProfile::getProfile(C('ALI_SMS.REGION'), C('ALI_SMS.KEY_ID'), C('ALI_SMS.KEY_SECRET'));
// 增加服务结点
DefaultProfile::addEndpoint(C('ALI_SMS.END_POINT_NAME'), C('ALI_SMS.REGION'), C('ALI_SMS.PRODUCT'), C('ALI_SMS.DOMAIN'));
// 初始化AcsClient用于发起请求
$acsClient= new DefaultAcsClient($profile);
// 初始化SendSmsRequest实例用于设置发送短信的参数
$request = new SendSmsRequest();
// 必填,设置雉短信接收号码
$request->setPhoneNumbers($num);
// 必填,设置签名名称
$request->setSignName(C('ALI_SMS.SIGN_NAME'));
// 必填,设置模板CODE
$request->setTemplateCode(C('ALI_SMS.TEMPLATE_CODE'));
// 可选,设置模板参数
$request->setTemplateParam(json_encode(array( // 短信模板中字段的值
"code"=>$code,
"product"=>"dsd"
), JSON_UNESCAPED_UNICODE));
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
//返回请求结果
$result = json_decode(json_encode($acsResponse),true);
return $result; }

使用,只在=在控制器中调用sendCode函数即可:

public function sendmsg(){
$phone = input('post.phone_num');
$code = rand(100000,999999);
$res = sendCode($phone,$code);
if($code == "OK"){
$data = array('msg'=>'success');
}else{
$data = array('msg'=>'error');
}
return json_encode($data);
}

效果如下所示:

Tihinkphp3.2整合最新版阿里大鱼进行短信验证码发送

原文地址:张先生的博客     http://www.zhangfayuan.cn/archives/201805041200198.html