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
copycomposer require alibabacloud/sdk
3、使用
3.1、新建配置文件
单独配置文件保存信息
TemplateCode:模板代码而非名称
3.2、创建短信工具类
copy<?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、调用
在控制器或其它地方中调用
copyAliSmsUtil::sendSmsCode('13*******17','FwP5');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构