接入騰訊雲簡訊介面
阿新 • • 發佈:2018-11-28
一、新增應用(應用名字隨便定義,也不能太隨便……)
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