thinkPHP6里引入阿里云短信发送验证码最新版的方式

一、首先进入阿里短信api,访问这个地址

https://help.aliyun.com/document_detail/112186.html?spm=a2c4g.11186623.6.657.3b4550a4tfYUDo

然后使用里面的安装代码:

composer require alibabacloud/client
前提是你得安装有composer.

二、然后进入用命令进入你项目应用目录执行该命令,坐等几分钟,待安装完就ok了

然后在vendor文件下安装好的包为:

三、在应用目录的控制器文件下新建一个类:



<?php
/**
 * Created by PhpStorm.
 * User: 764417604
 * Date: 2020/4/2
 * Time: 14:04
 */

namespace app\api\controller\v1;

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use think\facade\Config;
//阿里发送验证短信封装类
class Sendcode
{
    protected $phone;
    protected $SendDate;
    protected $Code;
    protected $SignName;
    protected $TemplateCode;
    function __construct($option=[])
    {
        $this->phone=$option['phone'];
        $this->SendDate=date("Ymd");//必须是这种格式:20200402
        $this->Code=$option['code'];
        $this->SignName=isset($option['SignName'])?: Config::get('appkeys.SignName');
        $this->TemplateCode=isset($option['TpCode'])?:Config::get('appkeys.TemplateCode');
    }

    function sendCode()
    {

        AlibabaCloud::accessKeyClient(Config::get('appkeys.accessKeyId'), Config::get('appkeys.accessKeySecret'))
            ->regionId(Config::get('appkeys.regionId'))
            ->asDefaultClient();

        try {
            $result = AlibabaCloud::rpc()
                ->product('Dysmsapi')
                // ->scheme('https') // https | http
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->host('dysmsapi.aliyuncs.com')
                ->options([
                    'query' => [
                        'RegionId' =>Config::get('appkeys.regionId'),
                        'PhoneNumbers' => $this->phone,
                        'SendDate' => $this->SendDate,
                        'SignName' => $this->SignName,
                        'TemplateCode' => $this->TemplateCode,
                        'TemplateParam' => "{'code':$this->Code}",
                    ],
                ])
                ->request();
            return $result->toArray();
        } catch (ClientException $e) {
            return $e->getErrorMessage();
        } catch (ServerException $e) {
            return $e->getErrorMessage();
        }

    }

}


这里面的“version”版本号不能改,必须和里面的api一样,

四、然后在应用目录里的config文件夹新建一个配置文件:appkeys.php,这里就不放出来了,自己去配置吧

五、之后就可以在方法里调用了。

注意:这里有个东西:RegionId,如果不知道的话,自己看服务器在哪,然后查看这篇文档,自己去对应吧,比如“杭州”——“cn-hangzhou”

文档地址:https://help.aliyun.com/document_detail/40654.html?spm=a2c6h.13066369.0.0.54a17471qufi3K

本文由37°5【https://www.alvinxiao.comhttps://blog.alvinxiao.com原创,转载请注明来源。请注意原创和打造和谐的网络环境,谢谢!

分享到: