天天看點

Thinkphp5內建阿裡雲短信

先去阿裡雲申請賬号(背景位址: https://www.aliyun.com/ , 注意不是阿裡大于短信平台,阿裡大于已經停止新使用者注冊),登入控制台,建立得到keyId 和 keysecret.

從阿裡雲短信官網下載下傳SDK(https://help.aliyun.com/document_detail/55359.html?spm=5176.8195934.507901.12.2NiZni)

将SDK放到thinkphp5架構的vendor目錄下, 如下圖:

Thinkphp5內建阿裡雲短信

發送短信代碼如下:

private function sendSmsByAliyun()
    {
        include_once './vendor/aliyun-php-sdk-core/Config.php';
        include_once './vendor/Dysmsapi/Request/V20170525/SendSmsRequest.php';

        $accessKeyId = $this->config['sms_appkey'];//阿裡雲短信keyId
        $accessKeySecret = $this->config['sms_secretKey'];//阿裡雲短信keysecret

        //短信API産品名
        $product = "Dysmsapi";
        //短信API産品域名
        $domain = "dysmsapi.aliyuncs.com";
        //暫時不支援多Region
        $region = "cn-hangzhou";

        //初始化通路的acsCleint
        $profile = \DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
        \DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
        $acsClient= new \DefaultAcsClient($profile);

        $request = new \Dysmsapi\Request\V20170525\SendSmsRequest;

        $request->setPhoneNumbers("138xxx");//必填-短信接收号碼

        $request->setSignName("xxxx");//必填-短信簽名: 如何添加簽名可以參考阿裡雲短信或TPshop官方文檔
        //必填-短信模闆Code
        $request->setTemplateCode("修改手機号碼");//必填-短信簽名: 如何添加簽名可以參考阿裡雲短信或TPshop官方文檔
        //選填-假如模闆中存在變量需要替換則為必填(JSON格式)
        $request->setTemplateParam("{\"code\":\"4894\"}");//短信簽名内容:
        //選填-發送短信流水号
        //$request->setOutId("1234");

        //發起通路請求
        $resp = $acsClient->getAcsResponse($request);

        //短信發送成功傳回True,失敗傳回false
        if ($resp && $resp->Code == 'OK') {
            return array('status' => , 'msg' => $resp->Code);
        } else {
            return array('status' => -, 'msg' => $resp->Message . ' subcode:' . $resp->Code);
        }
    }
           

注意, 引用阿裡雲短信的SDK檔案前要加”./”, 否則可能找不到php檔案.

內建後, 測試效果如下

Thinkphp5內建阿裡雲短信
Thinkphp5內建阿裡雲短信

擷取完整的demo下載下傳位址請前往tpshop官網下載下傳開源版

繼續閱讀