最近再调整项目过程中,客户突然说要将短信平台更换为阿里云短信。
本来也没什么,毕竟客户大大是爸爸。
但是在看阿里云短信文档的时候发现有了新的变化。
(太长时间没有看文档了)多出了一个SDK参考(新版)。
在1月22号更新的SDK。现在9月咯,这个时间有点夸张了
于是乎,反正这会没事,一块来 玩玩呗。
观看文档后,发现最新版的sdk 需要composer 下载安装使用。
文档地址:https://help.aliyun.com/document_detail/112186.html?spm=a2c4g.11174283.6.649.40612c42CNvpfY
当然,没有装composer 的也不用担心。阿里云同样准备了.zip的直接下载压缩包,虽然阿里云强烈不推荐这种方法。
地址:https://github.com/aliyun/openapi-sdk-php-client/blob/master/docs/en-US/1-Installation.md
在GIT 最底部哦。
好了,回归正题,
因为原来已经添加过签名和短信模板,这个我就不多说了,直接进入正题
因为项目是TP5。所以,将SDK 放至/extend/下。
因为整合至common 下,所以非常简单的代码如下:
###################################################
# 阿里云短信(新版)
# 先做了一个发送的例子
# 后期在需要的情况下可继续整合
###################################################
require_once dirname(__DIR__) . '/extend/sdk/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
#阿里短信函数,$mobile为手机号码,$code为自定义随机数
function sendMsg($mobile,$code){
$action = 'SendSms';
$data = [
'query' => [
'RegionId' => "cn-hangzhou",
'PhoneNumbers' => $mobile, #发送手机号
'SignName' => "短信签名", #短信签名
'TemplateCode' => "短信模板CODE", #短信模板CODE
'TemplateParam' => "{\"code\":\"".$code."\"}", #自定义随机数
],
];
$result = aliCode($action,$data);
return $result;
}
function aliCode($action,$data)
{
# AccessKey ID 与 Access Key Secret 修改为自己服务器上 的即可
AlibabaCloud::accessKeyClient('AccessKey ID', 'Access Key Secret')
->regionId('cn-hangzhou')
->asDefaultClient();
try {
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action($action)
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options($data)
->request();
return $result->toArray();
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
非常简单,然后使用的话 直接 调用 sendMsg() 方法即可。
整合仓促,实在简陋,希望对各位大大有些许帮助。
九一八,勿忘国耻。
2019年09月18日
原文出处:https://www.cnblogs.com/YFYQ/p/11543969.html
来源:oschina
链接:https://my.oschina.net/u/4391811/blog/3252699