阿里雲短信服務(新版)開發——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. 短信簽名和模板的配置
該短信接口無法非常自由的定義短信內容,簽名和模板都需要平臺審覈。
進入阿里雲短信服務控制檯,左側菜單欄中找到國內消息,就可以看到‘簽名管理’和‘模板管理’了。