亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php教程 php手冊 短信驗證碼接口(容聯(lián)運通訊)

短信驗證碼接口(容聯(lián)運通訊)

Mar 20, 2017 pm 01:41 PM

步驟:1、登錄榮聯(lián)運通訊注冊獲取ACCOUNT SID、AUTH TOKEN、Rest URL(生產(chǎn))、AppID(默認(rèn));

   2、注冊測試用手機(jī)號碼(先注冊測試號碼方可使用);

  ?? 3、下載demo示例,并將代碼放到項目中(最好單獨建文件夾存儲)。

代碼區(qū):

一、新建test.app.php(測試用控制器)

<?php
/*
 * 短信接口測試
 */
class TestApp extends ShoppingbaseApp{
    public function index(){
        $this->display(&#39;test.html&#39;);
    }
    public function get_info()
    {
        include_once(ROOT_PATH.&#39;/includes/rly_message/rest.app.php&#39;);//引入模板文件
        //主帳號,對應(yīng)開官網(wǎng)發(fā)者主賬號下的 ACCOUNT SID
        $accountSid = &#39;&#39;;
        //主帳號令牌,對應(yīng)官網(wǎng)開發(fā)者主賬號下的 AUTH TOKEN
        $accountToken = &#39;&#39;;
        //應(yīng)用Id,在官網(wǎng)應(yīng)用列表中點擊應(yīng)用,對應(yīng)應(yīng)用詳情中的APP ID
        //在開發(fā)調(diào)試的時候,可以使用官網(wǎng)自動為您分配的測試Demo的APP ID
        $appId =&#39;&#39;;
        //請求地址
        //沙盒環(huán)境(用于應(yīng)用開發(fā)調(diào)試):sandboxapp.cloopen.com
        //生產(chǎn)環(huán)境(用戶應(yīng)用上線使用):app.cloopen.com
        $serverIP =&#39;app.cloopen.com&#39;;
        //請求端口,生產(chǎn)環(huán)境和沙盒環(huán)境一致
        $serverPort =&#39;8883&#39;;
        //REST版本號,在官網(wǎng)文檔REST介紹中獲得。
        $softVersion =&#39;2013-12-26&#39;;
        //global $accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion;
        $phone_mob = isset($_GET[&#39;phone_mob&#39;]) ? $_GET[&#39;phone_mob&#39;] : &#39;&#39;;
        if($phone_mob){
            $this->sendTemplateSMS($phone_mob,array(&#39;3519&#39;,&#39;5&#39;),"1",$accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion);//手機(jī)號碼,替換內(nèi)容數(shù)組,模板ID
        }
    }
    
  /**
  * 發(fā)送模板短信
  * @param to 手機(jī)號碼集合,用英文逗號分開
  * @param datas 內(nèi)容數(shù)據(jù) 格式為數(shù)組 例如:array(&#39;Marry&#39;,&#39;Alon&#39;),如不需替換請?zhí)?null
  * @param $tempId 模板Id,測試應(yīng)用和未上線應(yīng)用使用測試模板請?zhí)顚?,正式應(yīng)用上線后填寫已申請審核通過的模板ID
  */       
    public function sendTemplateSMS($to,$datas,$tempId,$accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion)
    {
        // 初始化REST SDK
        $rest = new RestApp($serverIP,$serverPort,$softVersion);
        $rest->setAccount($accountSid,$accountToken);
        $rest->setAppId($appId);

        // 發(fā)送模板短信
        echo "Sending TemplateSMS to $to <br/>";
        $result = $rest->sendTemplateSMS($to,$datas,$tempId);
        if($result == NULL ) {
            echo "result error!";
            exit();
        }
        if($result->statusCode!=0) {
            echo "error code :" . $result->statusCode . "<br>";
            echo "error msg :" . $result->statusMsg . "<br>";
            //TODO 添加錯誤處理邏輯
        }else{
            echo "Sendind TemplateSMS success!<br/>";
            // 獲取返回信息
            $smsmessage = $result->TemplateSMS;
            echo "dateCreated:".$smsmessage->dateCreated."<br/>";
            echo "smsMessageSid:".$smsmessage->smsMessageSid."<br/>";
            //TODO 添加成功處理邏輯
        }
    }
       
}

二、模板文件(rest.app.php可根據(jù)自己使用的框架重新命名,也可直接使用demo原先的名字)

<?php
class RestApp {
    private $AccountSid ;   
    private $AccountToken ;  
    private $AppId ;         
    private $ServerIP;       // =&#39;app.cloopen.com&#39;
    private $ServerPort ;    //=&#39;8883&#39;
    private $SoftVersion ;   // =&#39;2013-12-26&#39;
    private $Batch;  //時間戳
    private $BodyType = "xml";//包體格式,可填值:json 、xml
    private $enabeLog = true; //日志開關(guān)。可填值:true、
    private $Filename="./log.txt"; //日志文件
    private $Handle; 
    
    function __construct($ServerIP,$ServerPort,$SoftVersion)    
    {
        $this->RestApp($ServerIP,$ServerPort,$SoftVersion);
    }
    
    function RestApp($ServerIP,$ServerPort,$SoftVersion)
    {
        $this->Batch = date("YmdHis");
        $this->ServerIP = $ServerIP;
        $this->ServerPort = $ServerPort;
        $this->SoftVersion = $SoftVersion;
        $this->Handle = fopen($this->Filename, &#39;a&#39;);
    }
    
   /**
    * 設(shè)置主帳號
    * 
    * @param AccountSid 主帳號
    * @param AccountToken 主帳號Token
    */    
    function setAccount($AccountSid,$AccountToken){
        $this->AccountSid = $AccountSid;
        $this->AccountToken = $AccountToken;   
    }
    
   /**
    * 設(shè)置應(yīng)用ID
    * @param AppId 應(yīng)用ID
    */
    function setAppId($AppId){
        $this->AppId = $AppId; 
    }
    
   /**
    * 打印日志
    * 
    * @param log 日志內(nèi)容
    */
    function showlog($log){
        if($this->enabeLog){
            fwrite($this->Handle,$log."\n");  
        }
    }
    
    /**
     * 發(fā)起HTTPS請求
     */
    function curl_post($url,$data,$header,$post=1)
    {
        //初始化curl
        $ch = curl_init();
        //參數(shù)設(shè)置  
        $res= curl_setopt($ch, CURLOPT_URL,$url);  
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POST, $post);
        if($post)
        {
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        $result = curl_exec($ch);
        //連接失敗
        if($result == FALSE){
            if($this->BodyType==&#39;json&#39;){
                $result = "{\"statusCode\":\"172001\",\"statusMsg\":\"網(wǎng)絡(luò)錯誤\"}";
            } else {
                $result = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><statusCode>172001</statusCode><statusMsg>網(wǎng)絡(luò)錯誤</statusMsg></Response>"; 
            }    
        }
        curl_close($ch);
        return $result;
    } 
    
   /**
    * 發(fā)送模板短信
    * @param to 短信接收彿手機(jī)號碼集合,用英文逗號分開
    * @param datas 內(nèi)容數(shù)據(jù)
    * @param $tempId 模板Id
    */       
    function sendTemplateSMS($to,$datas,$tempId)
    {
        //主帳號鑒權(quán)信息驗證,對必選參數(shù)進(jìn)行判空。
        //$auth=$this->accAuth();
//        if($auth!=""){
//            return $auth;
//        }
        // 拼接請求包體
        if($this->BodyType=="json"){
            $data="";
            for($i=0;$i<count($datas);$i++){
                $data = $data. "&#39;".$datas[$i]."&#39;,"; 
            }
            $body= "{&#39;to&#39;:&#39;$to&#39;,&#39;templateId&#39;:&#39;$tempId&#39;,&#39;appId&#39;:&#39;$this->AppId&#39;,&#39;datas&#39;:[".$data."]}";
        }else{
            $data="";
            for($i=0;$i<count($datas);$i++){
                $data = $data. "<data>".$datas[$i]."</data>"; 
            }
            $body="<TemplateSMS>
                <to>$to</to> 
                <appId>$this->AppId</appId>
                <templateId>$tempId</templateId>
                <datas>".$data."</datas>
                </TemplateSMS>";
        }
        $this->showlog("request body = ".$body);
        // 大寫的sig參數(shù) 
        $sig =  strtoupper(md5($this->AccountSid . $this->AccountToken . $this->Batch));
        // 生成請求URL        
        $url="https://$this->ServerIP:$this->ServerPort/$this->SoftVersion/Accounts/$this->AccountSid/SMS/TemplateSMS?sig=$sig";
        $this->showlog("request url = ".$url);
        // 生成授權(quán):主帳戶Id + 英文冒號 + 時間戳。
        $authen = base64_encode($this->AccountSid . ":" . $this->Batch);
        // 生成包頭  
        $header = array("Accept:application/$this->BodyType","Content-Type:application/$this->BodyType;charset=utf-8","Authorization:$authen");
        // 發(fā)送請求
        $result = $this->curl_post($url,$body,$header);
        $this->showlog("response body = ".$result);
        if($this->BodyType=="json"){//JSON格式
            $datas=json_decode($result); 
        }else{ //xml格式
            $datas = simplexml_load_string(trim($result," \t\n\r"));
        }
      //  if($datas == FALSE){
//            $datas = new stdClass();
//            $datas->statusCode = &#39;172003&#39;;
//            $datas->statusMsg = &#39;返回包體錯誤&#39;; 
//        }
        //重新裝填數(shù)據(jù)
        if($datas->statusCode==0){
            if($this->BodyType=="json"){
                $datas->TemplateSMS =$datas->templateSMS;
                unset($datas->templateSMS);   
            }
        }
 
        return $datas; 
    } 
   
  /**
    * 主帳號鑒權(quán)
    */   
   function accAuth()
   {
        if($this->ServerIP==""){
            $data = new stdClass();
            $data->statusCode = &#39;172004&#39;;
            $data->statusMsg = &#39;IP為空&#39;;
          return $data;
        }
        if($this->ServerPort<=0){
            $data = new stdClass();
            $data->statusCode = &#39;172005&#39;;
            $data->statusMsg = &#39;端口錯誤(小于等于0)&#39;;
          return $data;
        }
        if($this->SoftVersion==""){
            $data = new stdClass();
            $data->statusCode = &#39;172013&#39;;
            $data->statusMsg = &#39;版本號為空&#39;;
          return $data;
        } 
        if($this->AccountSid==""){
            $data = new stdClass();
            $data->statusCode = &#39;172006&#39;;
            $data->statusMsg = &#39;主帳號為空&#39;;
          return $data;
        }
        if($this->AccountToken==""){
            $data = new stdClass();
            $data->statusCode = &#39;172007&#39;;
            $data->statusMsg = &#39;主帳號令牌為空&#39;;
          return $data;
        }
        if($this->AppId==""){
            $data = new stdClass();
            $data->statusCode = &#39;172012&#39;;
            $data->statusMsg = &#39;應(yīng)用ID為空&#39;;
          return $data;
        }   
   }
}
?>

三、前臺模板代碼(test.html)

 <p style="height:100px;border:1px solid gray;text-align:center;padding-top:20px;">
       <form action="" method="post">
             請輸入手機(jī)號碼:<input type="text" name="phone_mob" ><input type="button" name="btn" value="點擊獲取驗證碼"><br />
              輸入驗證碼:<input type="text" name="yzm" value=""><br />
              <input type="submit" name="sbt" value="提交">
        </form>
 </p>

四、js代碼

<script type="text/javascript">
        $(function(){
            $(&#39;input[name=btn]&#39;).on(&#39;click&#39;,function(){
                var phone_mob = $(&#39;input[name=phone_mob]&#39;).val();
                $.ajax({
                    type: "GET",
                    url: "index.php?app=test&act=get_info",//請求后臺的URL地址
                    dataType: "json",
                    data:{&#39;phone_mob&#39; : phone_mob},
                    success:function(data){
                        if(data.done && data.retval)
                        {   
                            //console.log(data.retval);
                            alert(&#39;成功!&#39;);
                        }
                    }
                });
            });    
        });
    </script>

相關(guān)文章:

基于PHP實現(xiàn)短信驗證碼接口

PHP集成發(fā)送手機(jī)短信驗證碼、語音驗證碼接口函數(shù)及使用方法

天翼開放平臺免費短信驗證碼接口使用實例

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72