1. 程式人生 > >接入騰訊雲簡訊介面

接入騰訊雲簡訊介面

一、新增應用(應用名字隨便定義,也不能太隨便……)

https://console.cloud.tencent.com/sms/smslist

二、添加簽名

為了簽名能一次性通過,請按照上述要求進行填寫

補充:

什麼是簽名?

紅線標註內就是簡訊簽名。

三、建立模板

什麼是模板?

裡面的內容就是模板。

模板裡的花括號為變數名稱。

四、下載sdk檔案

https://cloud.tencent.com/document/product/382/5804

五、下載好後,下面我使用tp5操作簡訊介面

下載完後有個src資料夾,我更名為Sms,可隨意定義。

複製到tp框架裡面的vendor資料夾裡

開啟SmsSenderUtil.php,將namespace這一行刪除。

在將所有的namespace和use...的這兩行刪除,並加入require_once __DIR__ . "/SmsSenderUtil.php";這行程式碼。

 

控制器裡寫:

public function yanzheng() {
        // 簡訊應用SDK AppID
        $appid =xxxx; // 1400開頭

        // 簡訊應用SDK AppKey
        $appkey = "xxxxx";

        // 需要傳送簡訊的手機號碼
        $phoneNumbers =['xxxxx'];

        // 簡訊模板ID,需要在簡訊應用中申請
        $templateId =xxxx;  // NOTE: 這裡的模板ID`7839`只是一個示例,真實的模板ID需要在簡訊控制檯中申請

        // 簽名
        $smsSign = "xxxx"; // NOTE: 這裡的簽名只是示例,請使用真實的已申請的簽名,簽名引數使用的是`簽名內容`,而不是`簽名ID`

        // 單發簡訊
        Vendor('Sms.SmsSingleSender');
        $ssender = new \SmsSingleSender($appid, $appkey);
        $params = ["125678","1"];//陣列具體的元素個數和模板中變數個數必須一致,例如事例中 templateId:5678對應一個變數,引數陣列中元素個數也必須是一個
        $result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
            $params, $smsSign, "", "");  // 簽名引數未提供或者為空時,會使用預設簽名傳送簡訊
        $rsp = json_decode($result);
        echo $result;
    }

傳參的時候一定要看自己的實際引數,這兒是和教程不一樣的,不要死看教程,自己的程式碼是活的。

我踩過的坑,我在申請模板的時候,有兩個花括號(引數),但我$params只有一個引數,因此就會報錯,要根據自己申請模板的時候那個引數來進行設定傳參,每個人都不一樣。

好了,到這兒基本結束了。

 

參考文件:https://cloud.tencent.com/document/product/382/9557

錯誤碼:https://cloud.tencent.com/document/product/382/3771

阿里雲配置簡訊介面:https://blog.csdn.net/qq_42249896/article/details/84566567