mg007

阿里云短信服务:https://dysms.console.aliyun.com

1、准备

1.1、创建签名、模板

1.2、创建、使用阿里云秘钥

地址:https://usercenter.console.aliyun.com

创建AccessKey ID和AccessKey Secret

2、安装

PHP >= 5.5、开启curl扩展

使用composer下载阿里云SDK

composer require alibabacloud/sdk

3、使用

3.1、新建配置文件

单独配置文件保存信息

TemplateCode:模板代码而非名称

3.2、创建短信工具类

<?php
/**
 * 阿里云短信相关
 */

namespace App\Utils;

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

class AliSmsUtil
{
    /**
     * 发送短信验证码
     * @param $phone:手机号码
     * @param $code:验证码
     */
    public static function sendSmsCode($phone, $code)
    {
        $config = config(\'alisms\');
        $templateParam = json_encode([\'code\'=>$code]);

        try {
            AlibabaCloud::accessKeyClient($config[\'AccessKeyId\'], $config[\'AccessKeySecret\'])
                ->regionId($config[\'regionId\']) // replace regionId as you need
                ->asDefaultClient();

            $result = AlibabaCloud::rpc()
                ->product(\'Dysmsapi\')
                // ->scheme(\'https\') // https | http
                ->version(\'2017-05-25\')
                ->action(\'SendSms\')
                ->method(\'POST\')
                ->options([
                    \'query\' => [
                        \'PhoneNumbers\' => $phone,
                        \'SignName\' => $config[\'SignName\'],
                        \'TemplateCode\' => $config[\'TemplateCode\'],
                        \'TemplateParam\' => $templateParam,
                        \'RegionId\' => $config[\'regionId\'],
                    ],
                ])
                ->request();
            print_r($result->toArray());
        } catch (ClientException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        } catch (ServerException $e) {
            echo $e->getErrorMessage() . PHP_EOL;
        }
    }
}

3.3、调用

在控制器或其它地方中调用

AliSmsUtil::sendSmsCode(\'13*******17\',\'FwP5\');

分类:

技术点:

相关文章: