getSoapClient() 공개 정적인 메소드

public static getSoapClient ( )
예제 #1
0
 /**
  * @param \PhpSigep\Model\AbstractModel|\PhpSigep\Model\SolicitaEtiquetas $params
  *
  * @throws \PhpSigep\Services\Exception
  * @throws InvalidArgument
  * @return BuscaClienteResult
  */
 public function execute(AbstractModel $params)
 {
     if (!$params instanceof \PhpSigep\Model\AccessData) {
         throw new InvalidArgument();
     }
     $soapArgs = array('idContrato' => $params->getNumeroContrato(), 'idCartaoPostagem' => $params->getCartaoPostagem(), 'usuario' => $params->getUsuario(), 'senha' => $params->getSenha());
     $result = new Result();
     try {
         if (!$params->getUsuario() || !$params->getSenha() || !$params->getNumeroContrato() || !$params->getCartaoPostagem()) {
             throw new Exception('Para usar este serviço você precisa setar o nome de usuário, a senha, o numero ' . 'do contrato e o número do cartão de postagem.');
         }
         $r = SoapClientFactory::getSoapClient()->buscaCliente($soapArgs);
         if (!$r || !is_object($r) || !isset($r->return) || $r instanceof \SoapFault) {
             if ($r instanceof \SoapFault) {
                 throw $r;
             }
             throw new \Exception('Erro ao consultar os dados do cliente. Retorno: "' . $r . '"');
         }
         $result->setResult(new BuscaClienteResult((array) $r->return));
     } catch (\Exception $e) {
         if ($e instanceof \SoapFault) {
             $result->setIsSoapFault(true);
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg(SoapClientFactory::convertEncoding($e->getMessage()));
         } else {
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg($e->getMessage());
         }
     }
     return $result;
 }
 /**
  * @param \PhpSigep\Model\VerificaDisponibilidadeServico $params
  * @return Result<\PhpSigep\Model\VerificaDisponibilidadeServicoResposta>
  */
 public function execute(\PhpSigep\Model\VerificaDisponibilidadeServico $params)
 {
     $servicosDePostagem = $params->getServicos();
     $codigoDosServicos = array_map(array($this, 'arrayMapCallback'), $servicosDePostagem);
     $soapArgs = array('codAdministrativo' => $params->getAccessData()->getCodAdministrativo(), 'numeroServico' => implode(',', $codigoDosServicos), 'cepOrigem' => $params->getCepOrigem(), 'cepDestino' => $params->getCepDestino(), 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha());
     $cacheKey = md5(serialize($soapArgs));
     $cache = Bootstrap::getConfig()->getCacheInstance();
     if ($cachedResult = $cache->getItem($cacheKey)) {
         return unserialize($cachedResult);
     }
     $r = SoapClientFactory::getSoapClient()->verificaDisponibilidadeServico($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass && property_exists($r, 'return')) {
                 $result->setResult(new VerificaDisponibilidadeServicoResposta(array('disponivel' => (bool) $r->return)));
                 $cache->setItem($cacheKey, serialize($result));
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }
 public function execute($numeroCartaoPostagem, $usuario, $senha)
 {
     $soapArgs = array('numeroCartaoPostagem' => $numeroCartaoPostagem, 'usuario' => $usuario, 'senha' => $senha);
     $r = SoapClientFactory::getSoapClient()->getStatusCartaoPostagem($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass && property_exists($r, 'return')) {
                 $status = new VerificarStatusCartaoPostagemResposta();
                 $status->setReturn($r->return);
                 $result->setResult($status);
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }
 /**
  * @param \PhpSigep\Model\AbstractModel|\PhpSigep\Model\SolicitaEtiquetas $params
  *
  * @throws \PhpSigep\Services\Exception
  * @throws InvalidArgument
  * @return Result<Etiqueta[]>
  */
 public function execute(AbstractModel $params)
 {
     if (!$params instanceof \PhpSigep\Model\SolicitaEtiquetas) {
         throw new InvalidArgument();
     }
     $soapArgs = array('tipoDestinatario' => 'C', 'identificador' => $params->getAccessData()->getCnpjEmpresa(), 'idServico' => $params->getServicoDePostagem()->getIdServico(), 'qtdEtiquetas' => 1, 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha());
     $result = new Result();
     try {
         if (!$params->getAccessData() || !$params->getAccessData()->getUsuario() || !$params->getAccessData()->getSenha()) {
             throw new Exception('Para usar este serviço você precisa setar o nome de usuário e senha.');
         }
         $etiquetasReservadas = array();
         for ($i = 0; $i < $params->getQtdEtiquetas(); $i++) {
             $r = SoapClientFactory::getSoapClient()->solicitaEtiquetas($soapArgs);
             if (class_exists('\\StaLib_Logger')) {
                 \StaLib_Logger::log('Retorno SIGEP solicitar etiquetas: ' . print_r($r, true));
             }
             if ($r && is_object($r) && isset($r->return) && !$r instanceof \SoapFault) {
                 $r = explode(',', $r->return);
                 //				$etiquetasReservadas[] = str_replace(' ', '', $r[0]);
                 $etiqueta = new Etiqueta();
                 $etiqueta->setEtiquetaSemDv($r[0]);
                 $etiquetasReservadas[] = $etiqueta;
             } else {
                 if ($r instanceof \SoapFault) {
                     throw $r;
                 }
                 throw new \Exception('Não foi possível obter as etiquetas solicitadas. Retorno: "' . $r . '"');
             }
         }
         $result->setResult($etiquetasReservadas);
     } catch (\Exception $e) {
         if ($e instanceof \SoapFault) {
             $result->setIsSoapFault(true);
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg("Resposta do Correios: " . SoapClientFactory::convertEncoding($e->getMessage()));
         } else {
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg($e->getMessage());
         }
     }
     return $result;
 }
예제 #5
0
 public function execute($cep)
 {
     $cep = preg_replace('/[^\\d]/', '', $cep);
     $soapArgs = array('cep' => $cep);
     $r = SoapClientFactory::getSoapClient()->consultaCep($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass) {
                 if (property_exists($r, 'return') && $r->return instanceof \stdClass) {
                     $consultaCepResposta = new ConsultaCepResposta();
                     $consultaCepResposta->setBairro(SoapClientFactory::convertEncoding($r->return->bairro));
                     $consultaCepResposta->setCep($r->return->cep);
                     $consultaCepResposta->setCidade(SoapClientFactory::convertEncoding($r->return->cidade));
                     $consultaCepResposta->setComplemento1(SoapClientFactory::convertEncoding($r->return->complemento));
                     $consultaCepResposta->setComplemento2(SoapClientFactory::convertEncoding($r->return->complemento2));
                     $consultaCepResposta->setEndereco(SoapClientFactory::convertEncoding($r->return->end));
                     $consultaCepResposta->setId($r->return->id);
                     $consultaCepResposta->setUf($r->return->uf);
                     $result->setResult($consultaCepResposta);
                 } else {
                     $errorCode = 0;
                     $errorMsg = "Resposta em branco. Confirme se o CEP '{$cep}' realmente existe.";
                 }
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }
예제 #6
0
 /**
  * @param PreListaDePostagem $params
  *
  * @return \PhpSigep\Services\Result<\PhpSigep\Model\FechaPlpVariosServicosRetorno>
  */
 public function execute(\PhpSigep\Model\PreListaDePostagem $params)
 {
     $xmlDaPreLista = $this->getPlpXml($params);
     $listaEtiquetas = array();
     foreach ($params->getEncomendas() as $objetoPostal) {
         $listaEtiquetas[] = $objetoPostal->getEtiqueta()->getEtiquetaSemDv();
     }
     $xml = utf8_encode($xmlDaPreLista->flush());
     //		$xml = utf8_encode($xml);
     //		$xml = iconv('UTF-8', 'ISO-8859-1', $xml);
     $soapArgs = array('xml' => $xml, 'idPlpCliente' => '', 'cartaoPostagem' => $params->getAccessData()->getCartaoPostagem(), 'listaEtiquetas' => $listaEtiquetas, 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha());
     $result = new Result();
     try {
         $r = SoapClientFactory::getSoapClient()->fechaPlpVariosServicos($soapArgs);
         /*if (class_exists('\StaLib_Logger')) {
               \StaLib_Logger::log('Retorno SIGEP fecha PLP: ' . print_r($r, true));
           }*/
         if ($r instanceof \SoapFault) {
             throw $r;
         }
         if ($r && $r->return) {
             $result->setResult(new FechaPlpVariosServicosRetorno(array('idPlp' => $r->return)));
         } else {
             $result->setErrorCode(0);
             $result->setErrorMsg('A resposta do Correios não está no formato esperado. Resposta recebida: "' . $r . '"');
         }
     } catch (\Exception $e) {
         if ($e instanceof \SoapFault) {
             $result->setIsSoapFault(true);
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg(SoapClientFactory::convertEncoding($e->getMessage()));
         } else {
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg($e->getMessage());
         }
     }
     return $result;
 }
 /**
  * @param \PhpSigep\Model\GeraDigitoVerificadorEtiquetas $params
  *
  * @return Etiqueta[]
  */
 public function execute(\PhpSigep\Model\GeraDigitoVerificadorEtiquetas $params)
 {
     $soapArgs = array('etiquetas' => array(), 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha());
     // É necessário garantir que o array estará indexado por order natural começando do zero para setarmos os
     // DV retornados pelo webservice.
     $etiquetas = array_values($params->getEtiquetas());
     /** @var $etiqueta Etiqueta */
     foreach ($etiquetas as $etiqueta) {
         $soapArgs['etiquetas'][] = $etiqueta->getEtiquetaSemDv();
     }
     $result = new Result();
     try {
         $soapReturn = SoapClientFactory::getSoapClient()->geraDigitoVerificadorEtiquetas($soapArgs);
         if ($soapReturn && is_object($soapReturn) && $soapReturn->return) {
             if (!is_array($soapReturn->return)) {
                 $soapReturn->return = (array) $soapReturn->return;
             }
             foreach ($soapReturn->return as $k => $dv) {
                 $etiquetas[$k]->setDv((int) $dv);
             }
             $result->setResult($etiquetas);
         } else {
             $result->setErrorCode(0);
             $result->setErrorMsg('A resposta do Correios não está no formato esperado. Resposta recebida: "' . $soapReturn . '"');
         }
     } catch (\Exception $e) {
         if ($e instanceof \SoapFault) {
             $result->setIsSoapFault(true);
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg(SoapClientFactory::convertEncoding($e->getMessage()));
         } else {
             $result->setErrorCode($e->getCode());
             $result->setErrorMsg($e->getMessage());
         }
     }
     return $result;
 }