php 阿里云短信验证码
阿里云短信服务: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');