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代码
示例:
<?phpuse AlibabaCloud\Client\AlibabaCloud;use AlibabaCloud\Client\Exception\ClientException;use AlibabaCloud\Client\Exception\ServerException;// Download:https://github.com/aliyun/openapi-sdk-php// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.mdAlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')->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自动加载工具
<?phprequire __DIR__ . '/vendor/autoload.php';
也可以使用:
include_once("../vendor/autoload.php");
5.完整代码介绍:
<?phpini_set("error_reporting","E_ALL & ~E_NOTICE");header("Content-Type: text/html;charset=utf-8");include_once("../vendor/autoload.php");use AlibabaCloud\Client\AlibabaCloud;use AlibabaCloud\Client\Exception\ClientException;use AlibabaCloud\Client\Exception\ServerException;//开启sessionsession_start();//创建session$_SESSION['code']=$verificationCode; //传到js文件用于ajax实时的正确性判断$verificationCode = rand(100000, 1000000); // 随机生成6位验证码$tel = $_GET['yzmtel']; //接收验证码的手机号AlibabaCloud::accessKeyClient('LTAIipvxpPXHLlvd', 'ufHdjm7HnOS0t5gTK4E0USf5v75Z7a')->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;}