阿里云短信服务(新版)开发——Thinkphp
开发需要用到的几个网址
安装方法: https://github.com/aliyun/openapi-sdk-php-client/blob/master/docs/en-US/1-Installation.md
手册: https://help.aliyun.com/product/44282.html?spm=a2c4g.11186623.6.540.22cb56e0h2lfav
测试地址: https://api.aliyun.com/new?spm=a2c4g.11186623.2.13.535119d9WDNbMg#/?product=Dysmsapi
短信服务控制台: https://dysms.console.aliyun.com/dysms.htm
1. 安装:
我是直接下载的 .zip 文件,也可以直接Composer安装。无论哪种方式,最终会得到如下的文件
把文件重命名为Aliyun放在tp框架vendor中,并且创建一个Aliyun.php,文件结构如下。
2. 封装一个简单的类
Aliyun.php:
<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class Aliyun
{
/**
* 验证accessKeyId,accessSecret
*/
public function __construct()
{
AlibabaCloud::accessKeyClient('你的accessKeyId', '你的accessSecret')
->asDefaultClient();
}
/**
* 短信发送
* @param [number] $PhoneNumbers [手机号]
* @param [string] $SignName [短信签名名称]
* @param [string] $TemplateCode [短信模板ID]
* @param [json] $TemplateParam [模板内容参数] 如{"code":"1111"}
* @return [json] 成功返回 {"Message": "OK","RequestId": "A1FA52EF-10D4-432B-8AF3-C87A1F2F1E11","BizId": "636214959618469190^0","Code": "OK"}
*/
public function send($PhoneNumbers, $SignName, $TemplateCode, $TemplateParam)
{
try {
$result = AlibabaCloud::rpc()
->regionId('cn-beijing')
->product('Dysmsapi')
->version('2017-05-25')
->action('SendSms')
->method('POST')
->options([
'query' => [
'PhoneNumbers' => $PhoneNumbers,
'SignName' => $SignName,
'TemplateCode' => $TemplateCode,
'TemplateParam' => $TemplateParam,
],
])->request();
//成功返回json
return $result;
} catch (ClientException $e) {
return $e->getErrorMessage();
} catch (ServerException $e) {
return $e->getErrorMessage();
}
}
}
Api中链式操作方法的参数可以参考以下网址
https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.2.11.2a273e2cUWTzJB
3. 短信签名和模板的配置
该短信接口无法非常自由的定义短信内容,签名和模板都需要平台审核。
进入阿里云短信服务控制台,左侧菜单栏中找到国内消息,就可以看到‘签名管理’和‘模板管理’了。