forked from Claudio/integracao
Lucas Awade
2 years ago
5 changed files with 234 additions and 0 deletions
@ -0,0 +1,169 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
require_once 'Integracao.php'; |
||||||
|
include "config.php"; |
||||||
|
|
||||||
|
class IPCall extends Integracao { |
||||||
|
|
||||||
|
private $token; |
||||||
|
private $url; |
||||||
|
private $metodo; |
||||||
|
private $query; |
||||||
|
private $curl; |
||||||
|
private $debug; |
||||||
|
private $params = array(); |
||||||
|
|
||||||
|
######################################################################## |
||||||
|
## FUNCOES DA API ## |
||||||
|
######################################################################## |
||||||
|
|
||||||
|
public function gerarProtocolo($empresa) { |
||||||
|
$this->debug = debug_backtrace(); |
||||||
|
if ($this->getArgs(func_get_args())) { |
||||||
|
$this->params['cliente'] = $empresa; |
||||||
|
$this->setMetodo('blank_gerador_protocolo'); |
||||||
|
return $this->setParams(); |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public function sendsms($cliente, $numero, $protocolo){ |
||||||
|
$this->debug = debug_backtrace(); |
||||||
|
if ($this->getArgs(func_get_args())) { |
||||||
|
$this->params['cliente'] = $cliente; |
||||||
|
$this->params['numero'] = $numero; |
||||||
|
$this->params['protocolo'] = $protocolo; |
||||||
|
$this->setMetodo('api_sms_pbx'); |
||||||
|
return $this->setParams(); |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
######################################################################## |
||||||
|
## FUNCOES DEFAULT DA CLASSE ## |
||||||
|
######################################################################## |
||||||
|
|
||||||
|
/** |
||||||
|
* Coleta as informacoes iniciais para o inicio da integracao com a API. |
||||||
|
* |
||||||
|
* @param string $token |
||||||
|
* @param string $url |
||||||
|
* @param boolean $log |
||||||
|
*/ |
||||||
|
public function __construct() { |
||||||
|
$this->url = CONF_URL_API; |
||||||
|
$this->setLog(CONF_LOGGER_ATIVO); |
||||||
|
$this->integracaoReg(); |
||||||
|
$this->log->info("Iniciando integracao", debug_backtrace()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Parametriza o metodo utilizado para a consulta. |
||||||
|
* |
||||||
|
* @param type $metodo |
||||||
|
*/ |
||||||
|
private function setMetodo($metodo) { |
||||||
|
$this->metodo = $metodo; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Escreve a query para ser passada para o curl |
||||||
|
* |
||||||
|
* @param string $query |
||||||
|
*/ |
||||||
|
private function setQuery($query) { |
||||||
|
return $this->query .= $query; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* retorna a string pronta da query do curl e limpa a variavel. |
||||||
|
* |
||||||
|
* @return string $query |
||||||
|
*/ |
||||||
|
private function getQuery() { |
||||||
|
$query = $this->query; |
||||||
|
unset($this->query); |
||||||
|
return $query; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Informa o tipo de requisicao que sera feita pela cURL |
||||||
|
* @param bool $request |
||||||
|
*/ |
||||||
|
private function request($request = null) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Constroi de forma dinamica a string para ser passada para a execucao do Curl |
||||||
|
* |
||||||
|
* @void |
||||||
|
*/ |
||||||
|
private function curl() { |
||||||
|
$this->curl = curl_init(); |
||||||
|
curl_setopt($this->curl, CURLOPT_URL, $this->url . "/" . $this->metodo . "/"); |
||||||
|
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, TRUE); |
||||||
|
curl_setopt($this->curl, CURLOPT_POST, true); |
||||||
|
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $this->params); |
||||||
|
/* |
||||||
|
* Final da linha para pegar os dados da variavel |
||||||
|
*/ |
||||||
|
$this->log->debug("Curl: {$this->curl}", debug_backtrace()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Recebe array de forma de indice e valor |
||||||
|
* |
||||||
|
* @example array("qtype" => 'test_api', "query" => '123', "oper" => '=') |
||||||
|
* |
||||||
|
* @obs sempre chamar a funcoes debug_backtrace() para ser disponivel em log |
||||||
|
* |
||||||
|
* @param type $params |
||||||
|
* @debug_track function debug_backtrace() |
||||||
|
*/ |
||||||
|
private function setParams() { |
||||||
|
$this->params = http_build_query($this->params); |
||||||
|
$this->curl(); |
||||||
|
unset($this->params); |
||||||
|
return $this->exec(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Recebe as informacoes e realiza a execucao da API |
||||||
|
* |
||||||
|
* @void |
||||||
|
*/ |
||||||
|
private function exec() { |
||||||
|
/** |
||||||
|
* Caso tenha problema de requisicao |
||||||
|
*/ |
||||||
|
$content = curl_exec($this->curl); |
||||||
|
if (curl_errno($this->curl)) { |
||||||
|
$this->log->error(curl_error($this->curl), debug_backtrace()); |
||||||
|
curl_close($this->curl); |
||||||
|
$this->audioError(); |
||||||
|
return false; |
||||||
|
} |
||||||
|
curl_close($this->curl); |
||||||
|
return $this->response($content); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Prepara dos dados para ser transmitidos para o metodo a ser retornado a |
||||||
|
* integracao. |
||||||
|
* |
||||||
|
* @return array |
||||||
|
*/ |
||||||
|
private function response($data) { |
||||||
|
$this->log->debug("Reponse API: " . print_r($data, true), $this->debug); |
||||||
|
if ($data) { |
||||||
|
return json_decode($data, true); |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,19 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
include "IPCall.php"; |
||||||
|
|
||||||
|
$ipcall = new IPCall(); |
||||||
|
|
||||||
|
$protocolo = $agi->get_variable('PROTOCOLO_ANS', true); |
||||||
|
$clientid = $agi->get_variable('CLIENTID', true); |
||||||
|
|
||||||
|
$ipcall->log()->debug("enviarSMS | " . print_r([ |
||||||
|
'protocolo' => $protocolo, |
||||||
|
'clientid' => $clientid |
||||||
|
], true)); |
||||||
|
|
||||||
|
if($protocolo && $clientid){ |
||||||
|
$ipcall->sendsms($clientid, $numero, $protocolo); |
||||||
|
} |
||||||
|
|
||||||
|
?> |
@ -0,0 +1,27 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
include "IPCall.php"; |
||||||
|
|
||||||
|
$ipcall = new IPCall(); |
||||||
|
$nomenclatura = $ipcall->agi()->get_variable('NOMENCLATURA', true); |
||||||
|
|
||||||
|
$resp = $ipcall->db()->getServiceByUniqueid($uid); |
||||||
|
|
||||||
|
if($resp['serv_id']){ |
||||||
|
$protocolo = $ipcall->gerarProtocolo($resp['serv_id']); |
||||||
|
|
||||||
|
$ipcall->agi()->set_variable('PROTOCOLO_ANS', $protocolo["protocolo_ans"]); |
||||||
|
$ipcall->agi()->set_variable('CLIENTID', $resp['serv_id']); |
||||||
|
|
||||||
|
if($protocolo['codigo'] == '200'){ |
||||||
|
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "SUCESSO", $nomenclatura); |
||||||
|
}else { |
||||||
|
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "FALHA", $nomenclatura); |
||||||
|
} |
||||||
|
} else { |
||||||
|
$redirecionamento_dados = $ipcall->db()->redirectUraDestino("REDIR_PROTOCOLO_ANS", "OUTRO", $nomenclatura); |
||||||
|
} |
||||||
|
|
||||||
|
$ipcall->executarFluxo($redirecionamento_dados["TIPO"], $redirecionamento_dados["NOME"]); |
||||||
|
|
||||||
|
?> |
@ -0,0 +1,8 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
include "IPCall.php"; |
||||||
|
|
||||||
|
$ipcall = new IPCall(); |
||||||
|
$ipcall->sendsms('2', '83988166902', '1234567890'); |
||||||
|
|
||||||
|
?> |
Loading…
Reference in new issue