tp5.1中使用阿里大于短信
阿里云PHP SDK地址
https://help.aliyun.com/document_detail/112186.html?spm=a2c4g.11174283.6.635.37eb2c42jFVxfS
项目根目录先安装 sdk
命令:composer require alibabacloud/client
安装完成后vendor目录下即会有 alibabacloud文件目录
使用OpenAPI Explorer来生成相关API的Demo
OpenAPI Explorer地址:
https://api.aliyun.com/?spm=a2c4g.11186623.2.13.6a294e6afatgeU#/?product=Dysmsapi&lang=PHP
一、config目录下建立api.php文件
返回一个数组如下:
return [
// token失效时间,0代表永不失效
'token_expire'=>0,
// 阿里大于
'aliSMS'=>[
'isopen'=> false,//开启阿里大于
'accessKeyId'=>'<accessKeyId>',
'accessSecret'=>'<accessSecret>',
'regionId'=>'cn-hangzhou',
'product'=>'Dysmsapi',
'version'=>'2017-05-25',
'SignName'=>'<YourSignName>',
'TemplateCode'=>'<YourTemplateCode>',
// 验证码发送时间间隔(60秒)
'expire'=>60
]
];
二、新建一个类
<?php
namespace '';//命名空间
// 引入阿里sdk
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
// 引入异常类
use app\lib\exception\BaseException;
class AlismsController
{
static public function SendSMS($phone,$code){
AlibabaCloud::accessKeyClient(config('api.aliSMS.accessKeyId'),config('api.aliSMS.accessSecret'))->regionId(config('api.aliSMS.regionId'))->asGlobalClient();
try {
$option=[
'query' => [
'RegionId' => config('api.aliSMS.regionId'),
'PhoneNumbers' => $phone,
'SignName' =>config('api.aliSMS.SignName'),
'TemplateCode' =>config('api.aliSMS.TemplateCode'),
'TemplateParam' =>'{"code":"'.$code.'"}',
],
];
$result = AlibabaCloud::rpcRequest()
->product(config('api.aliSMS.product'))
// ->scheme('https') // https | http
->version(config('api.aliSMS.version'))
->action('SendSms')
->method('GET')
->options($option)->request();
return $result->toArray();
} catch (ClientException $e) {
// 逻辑处理
} catch (ServerException $e) {
// 逻辑处理
}
}
}
三、使用该方法
use app\common\controller\AliSMSController;
...
// 获取用户提交手机号码
// 生成验证码
$code = random_int(1000,9999);
// 发送短信
AliSMSController::SendSMS($phone,$code);
【推荐】国内首个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 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类