php怎么發短信通知
做網站時發送短信驗證碼的需求很常見,比如手機號注冊,密碼找回等等。下面一起來了解下如何實現吧。
1. 手機號注冊的前后端交互的流程;
(1)用戶操作客戶端點擊發送驗證碼,(然后客戶端ajax發送請求,并且按鈕處于60s靜默時間)
(2)后端邏輯層,接受傳遞過來的手機號,驗證格式是否合法,進入數據庫匹配是否存在
(3)生成驗證碼,存在session中,然后curl發送到第三方的短信接口鏈接中
(4)配置第三方短信平臺,向指定手機號用戶發送驗證碼信息
2. 今天我們主要闡述第三方平臺的配置,以及后臺處理的邏輯;
3. 選擇的第三方平臺為: (您也可以選擇其他平臺,其原理都差不多類似)
(1) 賽迪·云通信 ( https://www.mysubmail.com )
(2) 注冊,實名認證,進入產品與服務,新建模板,其模板語法可以查看其配套文檔
(3) 去到 "創建/管理 AppIdD" 欄目,創建并且啟用項目,然后生成默認的 "APPID" 及 "APPKEY"
(4)去到首頁,點開 "查看API開發文檔" 鏈接,獲取POST請求的鏈接:
https://api.mysubmail.com/message/xsend
4. 后臺邏輯開發:
核心:創建驗證碼 -> 封裝POST請求函數 -> 發送驗證碼到第三方平臺 -> 再由第三方轉發至用戶的手機
(1)發送驗證碼到第三方平臺:
private function sendMessage() { $appId = "xxxxx"; $appKey = "36426a9xxxxxxxxxxxx7bed8583a3c"; $code = $this->makeCode(6); $data = [ "appid" => $appId, "to" => $this->phone, "project" => "FoJ494", "vars" => '{"code":' . $code . ',"time":"60"}', "signature" => $appKey, ]; $res = $this->httpRequest($data); var_dump($res); }
(2)請求鏈接發送驗證碼數據到第三方平臺
private function httpRequest($data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $this->RequestUrl); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if (isset($data)) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } $res = curl_exec($curl); var_dump(curl_error($curl)); //打印請求錯誤 curl_close($curl); return $res; }
5. 最終效果
更多PHP相關知識,請訪問PHP中文網!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com