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 기반 문자 인증 코드 인터페이스(연락 통신)입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
문자 발송 공격한 회사 가 문자 인증 코드 를 사용 해 사용자 의 진실성 을 검증 한 이후 문자 메 시 지 는 회사 업무 의 표지 가 되 었 다.현재 거의 모든 회사 의 서비스 에는 문자 발송 이라는 기능 이 포함 되 어 있다.사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.