阿里云短信服务: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\');