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

深圳湾 2018-05-05

阿里大鱼最新下载地址:阿里大鱼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

相关推荐