阿里雲短信整合(新版)


最近再調整項目過程中,客戶突然說要將短信平台更換為阿里雲短信。

本來也沒什么,畢竟客戶大大是爸爸。

但是在看阿里雲短信文檔的時候發現有了新的變化。

(太長時間沒有看文檔了)多出了一個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日

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM