最近再調整項目過程中,客戶突然說要將短信平台更換為阿里雲短信。
本來也沒什么,畢竟客戶大大是爸爸。
但是在看阿里雲短信文檔的時候發現有了新的變化。
(太長時間沒有看文檔了)多出了一個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日