debug = debug_backtrace(); if ($this->getArgs(func_get_args())) { $this->setMetodo('consulta_cpf_cnpj'); $this->params['cpf_cnpj'] = $documento; $this->params['nome'] = "S"; $this->params['endereco'] = "S"; $this->params['area'] = "S"; $this->params['tipo_assinante'] = ""; return $this->setParams(); } else { return false; } } /** * Verifica se o cliente possui alguma pendencia financeira. * * @param int $id_cliente * @return string */ public function identificarPendencia($id_cliente) { $this->debug = debug_backtrace(); if ($this->getArgs(func_get_args())) { $this->setMetodo('pendencia_financeira'); $this->params['id_assinante'] = $id_cliente; return $this->setParams(); } else { return false; } } /** * Consulta se o cliente possui email. * * @param int $id_cliente * @return boolean */ public function consultarEmail($id_cliente) { $this->debug = debug_backtrace(); if ($this->getArgs(func_get_args())) { $this->setMetodo('consulta_emails'); $this->params['id_assinante'] = $id_cliente; return $this->setParams(); } else { return false; } } /** * Consulta parada tecnica * * @param int $id_cliente * @return string */ public function liberacaoServico($id_cliente) { $this->debug = debug_backtrace(); if ($this->getArgs(func_get_args())) { $this->setMetodo('liberar_servico'); $this->params['id_assinante'] = $id_cliente; return $this->setParams(); } else { return false; } } /** * * $mail_conta -> Codigo fornecido pelo administrador da Gerenet * $mail_msg -> Codigo de mensagem que será enviada pelo cliente fornecido * pelo administrador da Gerenet * * @param int $id_cliente * @param int $mail_conta * @param int $mail_msg * @return boolean */ public function enviarBoletoEmail($id_cliente, $mail_conta, $mail_msg) { $this->debug = debug_backtrace(); if ($this->getArgs(func_get_args())) { $this->setMetodo('seg_via_boleto'); $this->params['id_assinante'] = $id_cliente; $this->params['email_conta'] = $mail_conta; $this->params['email_msg'] = $mail_msg; 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($token = CONF_TOKEN_API, $url = CONF_URL_API, $log = true) { $this->token = $token; if(end(str_split($url)) != '/'){ $url .= '/'; } if (strpos($url, 'https')) { $this->ssl = true; } $this->url = $url ."ws_ura.php"; $this->setLog($log); $this->integracaoReg(); $this->log->info("Iniciando integracao com Gerenet", 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; } /** * Constroi de forma dinamica a string para ser passada para a execucao do Curl * * @void */ private function curl() { /* * Final da linha para pegar os dados da variavel */ $header = array(); $header[] = 'Accept: application/json'; $this->curl = curl_init(); curl_setopt($this->curl, CURLOPT_URL, $this->url . "?chave={$this->token}&acao={$this->metodo}". $this->getQuery()); curl_setopt($this->curl, CURLOPT_HTTPHEADER, $header); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->curl, CURLOPT_SSL_VERIFYHOST, $this->ssl); curl_setopt($this->curl, CURLOPT_POST, false); $this->log->debug("Curl:". print_r(curl_getinfo($this->curl), true), debug_backtrace()); } /** * Recebe array de forma de indice e valor * * @example array("qtype" => 'test_api', "query" => '123', "oper" => '=') * * @obs sempre chamar a função debug_backtrace() para ser disponível em log * * @param type $params * @debug_track function debug_backtrace() */ private function setParams() { $count = 0; if ($this->params) { foreach ($this->params as $key => $param) { if ($count < count($this->params)) { $this->setQuery("&"); } $this->setQuery("{$key}={$param}"); $count++; } } unset($this->params); $this->curl(); $result = $this->exec(); return $result; } private function exec() { /** * Caso tenha problema de requisição */ $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: " . $data, $this->debug); if ($data) { return $data; } else { return false; } } }