PHP 기반 문자 인증 코드 인터페이스 구현(연락 통신 용)

자신 도 방금 연 구 했 으 니 연구 중인 동료 들 에 게 도움 이 되 었 으 면 좋 겠 습 니 다.
단계:
1.영 연락 통신 에 등록 하여 ACCOUNT SID,AUTH TOKEN,Rest URL(생산),AppID(기본 값)를 획득 합 니 다.
2.테스트 용 핸드폰 번호 등록(테스트 번 호 를 먼저 등록 해 야 사용 가능);
3.demo 예제 를 다운로드 하고 코드 를 프로젝트 에 넣 는 것 이 좋 습 니 다(폴 더 저장 소 를 따로 만 드 는 것 이 좋 습 니 다).
코드 영역:
1.새 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');//      
//   ,             ACCOUNT SID
$accountSid = '';
//     ,             AUTH TOKEN
$accountToken = '';
//  Id,            ,        APP ID
//        ,               Demo APP ID
$appId ='';
//    
//    (        ):sandboxapp.cloopen.com
//    (        ):app.cloopen.com
$serverIP ='app.cloopen.com';
//    ,           
$serverPort ='8883';
//REST   ,     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);//    ,      ,  ID
}
}
/**
*       
* @param to       ,       
* @param datas              :array('Marry','Alon'),        null
* @param $tempId   Id,                   1,                   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);
//       
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         
}
}
}
2.템 플 릿 파일(rest.app.php 는 자신 이 사용 하 는 프레임 워 크 에 따라 이름 을 바 꿀 수도 있 고 데모 의 원래 이름 을 직접 사용 할 수도 있 습 니 다)

<?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; //    。   :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, 'a');
}
/**
*      
* 
* @param AccountSid    
* @param AccountToken    Token
*/ 
function setAccount($AccountSid,$AccountToken){
$this->AccountSid = $AccountSid;
$this->AccountToken = $AccountToken; 
}
/**
*     ID
* @param AppId   ID
*/
function setAppId($AppId){
$this->AppId = $AppId; 
}
/**
*     
* 
* @param log     
*/
function showlog($log){
if($this->enabeLog){
fwrite($this->Handle,$log."
"); } } /** * HTTPS */ function curl_post($url,$data,$header,$post=1) { // curl $ch = curl_init(); // $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\":\" \"}"; } else { $result = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><statusCode>172001</statusCode><statusMsg> </statusMsg></Response>"; } } curl_close($ch); return $result; } /** * * @param to , * @param datas * @param $tempId Id */ function sendTemplateSMS($to,$datas,$tempId) { // , 。 //$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 $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); // : Id + + 。 $authen = base64_encode($this->AccountSid . ":" . $this->Batch); // $header = array("Accept:application/$this->BodyType","Content-Type:application/$this->BodyType;charset=utf-8","Authorization:$authen"); // $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
\r")); } // if($datas == FALSE){ // $datas = new stdClass(); // $datas->statusCode = '172003'; // $datas->statusMsg = ' '; // } // if($datas->statusCode==0){ if($this->BodyType=="json"){ $datas->TemplateSMS =$datas->templateSMS; unset($datas->templateSMS); } } return $datas; } /** * */ 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 = ' ID '; return $data; } } } ?>
3.프론트 템 플 릿 코드(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 기반 문자 인증 코드 인터페이스(연락 통신)입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기