亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于PHP實現(xiàn)短信驗證碼接口(容聯(lián)運通訊)

 更新時間:2016年09月06日 10:33:02   作者:異牟尋的世界  
本文分步驟給大家講解了短信驗證碼接口(容聯(lián)運通訊)實現(xiàn)代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧

自己也是剛剛研究,希望對也在研究的伙伴有幫助。

步驟:

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

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

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

代碼區(qū):

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

<?php
/*
* 短信接口測試
*/
class TestApp extends ShoppingbaseApp{
public function index(){
$this->display('test.html');
}
public function get_info()
{
include_once(ROOT_PATH.'/includes/rly_message/rest.app.php');//引入模板文件
//主帳號,對應(yīng)開官網(wǎng)發(fā)者主賬號下的 ACCOUNT SID
$accountSid = '';
//主帳號令牌,對應(yīng)官網(wǎng)開發(fā)者主賬號下的 AUTH TOKEN
$accountToken = '';
//應(yīng)用Id,在官網(wǎng)應(yīng)用列表中點擊應(yīng)用,對應(yīng)應(yīng)用詳情中的APP ID
//在開發(fā)調(diào)試的時候,可以使用官網(wǎng)自動為您分配的測試Demo的APP ID
$appId ='';
//請求地址
//沙盒環(huán)境(用于應(yīng)用開發(fā)調(diào)試):sandboxapp.cloopen.com
//生產(chǎn)環(huán)境(用戶應(yīng)用上線使用):app.cloopen.com
$serverIP ='app.cloopen.com';
//請求端口,生產(chǎn)環(huán)境和沙盒環(huán)境一致
$serverPort ='8883';
//REST版本號,在官網(wǎng)文檔REST介紹中獲得。
$softVersion ='2013-12-26';
//global $accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion;
$phone_mob = isset($_GET['phone_mob']) ? $_GET['phone_mob'] : '';
if($phone_mob){
$this->sendTemplateSMS($phone_mob,array('3519','5'),"1",$accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion);//手機號碼,替換內(nèi)容數(shù)組,模板ID
}
}
/**
* 發(fā)送模板短信
* @param to 手機號碼集合,用英文逗號分開
* @param datas 內(nèi)容數(shù)據(jù) 格式為數(shù)組 例如:array('Marry','Alon'),如不需替換請?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; // ='app.cloopen.com'
private $ServerPort ; //='8883'
private $SoftVersion ; // ='2013-12-26'
private $Batch; //時間戳
private $BodyType = "xml";//包體格式,可填值:json 、xml
private $enabeLog = true; //日志開關(guān)??商钪担簍rue、
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, 'a');
}
/**
* 設(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=='json'){
$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 短信接收彿手機號碼集合,用英文逗號分開
* @param datas 內(nèi)容數(shù)據(jù)
* @param $tempId 模板Id
*/ 
function sendTemplateSMS($to,$datas,$tempId)
{
//主帳號鑒權(quán)信息驗證,對必選參數(shù)進行判空。
//$auth=$this->accAuth();
// if($auth!=""){
// return $auth;
// }
// 拼接請求包體
if($this->BodyType=="json"){
$data="";
for($i=0;$i<count($datas);$i++){
$data = $data. "'".$datas[$i]."',"; 
}
$body= "{'to':'$to','templateId':'$tempId','appId':'$this->AppId','datas':[".$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 = '172003';
// $datas->statusMsg = '返回包體錯誤'; 
// }
//重新裝填數(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 = '172004';
$data->statusMsg = 'IP為空';
return $data;
}
if($this->ServerPort<=0){
$data = new stdClass();
$data->statusCode = '172005';
$data->statusMsg = '端口錯誤(小于等于0)';
return $data;
}
if($this->SoftVersion==""){
$data = new stdClass();
$data->statusCode = '172013';
$data->statusMsg = '版本號為空';
return $data;
} 
if($this->AccountSid==""){
$data = new stdClass();
$data->statusCode = '172006';
$data->statusMsg = '主帳號為空';
return $data;
}
if($this->AccountToken==""){
$data = new stdClass();
$data->statusCode = '172007';
$data->statusMsg = '主帳號令牌為空';
return $data;
}
if($this->AppId==""){
$data = new stdClass();
$data->statusCode = '172012';
$data->statusMsg = '應(yīng)用ID為空';
return $data;
} 
}
}
?>

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

