1.效果图
2.前期准备:
① 大家可以先看一看阿里云官方的入门教程 传送门:
https://help.aliyun.com/document_detail/55288.html?spm=a2c4g.11186623.6.557.568a66faTr3BOC
②这里就假装大家已经完成了:
a.开通短信服务
b.创建AccessKey
c.申请短信签名(审核30分钟以内通过)
d.申请短信模板(审核30分钟以内通过)
3.生成专属Demo:
进入OpenAPI Explorer
按要求输入手机号,短信签名,短信模板ID等,生成对应SDK的Demo代码
示例:
', '')
->regionId('cn-hangzhou')
->asDefaultClient();
try {
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => [
'RegionId' => "cn-hangzhou",
'PhoneNumbers' => "*******",
'SignName' => "*****",
'TemplateCode' => "*****",
],
])
->request();
print_r($result->toArray());
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
如果出现错误,请查看SendSms API错误码列表
4.环境搭建
①下载并安装Composer。
Linux:
curl -sS https://getcomposer.org/installer | php
Windows:
官网下载并安装Composer
②进入项目文件夹
如果已在系统上全局安装 Composer,请直接在项目目录中运行以下内容来安装 Alibaba Cloud SDK for PHP 作为依赖项并生成类映射:
composer require alibabacloud/sdk --optimize-autoloader
③类映射生成
必须开启类映射生成功能才能使用 Alibaba Cloud SDK for PHP
有3种方法:
在 composer.json 文件中 config 部分增加 "optimize-autoloader": true ,可一劳永逸。
执行 composer install 或 composer update 时增加 -o 或 --optimize-autoloader 选项。
执行 composer dump-autoload 时增加 -o 或 --optimize 选项。
④执行Composer命令安装Alibaba Cloud SDK for PHP的最新版本
php -d memory_limit=-1 composer.phar require alibabacloud/sdk
在项目的文件夹下出现此文件:
⑤在代码中引入Composer自动加载工具
也可以使用:
include_once("../vendor/autoload.php");
5.完整代码介绍:
regionId('cn-hangzhou')
->asDefaultClient();
try{
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => [
'RegionId' => "cn-hangzhou",
'PhoneNumbers' => $tel
//你模板中的参数手机号,
'SignName' => "***",
//你的签名名称
'TemplateCode' => "SMS_**",
//你的模板CODE
'TemplateParam'=>'{"code":"'.$verificationCode.'"}',
//模板参数验证码
],
])
->request();
echo "true";
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}