php怎么發(fā)短信通知
做網(wǎng)站時(shí)發(fā)送短信驗(yàn)證碼的需求很常見(jiàn),比如手機(jī)號(hào)注冊(cè),密碼找回等等。下面一起來(lái)了解下如何實(shí)現(xiàn)吧。
1. 手機(jī)號(hào)注冊(cè)的前后端交互的流程;
(1)用戶操作客戶端點(diǎn)擊發(fā)送驗(yàn)證碼,(然后客戶端ajax發(fā)送請(qǐng)求,并且按鈕處于60s靜默時(shí)間)
(2)后端邏輯層,接受傳遞過(guò)來(lái)的手機(jī)號(hào),驗(yàn)證格式是否合法,進(jìn)入數(shù)據(jù)庫(kù)匹配是否存在
(3)生成驗(yàn)證碼,存在session中,然后curl發(fā)送到第三方的短信接口鏈接中
(4)配置第三方短信平臺(tái),向指定手機(jī)號(hào)用戶發(fā)送驗(yàn)證碼信息
2. 今天我們主要闡述第三方平臺(tái)的配置,以及后臺(tái)處理的邏輯;
3. 選擇的第三方平臺(tái)為: (您也可以選擇其他平臺(tái),其原理都差不多類似)
(1) 賽迪·云通信 ( https://www.mysubmail.com )
(2) 注冊(cè),實(shí)名認(rèn)證,進(jìn)入產(chǎn)品與服務(wù),新建模板,其模板語(yǔ)法可以查看其配套文檔
(3) 去到 "創(chuàng)建/管理 AppIdD" 欄目,創(chuàng)建并且啟用項(xiàng)目,然后生成默認(rèn)的 "APPID" 及 "APPKEY"
(4)去到首頁(yè),點(diǎn)開 "查看API開發(fā)文檔" 鏈接,獲取POST請(qǐng)求的鏈接:
https://api.mysubmail.com/message/xsend
4. 后臺(tái)邏輯開發(fā):
核心:創(chuàng)建驗(yàn)證碼 -> 封裝POST請(qǐng)求函數(shù) -> 發(fā)送驗(yàn)證碼到第三方平臺(tái) -> 再由第三方轉(zhuǎn)發(fā)至用戶的手機(jī)
(1)發(fā)送驗(yàn)證碼到第三方平臺(tái):
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)請(qǐng)求鏈接發(fā)送驗(yàn)證碼數(shù)據(jù)到第三方平臺(tái)
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)); //打印請(qǐng)求錯(cuò)誤 curl_close($curl); return $res; }
5. 最終效果
更多PHP相關(guān)知識(shí),請(qǐng)?jiān)L問(wèn)PHP中文網(wǎng)!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com