阿里云短信整合(新版)
最近再调整项目过程中,客户突然说要将短信平台更换为阿里云短信。
本来也没什么,毕竟客户大大是爸爸。
阿里云短信这个最近又重新整理封装了一下,整合成类库了
有需要的大大可直接传送过去诶 阿里云短信整合封装类库 : https://www.cnblogs.com/YFYQ/p/13631238.html
但是在看阿里云短信文档的时候发现有了新的变化。
(太长时间没有看文档了)多出了一个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日