PHP對接阿里大魚實現簡訊的傳送
阿新 • • 發佈:2018-12-09
背景知識:
- 手機驗證碼這個功能幾乎哪裡都可以看到,那麼PHP如何實現手機驗證碼的傳送呢?下面介紹PHP對接阿里大魚實現簡訊驗證碼傳送。
1.首先登陸阿里雲,點選控制檯:
2.選擇簡訊服務:
3.由於阿里雲的簡訊服務,需要簽名和模板,因此需要先申請:
4.申請好了簽名和模板之後,別忘了往賬戶裡充錢哦。
5.下載SDK,SDK下載地址,我這邊選擇PHP的輕量版SDK。下載之後解壓,我們只需要SignatureHelper.php這個檔案,為了下面清晰的演示,我將該檔案單獨拿出來,並新建一個sms目錄。具體如下(注意將SignatureHelper類的名稱空間去掉):
6.新建一個index.php檔案,寫上如下程式碼:
<?php require_once './SignatureHelper.php'; class Phone { public static function sendSms($phone,$code){ $params = array (); //阿里雲的AccessKey $accessKeyId = '你自己的AK'; //阿里雲的Access Key Secret $accessKeySecret = '你自己的AS'; //要傳送的手機號 $params["PhoneNumbers"] = $phone; //簽名,第三步申請得到 $params["SignName"] = '簽名'; //模板code,第三步申請得到 $params["TemplateCode"] = '模板code'; //模板的引數,注意code這個鍵需要和模板的佔位符一致 $params['TemplateParam'] = Array ( "code" => $code ); // *** 需使用者填寫部分結束, 以下程式碼若無必要無需更改 *** if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) { $params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE); } // 初始化SignatureHelper例項用於設定引數,簽名以及傳送請求 $helper = new SignatureHelper(); try{ // 此處可能會丟擲異常,注意catch $content = $helper->request( $accessKeyId, $accessKeySecret, "dysmsapi.aliyuncs.com", array_merge($params, array( "RegionId" => "cn-hangzhou", "Action" => "SendSms", "Version" => "2017-05-25", )) // fixme 選填: 啟用https // ,true ); $res=array('errCode'=>0,'msg'=>'ok'); if($content->Message!='OK'){ $res['errCode']=1; $res['msg']=$content->Message; } echo json_encode($res); }catch(\Exception $e){ echo '簡訊介面請求錯誤';exit; } } } Phone::sendSms('測試手機號','驗證碼');
7.以上我們就完成了基於阿里雲平臺的簡訊傳送。