<div style="height:100px;border:1px solid gray;text-align:center;padding-top:20px;">
<form action="" method="post">
請輸入手機號碼:<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>
</div>

四、js代碼

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

以上所述是小編給大家介紹的基于PHP實現(xiàn)短信驗證碼接口(容聯(lián)運通訊),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Yii查詢生成器(Query Builder)用法實例教程

    Yii查詢生成器(Query Builder)用法實例教程

    這篇文章主要介紹了Yii查詢生成器(Query Builder)用法,包括了各種常見的查詢操作,需要的朋友可以參考下
    2014-09-09
  • Cookie跨域問題解決方案代碼示例

    Cookie跨域問題解決方案代碼示例

    這篇文章主要介紹了Cookie跨域問題解決方案代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Laravel中的Sessionid處理機制詳解

    Laravel中的Sessionid處理機制詳解

    這篇文章主要給大家介紹了關(guān)于Laravel中Sessionid處理機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 深入剖析瀏覽器退出之后php還會繼續(xù)執(zhí)行么

    深入剖析瀏覽器退出之后php還會繼續(xù)執(zhí)行么

    覽器退出之后php還會繼續(xù)執(zhí)行么?下面小編就為大家介紹一下究竟覽器退出之后php還會不會繼續(xù)執(zhí)行。一起跟隨小編過來看看吧
    2016-05-05
  • CI框架(CodeIgniter)公共模型類定義與用法示例

    CI框架(CodeIgniter)公共模型類定義與用法示例

    這篇文章主要介紹了CI框架(CodeIgniter)公共模型類定義與用法,結(jié)合具體實例形式分析了CI框架公共模型類的定義以及基于公共模型類操作數(shù)據(jù)庫的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • ThinkPHP 5 AJAX跨域請求頭設(shè)置實現(xiàn)過程解析

    ThinkPHP 5 AJAX跨域請求頭設(shè)置實現(xiàn)過程解析

    這篇文章主要介紹了ThinkPHP 5 AJAX跨域請求頭設(shè)置實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Zend Framework實現(xiàn)自定義過濾器的方法

    Zend Framework實現(xiàn)自定義過濾器的方法

    這篇文章主要介紹了Zend Framework實現(xiàn)自定義過濾器的方法,結(jié)合實例形式分析了Zend Framework自定義過濾器的簡單定義與使用方法,需要的朋友可以參考下
    2016-12-12
  • ThinkPHP中url隱藏入口文件后接收alipay傳值的方法

    ThinkPHP中url隱藏入口文件后接收alipay傳值的方法

    這篇文章主要介紹了ThinkPHP中url隱藏入口文件后接收alipay傳值的方法,可實現(xiàn)針對第三方接口的URL地址中的?進行轉(zhuǎn)換處理,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • 解決yii2左側(cè)菜單子級無法高亮問題的方法

    解決yii2左側(cè)菜單子級無法高亮問題的方法

    這篇文章主要為大家詳細(xì)介紹了解決yii2左側(cè)菜單子級無法高亮問題的方法,感興趣的朋友可以參考一下
    2016-05-05
  • Laravel5.1 框架控制器基礎(chǔ)用法實例分析

    Laravel5.1 框架控制器基礎(chǔ)用法實例分析

    這篇文章主要介紹了Laravel5.1 框架控制器基礎(chǔ)用法,結(jié)合實例形式分析了laravel5.1框架控制器的基本原理、定義與使用方法,需要的朋友可以參考下
    2020-01-01

最新評論